summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-09 03:47:39 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-09 03:47:39 +0200
commit3f40ba04a7bdea2f3f84202006cc55054d647afb (patch)
treeba24883638992e6011825c413611741382150ecd
parent38728c2f489618965067c133f31a12aa2fb88615 (diff)
downloadbugzilla-3f40ba04a7bdea2f3f84202006cc55054d647afb.tar.gz
bugzilla-3f40ba04a7bdea2f3f84202006cc55054d647afb.tar.xz
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)
-rw-r--r--xt/lib/Bugzilla/Test/Search.pm7
-rw-r--r--xt/lib/Bugzilla/Test/Search/Constants.pm29
-rw-r--r--xt/lib/Bugzilla/Test/Search/FieldTest.pm4
3 files changed, 30 insertions, 10 deletions
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;
}