Commit 090dae01 authored by gerv%gerv.net's avatar gerv%gerv.net

Bug 224913 - Need tests to check whether any templates uses the bareword "bug"…

Bug 224913 - Need tests to check whether any templates uses the bareword "bug" or variations. Patch by gerv; r,a=justdave.
parent fc7ebc28
# -*- 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;
...@@ -21,7 +21,11 @@ ...@@ -21,7 +21,11 @@
[%# Define strings that will serve as the title and header of this page %] [%# 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 %] [% style = BLOCK %]
.file_head { .file_head {
...@@ -192,7 +196,7 @@ tbody.file pre:empty { ...@@ -192,7 +196,7 @@ tbody.file pre:empty {
<a href="[% new_url %]">[% new_desc FILTER html %]</a> <a href="[% new_url %]">[% new_desc FILTER html %]</a>
(<a href="[% new_url %]">#[% newid %]</a>) (<a href="[% new_url %]">#[% newid %]</a>)
[% END %] [% 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 %] [% END %]
[% h2 = BLOCK %] [% h2 = BLOCK %]
[% bugsummary FILTER html %] [% bugsummary FILTER html %]
...@@ -290,12 +294,12 @@ tbody.file pre:empty { ...@@ -290,12 +294,12 @@ tbody.file pre:empty {
<h2 class="warning">Warning: <h2 class="warning">Warning:
[% IF warning == "interdiff1" %] [% IF warning == "interdiff1" %]
this difference between two patches may show things in the wrong places due 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 to a limitation in [% terms.Bugzilla %] when comparing patches with different
files. sets of files.
[% END %] [% END %]
[% IF warning == "interdiff2" %] [% IF warning == "interdiff2" %]
this difference between two patches may be inaccurate due to a limitation in 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 %]
</h2> </h2>
[% END %] [% END %]
......
...@@ -54,8 +54,9 @@ ...@@ -54,8 +54,9 @@
OK, the <b>[% namedcmd FILTER html %]</b> query is gone. OK, the <b>[% namedcmd FILTER html %]</b> query is gone.
[% ELSIF message_tag == "buglist_sorted_by_relevance" %] [% ELSIF message_tag == "buglist_sorted_by_relevance" %]
Bugs on this list are sorted by relevance, with the most relevant bugs [% terms.Bugs %] on this list are sorted by relevance, with the most
at the top. Only the 200 most relevant bugs are shown. relevant [% terms.bugs %] at the top. Only the 200 most relevant
[%+ terms.bugs %] are shown.
[% ELSIF message_tag == "change_columns" %] [% ELSIF message_tag == "change_columns" %]
[% title = "Change columns" %] [% title = "Change columns" %]
......
...@@ -152,8 +152,8 @@ ...@@ -152,8 +152,8 @@
[% ELSIF error == "dupe_invalid_bug_id" %] [% ELSIF error == "dupe_invalid_bug_id" %]
[% title = BLOCK %]Valid [% terms.Bug %] Number Required[% END %] [% title = BLOCK %]Valid [% terms.Bug %] Number Required[% END %]
You must specify a valid bug number of which this [% terms.bug %] You must specify a valid [% terms.bug %] number of which this
is a duplicate. The [% terms.bug %] has not been changed. [%+ terms.bug %] is a duplicate. The [% terms.bug %] has not been changed.
[% ELSIF error == "dupe_of_self_disallowed" %] [% ELSIF error == "dupe_of_self_disallowed" %]
[% title = "Nice Try..." %] [% title = "Nice Try..." %]
...@@ -171,8 +171,8 @@ ...@@ -171,8 +171,8 @@
[% ELSIF error == "entry_access_denied" %] [% ELSIF error == "entry_access_denied" %]
[% title = "Permission Denied" %] [% title = "Permission Denied" %]
Sorry; you do not have the permissions necessary to enter [% terms.abug %] against Sorry; you do not have the permissions necessary to enter [% terms.abug %]
the [% product FILTER html %] product. against the [% product FILTER html %] product.
[% ELSIF error == "file_not_specified" %] [% ELSIF error == "file_not_specified" %]
[% title = "No File Specified" %] [% title = "No File Specified" %]
...@@ -206,7 +206,7 @@ ...@@ -206,7 +206,7 @@
You asked [% requestee.identity FILTER html %] You asked [% requestee.identity FILTER html %]
for <code>[% flag_type.name FILTER html %]</code> on for <code>[% flag_type.name FILTER html %]</code> on
[% terms.bug %]&nbsp;[% bug_id FILTER html %], [%+ terms.bug %]&nbsp;[% bug_id FILTER html %],
attachment [% attach_id FILTER html %], but that attachment is restricted attachment [% attach_id FILTER html %], but that attachment is restricted
to users to users
in the [% Param("insidergroup") FILTER html %] group, and the user in the [% Param("insidergroup") FILTER html %] group, and the user
...@@ -276,7 +276,7 @@ ...@@ -276,7 +276,7 @@
[% title = "Invalid Email Address" %] [% title = "Invalid Email Address" %]
The e-mail address you entered(<b>[% addr FILTER html %]</b>) The e-mail address you entered(<b>[% addr FILTER html %]</b>)
didn't pass our syntax checking for a legal email address. 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: It must also not contain any of these special characters:
<tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace. <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.
...@@ -288,8 +288,7 @@ ...@@ -288,8 +288,7 @@
[% ELSIF error == "illegal_group_control_combination" %] [% ELSIF error == "illegal_group_control_combination" %]
[% title = "Your Group Control Combination Is Illegal" %] [% title = "Your Group Control Combination Is Illegal" %]
Your group control combination for group &quot; Your group control combination for group &quot;
[% groupname FILTER html %] [% groupname FILTER html %]&quot; is illegal.
&quot; is illegal.
[% ELSIF error == "illegal_is_obsolete" %] [% ELSIF error == "illegal_is_obsolete" %]
[% title = "Your Query Makes No Sense" %] [% title = "Your Query Makes No Sense" %]
...@@ -342,7 +341,8 @@ ...@@ -342,7 +341,8 @@
[% END %] [% END %]
If you are trying to use QuickSearch, you need to enable JavaScript 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 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" %] [% ELSIF error == "invalid_changedsince" %]
[% title = "Invalid 'Changed Since'" %] [% title = "Invalid 'Changed Since'" %]
......
...@@ -69,7 +69,8 @@ ...@@ -69,7 +69,8 @@
<font color="red"> <font color="red">
[% IF cgi.user_agent("Mozilla/5") %] [% IF cgi.user_agent("Mozilla/5") %]
Note that if the help popups are hidden by form element scroll bars, 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 %] [% END %]
</font> </font>
</p> </p>
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
# search/boolean-charts.html.tmpl. # search/boolean-charts.html.tmpl.
#%] #%]
[% PROCESS global/variables.none.tmpl %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Create New Data Set" title = "Create New Data Set"
onload = "selectProduct(document.forms['chartform']);" onload = "selectProduct(document.forms['chartform']);"
...@@ -48,7 +50,7 @@ ...@@ -48,7 +50,7 @@
<td> <td>
<input type="radio" id="action-create" name="action" value="create"> <input type="radio" id="action-create" name="action" value="create">
<label for="action-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> </label>
<br> <br>
......
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
# Contributor(s): Myk Melez <myk@mozilla.org> # Contributor(s): Myk Melez <myk@mozilla.org>
#%] #%]
[% PROCESS global/variables.none.tmpl %]
[% PROCESS global/header.html.tmpl [% PROCESS global/header.html.tmpl
title = "Find a Specific Bug" title = "Find a Specific Bug"
h1 = "" h1 = ""
...@@ -35,15 +37,15 @@ ...@@ -35,15 +37,15 @@
[% PROCESS search/tabs.html.tmpl %] [% PROCESS search/tabs.html.tmpl %]
<p> <p>
Find a specific bug by entering words that describe it. Bugzilla will search Find a specific [% terms.bug %] by entering words that describe it.
bug summaries, descriptions, and comments for those words and return a list [% terms.Bugzilla %] will search [% terms.bug %] summaries, descriptions, and
of matching bugs sorted by relevance. comments for those words and return a list of matching [% terms.bugs %] sorted
by relevance.
</p> </p>
<p> <p>
For example, if the bug you are looking for is a browser crash when you go 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
to a secure web site with an embedded Flash animation, you might search for for "crash secure SSL flash".
"crash secure SSL flash".
</p> </p>
<form method="get" action="buglist.cgi"> <form method="get" action="buglist.cgi">
......
...@@ -69,7 +69,8 @@ ...@@ -69,7 +69,8 @@
<font color="red"> <font color="red">
[% IF cgi.user_agent("Mozilla/5") %] [% IF cgi.user_agent("Mozilla/5") %]
Note that if the help popups are hidden by form element scroll bars, 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 %] [% END %]
</font> </font>
</p> </p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment