Commit 618851e7 authored by gerv%gerv.net's avatar gerv%gerv.net

Bug 167978 - Fix Throw*Error l10n regressions and add a test to catch more.…

Bug 167978 - Fix Throw*Error l10n regressions and add a test to catch more. Patch by gerv; r=bbaetz.
parent c5d6844e
...@@ -142,7 +142,7 @@ sub validateID ...@@ -142,7 +142,7 @@ sub validateID
my ($bugid, $isprivate) = FetchSQLData(); my ($bugid, $isprivate) = FetchSQLData();
ValidateBugID($bugid); ValidateBugID($bugid);
if (($isprivate > 0 ) && Param("insidergroup") && !(UserInGroup(Param("insidergroup")))) { if (($isprivate > 0 ) && Param("insidergroup") && !(UserInGroup(Param("insidergroup")))) {
ThrowUserError("You are not permitted access to this attachment."); ThrowUserError("attachment_access_denied");
} }
} }
......
...@@ -87,7 +87,10 @@ my $product = $::FORM{'product'}; ...@@ -87,7 +87,10 @@ my $product = $::FORM{'product'};
# cannot get any other information about that product. # cannot get any other information about that product.
my $product_id = get_product_id($product); my $product_id = get_product_id($product);
ThrowUserError("The product name is invalid.") unless $product_id; if (!$product_id) {
$::vars->{'product'} = $product;
ThrowUserError("invalid_product_name");
}
# Make sure the user is authorized to access this product. # Make sure the user is authorized to access this product.
if (Param("usebuggroups") && GroupExists($product)) { if (Param("usebuggroups") && GroupExists($product)) {
......
...@@ -65,8 +65,8 @@ my $product_id; ...@@ -65,8 +65,8 @@ my $product_id;
if ($product) { if ($product) {
$product_id = get_product_id($product); $product_id = get_product_id($product);
if (!$product_id) { if (!$product_id) {
ThrowUserError("The product <tt>" . html_quote($product) . $vars->{'product'} = $product;
"</tt> does not exist"); ThrowUserError("invalid_product_name");
} }
} }
......
...@@ -71,8 +71,8 @@ ValidateComment($comment); ...@@ -71,8 +71,8 @@ ValidateComment($comment);
my $product = $::FORM{'product'}; my $product = $::FORM{'product'};
my $product_id = get_product_id($product); my $product_id = get_product_id($product);
if (!$product_id) { if (!$product_id) {
ThrowUserError("Sorry, the product <tt>" . html_quote($product) . $vars->{'product'} = $product;
"</tt> does not exist"); ThrowUserError("invalid_product_name");
} }
# Set cookies # Set cookies
......
...@@ -558,8 +558,7 @@ if ($::FORM{'product'} ne $::dontchange) { ...@@ -558,8 +558,7 @@ if ($::FORM{'product'} ne $::dontchange) {
my $comp_id; # Remember, can't use this for mass changes my $comp_id; # Remember, can't use this for mass changes
if ($::FORM{'component'} ne $::dontchange) { if ($::FORM{'component'} ne $::dontchange) {
if (!defined $prod_id) { if (!defined $prod_id) {
ThrowUserError("You cannot change the component from a list of bugs " . ThrowUserError("no_component_change_for_multiple_products");
"covering more than one product");
} }
$comp_id = get_component_id($prod_id, $comp_id = get_component_id($prod_id,
$::FORM{'component'}); $::FORM{'component'});
......
...@@ -63,7 +63,7 @@ if ($action eq "add") { ...@@ -63,7 +63,7 @@ if ($action eq "add") {
} }
if (Param('enablequips') ne "on") { if (Param('enablequips') ne "on") {
ThrowUserError("This site does not permit the addition of new quips"); ThrowUserError("no_new_quips");
exit(); exit();
} }
......
...@@ -44,7 +44,7 @@ use lib 't'; ...@@ -44,7 +44,7 @@ use lib 't';
use Support::Files; use Support::Files;
use Test::More tests => (scalar(@Support::Files::testitems) * 2); use Test::More tests => (scalar(@Support::Files::testitems) * 3);
my @testitems = @Support::Files::testitems; # get the files to test. my @testitems = @Support::Files::testitems; # get the files to test.
...@@ -116,4 +116,30 @@ foreach my $file (@testitems) { ...@@ -116,4 +116,30 @@ foreach my $file (@testitems) {
} }
} }
# Check to see that all error messages use tags (for l10n reasons.)
foreach my $file (@testitems) {
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries
if (! open (FILE, $file)) {
ok(0,"could not open $file --WARNING");
next;
}
my $lineno = 0;
my $error = 0;
while (my $file_line = <FILE>) {
$lineno++;
if ($file_line =~ /Throw.*Error\("(.*?)"/) {
if ($1 =~ /\s/) {
ok(0,"$file has a Throw*Error call on line $lineno
which doesn't use a tag --ERROR");
$error = 1;
}
}
}
ok(1,"$file uses Throw*Error calls correctly") if !$error;
close(FILE);
}
exit 0; exit 0;
...@@ -75,6 +75,10 @@ ...@@ -75,6 +75,10 @@
Bug aliases cannot be longer than 20 characters. Bug aliases cannot be longer than 20 characters.
Please choose a shorter alias. Please choose a shorter alias.
[% ELSIF error == "attachment_access_denied" %]
[% title = "Access Denied" %]
You are not permitted access to this attachment.
[% ELSIF error == "buglist_parameters_required" %] [% ELSIF error == "buglist_parameters_required" %]
[% title = "Parameters Required" %] [% title = "Parameters Required" %]
[% url = "query.cgi" %] [% url = "query.cgi" %]
...@@ -155,6 +159,10 @@ ...@@ -155,6 +159,10 @@
[% title = "Invalid Bug ID" %] [% title = "Invalid Bug ID" %]
The bug id [% bug_id FILTER html %] is invalid. The bug id [% bug_id FILTER html %] is invalid.
[% ELSIF error == "invalid_product_name" %]
[% title = "Invalid Product Name" %]
The product name '[% product FILTER html %]' is invalid or does not exist.
[% ELSIF error == "invalid_username" %] [% ELSIF error == "invalid_username" %]
[% title = "Invalid Username" %] [% title = "Invalid Username" %]
The name <tt>[% name FILTER html %]</tt> is not a valid username. The name <tt>[% name FILTER html %]</tt> is not a valid username.
...@@ -182,6 +190,11 @@ ...@@ -182,6 +190,11 @@
[% title = "No Bugs Chosen" %] [% title = "No Bugs Chosen" %]
You apparently didn't choose any bugs to modify. You apparently didn't choose any bugs to modify.
[% ELSIF error == "no_component_change_for_multiple_products" %]
[% title = "Action Not Permitted" %]
You cannot change the component for a list of bugs covering more than
one product.
[% ELSIF error == "no_dupe_stats" %] [% ELSIF error == "no_dupe_stats" %]
[% title = "Cannot Find Duplicate Statistics" %] [% title = "Cannot Find Duplicate Statistics" %]
There are no duplicate statistics for today ([% today %]) or yesterday. There are no duplicate statistics for today ([% today %]) or yesterday.
...@@ -200,6 +213,10 @@ ...@@ -200,6 +213,10 @@
There are no duplicate statistics for today ([% today %]), and an error There are no duplicate statistics for today ([% today %]), and an error
occurred opening yesterday's dupes file: [% error_msg FILTER html %]. occurred opening yesterday's dupes file: [% error_msg FILTER html %].
[% ELSIF error == "no_new_quips" %]
[% title = "No New Quips" %]
This site does not permit the addition of new quips.
[% ELSIF error == "page_not_found" %] [% ELSIF error == "page_not_found" %]
[% title = "Page not found" %] [% title = "Page not found" %]
The page you requested cannot be found. The page you requested cannot be found.
...@@ -215,6 +232,10 @@ ...@@ -215,6 +232,10 @@
<code>[% keyword FILTER html %]</code> is not a known keyword. <code>[% keyword FILTER html %]</code> is not a known keyword.
The legal keyword names are <a href="describekeywords.cgi">listed here</a>. The legal keyword names are <a href="describekeywords.cgi">listed here</a>.
[% ELSIF error == "unknown_tab" %]
[% title = "Unknown Tab" %]
<code>[% current_tab_name FILTER html %]</code> is not a legal tab name.
[% ELSE %] [% ELSE %]
[%# Cope with legacy calling convention, where "error" was the string [%# Cope with legacy calling convention, where "error" was the string
# to print. # to print.
......
...@@ -395,8 +395,7 @@ SWITCH: for ($current_tab_name) { ...@@ -395,8 +395,7 @@ SWITCH: for ($current_tab_name) {
DoPermissions(); DoPermissions();
last SWITCH; last SWITCH;
}; };
ThrowUserError("Unknown tab <code>" . html_quote($current_tab_name) ThrowUserError("current_tab_name");
. "</code>");
} }
# Generate and return the UI (HTML page) from the appropriate template. # Generate and return the UI (HTML page) from the appropriate template.
......
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