Commit 04871c90 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 601519 - Test pronouns (like %user%, %reporter%, etc.) in xt/search.t

r=mkanat, a=mkanat (module owner)
parent 9936d9f1
......@@ -592,6 +592,7 @@ sub _create_one_bug {
my $update_alias = $self->bug_update_value($number, 'alias');
# Otherwise, make bug 6 a clone of bug 1.
my $real_number = $number;
$number = 1 if $number == 6;
my $reporter = $self->bug_create_value($number, 'reporter');
......@@ -689,9 +690,14 @@ sub _create_one_bug {
$update_params{groups} = { add => $update_params{groups},
remove => $bug->groups_in };
my @cc_remove = map { $_->login } @{ $bug->cc_users };
my $cc_add = $update_params{cc};
$cc_add = [$cc_add] if !ref $cc_add;
$update_params{cc} = { add => $cc_add, remove => \@cc_remove };
my $cc_new = $update_params{cc};
my @cc_add = ref($cc_new) ? @$cc_new : ($cc_new);
# We make the admin an explicit CC on bug 1 (but not on bug 6), so
# that we can test the %user% pronoun properly.
if ($real_number == 1) {
push(@cc_add, $self->admin->login);
}
$update_params{cc} = { add => \@cc_add, remove => \@cc_remove };
my $see_also_remove = $bug->see_also;
my $see_also_add = [$update_params{see_also}];
$update_params{see_also} = { add => $see_also_add,
......
......@@ -336,6 +336,9 @@ use constant CHANGED_VALUE_BROKEN => (
# while the other fails. In this case, we have a special override for
# "operator-value", which uniquely identifies tests.
use constant KNOWN_BROKEN => {
"equals-%group.<1-bug_group>%" => {
commenter => { contains => [1,2,3,4,5] },
},
notequals => { NEGATIVE_BROKEN },
notsubstring => { NEGATIVE_BROKEN },
notregexp => { NEGATIVE_BROKEN },
......@@ -1262,6 +1265,7 @@ use constant SPECIAL_PARAM_TESTS => (
{ field => 'resolution', operator => 'anyexact', value => '---',
contains => [5] },
# email* query parameters.
{ field => 'assigned_to', operator => 'anyexact',
value => '<1>, <2-reporter>', contains => [1,2],
extra_params => { emailreporter1 => 1 } },
......@@ -1270,7 +1274,28 @@ use constant SPECIAL_PARAM_TESTS => (
extra_params => {
email2 => generate_random_password(100), emaillongdesc2 => 1,
},
}
},
# standard pronouns
{ field => 'assigned_to', operator => 'equals', value => '%assignee%',
contains => [1,2,3,4,5] },
{ field => 'reporter', operator => 'equals', value => '%reporter%',
contains => [1,2,3,4,5] },
{ field => 'qa_contact', operator => 'equals', value => '%qacontact%',
contains => [1,2,3,4,5] },
{ field => 'cc', operator => 'equals', value => '%user%',
contains => [1] },
# group pronouns
{ field => 'reporter', operator => 'equals',
value => '%group.<1-bug_group>%', contains => [1,2,3,4,5] },
{ field => 'assigned_to', operator => 'equals',
value => '%group.<1-bug_group>%', contains => [1,2,3,4,5] },
{ field => 'qa_contact', operator => 'equals',
value => '%group.<1-bug_group>%', contains => [1,2,3,4] },
{ field => 'cc', operator => 'equals',
value => '%group.<1-bug_group>%', contains => [1,2,3,4] },
{ field => 'commenter', operator => 'equals',
value => '%group.<1-bug_group>%', contains => [1,2,3,4,5] },
);
1;
......@@ -431,7 +431,13 @@ sub _translate_value_for_bug {
$value =~ s/<$number-delta>/$bug_delta/g;
my $reporter = $bug->reporter->login;
$value =~ s/<$number-reporter>/$reporter/g;
if ($value =~ /<$number-bug_group>/) {
my @bug_groups = map { $_->name } @{ $bug->groups_in };
@bug_groups = grep { $_ =~ /^\d+-group-/ } @bug_groups;
my $group = $bug_groups[0];
$value =~ s/<$number-bug_group>/$group/g;
}
my @bug_values = $self->bug_values($number);
return $value if !@bug_values;
......
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