]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 601499 - Make xt/search.t test the email(n)* search query parameters
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Sun, 3 Oct 2010 21:46:49 +0000 (14:46 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Sun, 3 Oct 2010 21:46:49 +0000 (14:46 -0700)
r=mkanat, a=mkanat (module owner)

xt/lib/Bugzilla/Test/Search/Constants.pm
xt/lib/Bugzilla/Test/Search/FieldTestNormal.pm

index 7b06a0c952efbbb0d6f09735cd09f14bc769138e..9eb575017abad769fac05175a841c2fde6fc90aa 100644 (file)
@@ -28,6 +28,7 @@
 package Bugzilla::Test::Search::Constants;
 use base qw(Exporter);
 use Bugzilla::Constants;
+use Bugzilla::Util qw(generate_random_password);
 
 our @EXPORT = qw(
     ATTACHMENT_FIELDS
@@ -146,12 +147,13 @@ use constant OR_SKIP => qw(
 # All the fields that represent users.
 use constant USER_FIELDS => qw(
     assigned_to
+    cc
     reporter
     qa_contact
     commenter
     attachments.submitter
     setters.login_name
-    requestees.login_name cc
+    requestees.login_name
 );
 
 # For the "substr"-type searches, how short of a substring should
@@ -1256,6 +1258,16 @@ use constant SPECIAL_PARAM_TESTS => (
       contains => [1,2,3,4] },
     { field => 'bug_status', operator => 'anyexact', value => '__all__',
       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;
index 6f3564d0d2db6b0ecc4de6c6cee852206e3e3bd6..b3da598e42e367571fecf6fc531a61e9ab7adde2 100644 (file)
@@ -34,6 +34,8 @@ use constant CH_OPERATOR => {
     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,
 # 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
@@ -78,6 +80,17 @@ sub search_params {
     if ($field eq 'deadline' and $operator eq 'lessthaneq') {
         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;
     return { $field => $value, "${field}_type" => $operator };