From 3f40ba04a7bdea2f3f84202006cc55054d647afb Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Thu, 8 Jul 2010 18:47:39 -0700 Subject: Bug 577588: xt/seach.t was sometimes not properly translating special <> values into the actual bug value, for searching r=mkanat, a=mkanat (module owner) --- xt/lib/Bugzilla/Test/Search.pm | 7 ++++--- xt/lib/Bugzilla/Test/Search/Constants.pm | 29 ++++++++++++++++++++++------- xt/lib/Bugzilla/Test/Search/FieldTest.pm | 4 ++++ 3 files changed, 30 insertions(+), 10 deletions(-) (limited to 'xt/lib') diff --git a/xt/lib/Bugzilla/Test/Search.pm b/xt/lib/Bugzilla/Test/Search.pm index 80e9e0c52..af595e373 100644 --- a/xt/lib/Bugzilla/Test/Search.pm +++ b/xt/lib/Bugzilla/Test/Search.pm @@ -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. diff --git a/xt/lib/Bugzilla/Test/Search/Constants.pm b/xt/lib/Bugzilla/Test/Search/Constants.pm index 4a287eeb3..bc33ad335 100644 --- a/xt/lib/Bugzilla/Test/Search/Constants.pm +++ b/xt/lib/Bugzilla/Test/Search/Constants.pm @@ -449,9 +449,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. @@ -748,7 +748,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, } @@ -771,7 +771,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>', @@ -804,7 +808,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>', @@ -844,18 +852,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 => [] }, }, }, ], diff --git a/xt/lib/Bugzilla/Test/Search/FieldTest.pm b/xt/lib/Bugzilla/Test/Search/FieldTest.pm index 4c43e34ed..b0307dec4 100644 --- a/xt/lib/Bugzilla/Test/Search/FieldTest.pm +++ b/xt/lib/Bugzilla/Test/Search/FieldTest.pm @@ -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; } -- cgit v1.2.3-24-g4f1b