From 090dae01f8ab1810120276d48d265a19588be664 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Sun, 9 Nov 2003 02:09:22 +0000 Subject: Bug 224913 - Need tests to check whether any templates uses the bareword "bug" or variations. Patch by gerv; r,a=justdave. --- t/009bugwords.t | 118 +++++++++++++++++++++ .../en/default/attachment/diff-header.html.tmpl | 14 ++- template/en/default/global/messages.html.tmpl | 5 +- template/en/default/global/user-error.html.tmpl | 18 ++-- .../en/default/search/search-advanced.html.tmpl | 3 +- .../default/search/search-create-series.html.tmpl | 4 +- .../en/default/search/search-specific.html.tmpl | 14 +-- template/en/default/search/search.html.tmpl | 3 +- 8 files changed, 154 insertions(+), 25 deletions(-) create mode 100644 t/009bugwords.t diff --git a/t/009bugwords.t b/t/009bugwords.t new file mode 100644 index 000000000..564e7f67a --- /dev/null +++ b/t/009bugwords.t @@ -0,0 +1,118 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code are the Bugzilla tests. +# +# The Initial Developer of the Original Code is Jacob Steenhagen. +# Portions created by Jacob Steenhagen are +# Copyright (C) 2001 Jacob Steenhagen. All +# Rights Reserved. +# +# Contributor(s): Gervase Markham +# + +################# +#Bugzilla Test 9# +####bugwords##### + +# Bugzilla has a mechanism for taking various words, including "bug", "bugs", +# and "a bug" and automatically replacing them in the templates with the local +# terminology. It does this by using the 'terms' hash, so "bug" becomes +# "[% terms.bug %]". This test makes sure the relevant words aren't used +# bare. + +use strict; + +use lib 't'; + +use Support::Files; +use Support::Templates; +use Bugzilla::Util; + +use File::Spec 0.82; + +# We have a list of templates to exclude, if present. This allows us to exclude +# sample and b.m.o.-specific templates. Do _not_ add a template to this list +# without checking with developers@bugzilla.org first. +my @exclude; + +BEGIN { + @exclude = ( + 'template/en/default/pages/etiquette.html.tmpl' + ); +} + +use Test::More tests => ($Support::Templates::num_actual_files - + scalar(@exclude)); + +# Find all the templates (except those in @exclude) +my @testitems; +for my $path (@Support::Templates::include_paths) { + my @items = map(File::Spec->catfile($path, $_), + Support::Templates::find_actual_files($path)); + foreach my $item (@items) { + if (lsearch(\@exclude, $item) == -1) { + push(@testitems, $item); + } + } +} + +foreach my $file (@testitems) { + my @errors; + + # Read the entire file into a string + local $/; + open (FILE, "<$file") || die "Can't open $file: $!\n"; + my $slurp = ; + close (FILE); + + # /g means we execute this loop for every match + # /s means we ignore linefeeds in the regexp matches + # This extracts everything which is _not_ a directive. + while ($slurp =~ /%\](.*?)(\[%|$)/gs) { + my $text = $1; + + my @lineno = ($` =~ m/\n/gs); + my $lineno = scalar(@lineno) + 1; + + # "a bug", "bug", "bugs" + if (grep /(a?[\s>]bugs?[\s.:;])/i, $text) { + # Exclude variable assignment. + unless (grep /bugs =/, $text) { + push(@errors, [$lineno, $text]); + next; + } + } + + # "Bugzilla" + if (grep /Bugzilla[^_]/, $text) { + # Exclude JS comments, hyperlinks, USE and variable assignment. + unless (grep /(\/\/.*|org.*>|USE |= )Bugzilla/, $text) { + push(@errors, [$lineno, $text]); + next; + } + } + } + + if (scalar(@errors)) { + ok(0, "$file contains invalid bare words (e.g. 'bug') --WARNING"); + + foreach my $error (@errors) { + print "$error->[0]: $error->[1]\n"; + } + } + else { + ok(1, "$file has no invalid barewords"); + } +} + +exit 0; diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl index c1b70173e..4069cc21b 100644 --- a/template/en/default/attachment/diff-header.html.tmpl +++ b/template/en/default/attachment/diff-header.html.tmpl @@ -21,7 +21,11 @@ [%# Define strings that will serve as the title and header of this page %] -[% title = BLOCK %]Attachment #[% attachid %] for Bug #[% bugid %][% END %] +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Attachment #[% attachid %] for [% terms.Bug %] #[% bugid %] +[% END %] [% style = BLOCK %] .file_head { @@ -192,7 +196,7 @@ tbody.file pre:empty { [% new_desc FILTER html %] (#[% newid %]) [% END %] - for Bug #[% bugid %] + for [% terms.Bug %] #[% bugid %] [% END %] [% h2 = BLOCK %] [% bugsummary FILTER html %] @@ -290,12 +294,12 @@ tbody.file pre:empty {

Warning: [% IF warning == "interdiff1" %] this difference between two patches may show things in the wrong places due - to a limitation in Bugzilla when comparing patches with different sets of - files. + to a limitation in [% terms.Bugzilla %] when comparing patches with different + sets of files. [% END %] [% IF warning == "interdiff2" %] this difference between two patches may be inaccurate due to a limitation in - Bugzilla when comparing patches made against different revisions. + [% terms.Bugzilla %] when comparing patches made against different revisions. [% END %]

[% END %] diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl index 41dd71f6c..750bc5cfa 100644 --- a/template/en/default/global/messages.html.tmpl +++ b/template/en/default/global/messages.html.tmpl @@ -54,8 +54,9 @@ OK, the [% namedcmd FILTER html %] query is gone. [% ELSIF message_tag == "buglist_sorted_by_relevance" %] - Bugs on this list are sorted by relevance, with the most relevant bugs - at the top. Only the 200 most relevant bugs are shown. + [% terms.Bugs %] on this list are sorted by relevance, with the most + relevant [% terms.bugs %] at the top. Only the 200 most relevant + [%+ terms.bugs %] are shown. [% ELSIF message_tag == "change_columns" %] [% title = "Change columns" %] diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index a988102a8..1bbd00efc 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -152,8 +152,8 @@ [% ELSIF error == "dupe_invalid_bug_id" %] [% title = BLOCK %]Valid [% terms.Bug %] Number Required[% END %] - You must specify a valid bug number of which this [% terms.bug %] - is a duplicate. The [% terms.bug %] has not been changed. + You must specify a valid [% terms.bug %] number of which this + [%+ terms.bug %] is a duplicate. The [% terms.bug %] has not been changed. [% ELSIF error == "dupe_of_self_disallowed" %] [% title = "Nice Try..." %] @@ -171,8 +171,8 @@ [% ELSIF error == "entry_access_denied" %] [% title = "Permission Denied" %] - Sorry; you do not have the permissions necessary to enter [% terms.abug %] against - the [% product FILTER html %] product. + Sorry; you do not have the permissions necessary to enter [% terms.abug %] + against the [% product FILTER html %] product. [% ELSIF error == "file_not_specified" %] [% title = "No File Specified" %] @@ -206,7 +206,7 @@ You asked [% requestee.identity FILTER html %] for [% flag_type.name FILTER html %] on - [% terms.bug %] [% bug_id FILTER html %], + [%+ terms.bug %] [% bug_id FILTER html %], attachment [% attach_id FILTER html %], but that attachment is restricted to users in the [% Param("insidergroup") FILTER html %] group, and the user @@ -276,7 +276,7 @@ [% title = "Invalid Email Address" %] The e-mail address you entered([% addr FILTER html %]) didn't pass our syntax checking for a legal email address. - [% Param('emailregexpdesc') %] + [%+ Param('emailregexpdesc') %] It must also not contain any of these special characters: \ ( ) & < > , ; : " [ ], or any whitespace. @@ -288,8 +288,7 @@ [% ELSIF error == "illegal_group_control_combination" %] [% title = "Your Group Control Combination Is Illegal" %] Your group control combination for group " - [% groupname FILTER html %] - " is illegal. + [% groupname FILTER html %]" is illegal. [% ELSIF error == "illegal_is_obsolete" %] [% title = "Your Query Makes No Sense" %] @@ -342,7 +341,8 @@ [% END %] If you are trying to use QuickSearch, you need to enable JavaScript in your browser. To help us fix this limitation, add your comments to - bug 70907. + bug 70907. [% ELSIF error == "invalid_changedsince" %] [% title = "Invalid 'Changed Since'" %] diff --git a/template/en/default/search/search-advanced.html.tmpl b/template/en/default/search/search-advanced.html.tmpl index 42207a122..5150fa408 100644 --- a/template/en/default/search/search-advanced.html.tmpl +++ b/template/en/default/search/search-advanced.html.tmpl @@ -69,7 +69,8 @@ [% IF cgi.user_agent("Mozilla/5") %] Note that if the help popups are hidden by form element scroll bars, - this is a bug in your browser, not in [% terms.Bugzilla %]. + this is a bug in your browser, + not in [% terms.Bugzilla %]. [% END %]

diff --git a/template/en/default/search/search-create-series.html.tmpl b/template/en/default/search/search-create-series.html.tmpl index 9673a1838..83aa5a912 100644 --- a/template/en/default/search/search-create-series.html.tmpl +++ b/template/en/default/search/search-create-series.html.tmpl @@ -25,6 +25,8 @@ # search/boolean-charts.html.tmpl. #%] +[% PROCESS global/variables.none.tmpl %] + [% PROCESS global/header.html.tmpl title = "Create New Data Set" onload = "selectProduct(document.forms['chartform']);" @@ -48,7 +50,7 @@
diff --git a/template/en/default/search/search-specific.html.tmpl b/template/en/default/search/search-specific.html.tmpl index 72f86fb13..bd3ab833a 100644 --- a/template/en/default/search/search-specific.html.tmpl +++ b/template/en/default/search/search-specific.html.tmpl @@ -19,6 +19,8 @@ # Contributor(s): Myk Melez #%] +[% PROCESS global/variables.none.tmpl %] + [% PROCESS global/header.html.tmpl title = "Find a Specific Bug" h1 = "" @@ -35,15 +37,15 @@ [% PROCESS search/tabs.html.tmpl %]

-Find a specific bug by entering words that describe it. Bugzilla will search -bug summaries, descriptions, and comments for those words and return a list -of matching bugs sorted by relevance. +Find a specific [% terms.bug %] by entering words that describe it. +[% terms.Bugzilla %] will search [% terms.bug %] summaries, descriptions, and +comments for those words and return a list of matching [% terms.bugs %] sorted +by relevance.

-For example, if the bug you are looking for is a browser crash when you go -to a secure web site with an embedded Flash animation, you might search for -"crash secure SSL flash". +For example, if the [% terms.bug %] you are looking for is a browser crash when you go to a secure web site with an embedded Flash animation, you might search +for "crash secure SSL flash".

diff --git a/template/en/default/search/search.html.tmpl b/template/en/default/search/search.html.tmpl index 42207a122..5150fa408 100644 --- a/template/en/default/search/search.html.tmpl +++ b/template/en/default/search/search.html.tmpl @@ -69,7 +69,8 @@ [% IF cgi.user_agent("Mozilla/5") %] Note that if the help popups are hidden by form element scroll bars, - this is a bug in your browser, not in [% terms.Bugzilla %]. + this is a bug in your browser, + not in [% terms.Bugzilla %]. [% END %]

-- cgit v1.2.3-24-g4f1b