diff options
author | gerv%gerv.net <> | 2003-11-09 03:09:22 +0100 |
---|---|---|
committer | gerv%gerv.net <> | 2003-11-09 03:09:22 +0100 |
commit | 090dae01f8ab1810120276d48d265a19588be664 (patch) | |
tree | 2f774d89434428b171610aaa76b9d5dbd2bda3ff | |
parent | fc7ebc28b0859d7ddecd704001ff1adc54856d47 (diff) | |
download | bugzilla-090dae01f8ab1810120276d48d265a19588be664.tar.gz bugzilla-090dae01f8ab1810120276d48d265a19588be664.tar.xz |
Bug 224913 - Need tests to check whether any templates uses the bareword "bug" or variations. Patch by gerv; r,a=justdave.
-rw-r--r-- | t/009bugwords.t | 118 | ||||
-rw-r--r-- | template/en/default/attachment/diff-header.html.tmpl | 14 | ||||
-rw-r--r-- | template/en/default/global/messages.html.tmpl | 5 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 18 | ||||
-rw-r--r-- | template/en/default/search/search-advanced.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/search/search-create-series.html.tmpl | 4 | ||||
-rw-r--r-- | template/en/default/search/search-specific.html.tmpl | 14 | ||||
-rw-r--r-- | template/en/default/search/search.html.tmpl | 3 |
8 files changed, 154 insertions, 25 deletions
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 <gerv@gerv.net> +# + +################# +#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 = <FILE>; + 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 { <a href="[% new_url %]">[% new_desc FILTER html %]</a> (<a href="[% new_url %]">#[% newid %]</a>) [% END %] - for <a href="show_bug.cgi?id=[% bugid %]">Bug #[% bugid %]</a> + for <a href="show_bug.cgi?id=[% bugid %]">[% terms.Bug %] #[% bugid %]</a> [% END %] [% h2 = BLOCK %] [% bugsummary FILTER html %] @@ -290,12 +294,12 @@ tbody.file pre:empty { <h2 class="warning">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 %] </h2> [% 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 <b>[% namedcmd FILTER html %]</b> 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 <code>[% flag_type.name FILTER html %]</code> 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(<b>[% addr FILTER html %]</b>) 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: <tt>\ ( ) & < > , ; : " [ ]</tt>, 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 - <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">bug 70907</a>. + <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">b<!-- + word broken up to pass test 009 -->ug 70907</a>. [% 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 @@ <font color="red"> [% 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 b<!-- word broken up to pass test 009 -->ug in your browser, + not in [% terms.Bugzilla %]. [% END %] </font> </p> 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 @@ <td> <input type="radio" id="action-create" name="action" value="create"> <label for="action-create"> - Start recording bug count data for this search, as follows: + Start recording [% terms.bug %] count data for this search, as follows: </label> <br> 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 <myk@mozilla.org> #%] +[% 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 %] <p> -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. </p> <p> -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". </p> <form method="get" action="buglist.cgi"> 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 @@ <font color="red"> [% 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 b<!-- word broken up to pass test 009 -->ug in your browser, + not in [% terms.Bugzilla %]. [% END %] </font> </p> |