]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 577588: xt/seach.t was sometimes not properly translating special
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 9 Jul 2010 01:49:12 +0000 (18:49 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 9 Jul 2010 01:49:12 +0000 (18:49 -0700)
<> values into the actual bug value, for searching
r=mkanat, a=mkanat (module owner)

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

index 80e9e0c52951f84e7395fd27b17bb71ed1978a89..af595e373c4b10bacd6e34b547f2ff622a9bd2d3 100644 (file)
@@ -604,12 +604,12 @@ sub _create_one_bug {
     # All the bugs are created with everconfirmed = 0.
     $params{bug_status} = 'UNCONFIRMED';
     my $bug = Bugzilla::Bug->create(\%params);
-
+    
     # These are necessary for the changedfrom tests.
     my $extra_values = $self->_extra_bug_create_values->{$number};
-    foreach my $field qw(comments remaining_time flags percentage_complete
+    foreach my $field qw(comments remaining_time percentage_complete
                          keyword_objects everconfirmed dependson blocked
-                         groups_in)
+                         groups_in classification)
     {
         $extra_values->{$field} = $bug->$field;
     }
@@ -705,6 +705,7 @@ sub _create_one_bug {
         $bug->set_flags([], $flags);
         $timestamp->set(second => $number);
         $bug->update($timestamp->ymd . ' ' . $timestamp->hms);
+        $extra_values->{flags} = $bug->flags;
         
         # It's not generally safe to do update() multiple times on
         # the same Bug object.
index 86e195ae0f16269ca18335f5e8896ed76c6b001e..9b13e1a42974788e1a05e0ae82198775f3fbc4bb 100644 (file)
@@ -505,9 +505,9 @@ use constant KNOWN_BROKEN => {
         CHANGED_VALUE_BROKEN,
         # All fields should have a way to search for "changing
         # from a blank value" probably.
-        blocked   => { contains => [1] },
-        dependson => { contains => [1] },
-        FIELD_TYPE_BUG_ID, { contains => [1] },
+        blocked   => { contains => [3,4,5] },
+        dependson => { contains => [2,4,5] },
+        FIELD_TYPE_BUG_ID, { contains => [5] },
     },
     # changeto doesn't find work_time changes (probably due to decimal/string
     # stuff). Same for remaining_time and estimated_time.
@@ -799,7 +799,7 @@ use constant TESTS => {
               reporter_accessible      => { value => 1, contains => [1] },
               'longdescs.isprivate'    => { value => 1, contains => [1] },
               everconfirmed            => { value => 1, contains => [1] },
-              dependson => { contains => [1,3] },
+              dependson => { value => '<3>', contains => [1,3] },
               blocked   => { contains => [1,2] },
               GREATERTHAN_OVERRIDE,
           }
@@ -822,7 +822,11 @@ use constant TESTS => {
     allwordssubstr => [
         { contains => [1], value => '<1>',
           override => { MULTI_BOOLEAN_OVERRIDE } },
-        { contains => [], value => '<1>,<2>' },
+        { contains => [], value => '<1>,<2>',
+          override => {
+              dependson => { value => '<1-id> <3-id>', contains => [] },
+          }
+        },
     ],
     nowordssubstr => [
         { contains => [2,3,4,5], value => '<1>',
@@ -855,7 +859,11 @@ use constant TESTS => {
     allwords => [
         { contains => [1], value => '<1>',
           override => { MULTI_BOOLEAN_OVERRIDE } },
-        { contains => [], value => '<1> <2>' },
+        { contains => [], value => '<1> <2>',
+          override => {
+            dependson => { contains => [], value => '<2-id> <3-id>' }
+          }
+        },
     ],
     nowords => [
         { contains => [2,3,4,5], value => '<1>',
@@ -895,18 +903,25 @@ use constant TESTS => {
               # in the bugs_activity table, so they won't ever match.
               blocked   => { contains => [] },
               dependson => { contains => [] },
-          } 
+          }
         },
     ],
     changedfrom => [
         { contains => [1], value => '<1>',
           override => {
               CHANGED_OVERRIDE,
+              # The test never changes an already-set dependency field, but
+              # we *can* attempt to test searching against an empty value,
+              # which should get us some bugs.
+              blocked   => { value => '', contains => [1,2] },
+              dependson => { value => '', contains => [1,3] },
+              FIELD_TYPE_BUG_ID, { value => '', contains => [1,2,3,4] },
               # longdesc changedfrom doesn't make any sense.
               longdesc => { contains => [] },
               # Nor does creation_ts changedfrom.
               creation_ts => { contains => [] },
               'attach_data.thedata' => { contains => [] },
+              bug_id => { value => '<1-id>', contains => [] },
           },
         },
     ],
index 4c43e34ed7ddfe865b7c0e8454e42133cb330a64..b0307dec4a9e9ffc47c71850e543581e884c9bea 100644 (file)
@@ -406,6 +406,10 @@ sub _translate_value {
     foreach my $number (1..NUM_BUGS) {
         $value = $self->_translate_value_for_bug($number, $value);
     }
+    # Sanity check to make sure that none of the <> stuff was left in.
+    if ($value =~ /<\d/) {
+        die $self->name . ": value untranslated: $value\n";
+    }
     return $value;
 }