Commit 69d45d10 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 601499 - Make xt/search.t test the email(n)* search query parameters

r=mkanat, a=mkanat (module owner)
parent fcc00da4
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
package Bugzilla::Test::Search::Constants; package Bugzilla::Test::Search::Constants;
use base qw(Exporter); use base qw(Exporter);
use Bugzilla::Constants; use Bugzilla::Constants;
use Bugzilla::Util qw(generate_random_password);
our @EXPORT = qw( our @EXPORT = qw(
ATTACHMENT_FIELDS ATTACHMENT_FIELDS
...@@ -146,12 +147,13 @@ use constant OR_SKIP => qw( ...@@ -146,12 +147,13 @@ use constant OR_SKIP => qw(
# All the fields that represent users. # All the fields that represent users.
use constant USER_FIELDS => qw( use constant USER_FIELDS => qw(
assigned_to assigned_to
cc
reporter reporter
qa_contact qa_contact
commenter commenter
attachments.submitter attachments.submitter
setters.login_name setters.login_name
requestees.login_name cc requestees.login_name
); );
# For the "substr"-type searches, how short of a substring should # For the "substr"-type searches, how short of a substring should
...@@ -1256,6 +1258,16 @@ use constant SPECIAL_PARAM_TESTS => ( ...@@ -1256,6 +1258,16 @@ use constant SPECIAL_PARAM_TESTS => (
contains => [1,2,3,4] }, contains => [1,2,3,4] },
{ field => 'bug_status', operator => 'anyexact', value => '__all__', { field => 'bug_status', operator => 'anyexact', value => '__all__',
contains => [1,2,3,4,5] }, contains => [1,2,3,4,5] },
{ field => 'assigned_to', operator => 'anyexact',
value => '<1>, <2-reporter>', contains => [1,2],
extra_params => { emailreporter1 => 1 } },
{ field => 'assigned_to', operator => 'equals',
value => '<1>', extra_name => 'email2', contains => [],
extra_params => {
email2 => generate_random_password(100), emaillongdesc2 => 1,
},
}
); );
1; 1;
...@@ -34,6 +34,8 @@ use constant CH_OPERATOR => { ...@@ -34,6 +34,8 @@ use constant CH_OPERATOR => {
changedto => 'chfieldvalue', changedto => 'chfieldvalue',
}; };
use constant EMAIL_FIELDS => qw(assigned_to qa_contact cc reporter commenter);
# Normally, we just clone a FieldTest because that's the best for performance, # Normally, we just clone a FieldTest because that's the best for performance,
# overall--that way we don't have to translate the value again. However, # overall--that way we don't have to translate the value again. However,
# sometimes (like in Bugzilla::Test::Search's direct code) we just want # sometimes (like in Bugzilla::Test::Search's direct code) we just want
...@@ -78,6 +80,17 @@ sub search_params { ...@@ -78,6 +80,17 @@ sub search_params {
if ($field eq 'deadline' and $operator eq 'lessthaneq') { if ($field eq 'deadline' and $operator eq 'lessthaneq') {
return { deadlineto => $value }; return { deadlineto => $value };
} }
if (grep { $_ eq $field } EMAIL_FIELDS) {
$field = 'longdesc' if $field eq 'commenter';
return {
email1 => $value,
"email${field}1" => 1,
emailtype1 => $operator,
# Used to do extra tests on special sorts of email* combinations.
%{ $self->test->{extra_params} || {} },
};
}
$field =~ s/\./_/g; $field =~ s/\./_/g;
return { $field => $value, "${field}_type" => $operator }; return { $field => $value, "${field}_type" => $operator };
......
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