summaryrefslogtreecommitdiffstats
path: root/xt
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2011-03-01 16:19:05 +0100
committerMax Kanat-Alexander <mkanat@bugzilla.org>2011-03-01 16:19:05 +0100
commit86d6af6970a887fa12ee65aacdb9086836d773fd (patch)
tree1ccc6c4d17bb0920e6c6d5fd115f5e09e0c07eac /xt
parentfbeb99dbd2cf3fc492f0af382e7b0f4bed940678 (diff)
downloadbugzilla-86d6af6970a887fa12ee65aacdb9086836d773fd.tar.gz
bugzilla-86d6af6970a887fa12ee65aacdb9086836d773fd.tar.xz
Bug 616341: Make "tag" a valid search field in Search.pm, for the new
tagging system r=mkanat, a=mkanat (module owner)
Diffstat (limited to 'xt')
-rw-r--r--xt/lib/Bugzilla/Test/Search.pm22
-rw-r--r--xt/lib/Bugzilla/Test/Search/Constants.pm4
-rw-r--r--xt/lib/Bugzilla/Test/Search/FieldTest.pm3
3 files changed, 21 insertions, 8 deletions
diff --git a/xt/lib/Bugzilla/Test/Search.pm b/xt/lib/Bugzilla/Test/Search.pm
index ce8d1338d..f718f866f 100644
--- a/xt/lib/Bugzilla/Test/Search.pm
+++ b/xt/lib/Bugzilla/Test/Search.pm
@@ -429,6 +429,7 @@ sub _create_field_values {
}
$values{$field} = $value;
}
+ $values{'tag'} = ["$number-tag-" . random()];
my @date_fields = grep { $_->type == FIELD_TYPE_DATETIME } $self->all_fields;
foreach my $field (@date_fields) {
@@ -481,6 +482,7 @@ sub _create_field_values {
my $name = $field->name;
$values{$name} = [$values{$name}, $new_value->name];
}
+ push(@{ $values{'tag'} }, "6-tag-" . random());
}
# On bug 5, any field that *can* be left empty, *is* left empty.
@@ -607,7 +609,7 @@ sub _create_one_bug {
# There are some things in bug_create_values that shouldn't go into
# create().
- delete @params{qw(attachment set_flags)};
+ delete @params{qw(attachment set_flags tag)};
my ($status, $resolution, $see_also) =
delete @params{qw(bug_status resolution see_also)};
@@ -662,6 +664,15 @@ sub _create_one_bug {
undef, $bug->id, $see_also, 'Bugzilla::BugUrl::Bugzilla');
$extra_values->{see_also} = $bug->see_also;
+ # All the tags must be created as the admin user, so that the
+ # admin user can find them, later.
+ my $original_user = Bugzilla->user;
+ Bugzilla->set_user($self->admin);
+ my $tags = $self->bug_create_value($number, 'tag');
+ $bug->add_tag($_) foreach @$tags;
+ $extra_values->{tags} = $tags;
+ Bugzilla->set_user($original_user);
+
if ($number == 1) {
# Bug 1 needs to start off with reporter_accessible and
# cclist_accessible being 0, so that when we change them to 1,
@@ -669,12 +680,9 @@ sub _create_one_bug {
$dbh->do('UPDATE bugs SET reporter_accessible = 0,
cclist_accessible = 0 WHERE bug_id = ?',
undef, $bug->id);
- }
-
- # Bug 1 gets three comments, so that longdescs.count matches it
- # uniquely. The third comment is added in the middle, so that the
- # last comment contains all of the important data, like work_time.
- if ($number == 1) {
+ # Bug 1 gets three comments, so that longdescs.count matches it
+ # uniquely. The third comment is added in the middle, so that the
+ # last comment contains all of the important data, like work_time.
$bug->add_comment("1-comment-" . random(100));
}
diff --git a/xt/lib/Bugzilla/Test/Search/Constants.pm b/xt/lib/Bugzilla/Test/Search/Constants.pm
index 256917ec7..6cb25126e 100644
--- a/xt/lib/Bugzilla/Test/Search/Constants.pm
+++ b/xt/lib/Bugzilla/Test/Search/Constants.pm
@@ -260,7 +260,7 @@ use constant GREATERTHAN_BROKEN => (
#
# allwordssubstr on longdescs fields matches against a single comment,
# instead of matching against all comments on a bug. Same is true
-# for cc, keywords, and bug_group.
+# for cc and bug_group.
use constant ALLWORDS_BROKEN => (
bug_group => { contains => [1] },
cc => { contains => [1] },
@@ -710,6 +710,7 @@ use constant GREATERTHAN_OVERRIDE => (
rep_platform => { contains => [2,3,4,5] },
short_desc => { contains => [2,3,4,5] },
version => { contains => [2,3,4,5] },
+ tag => { contains => [1,2,3,4] },
target_milestone => { contains => [2,3,4,5] },
# Bug 2 is the only bug besides 1 that has a Requestee set.
'requestees.login_name' => { contains => [2] },
@@ -757,6 +758,7 @@ use constant CHANGED_OVERRIDE => (
'attachments.submitter' => { contains => [] },
bug_id => { contains => [] },
reporter => { contains => [] },
+ tag => { contains => [] },
);
#########
diff --git a/xt/lib/Bugzilla/Test/Search/FieldTest.pm b/xt/lib/Bugzilla/Test/Search/FieldTest.pm
index e57fd2a59..400ca3263 100644
--- a/xt/lib/Bugzilla/Test/Search/FieldTest.pm
+++ b/xt/lib/Bugzilla/Test/Search/FieldTest.pm
@@ -350,6 +350,9 @@ sub _field_values_for_bug {
elsif ($field eq 'see_also') {
@values = $self->_values_for($number, 'see_also', 'name');
}
+ elsif ($field eq 'tag') {
+ @values = $self->_values_for($number, 'tags');
+ }
# Bugzilla::Bug truncates creation_ts, but we need the full value
# from the database. This has no special value for changedfrom,
# because it never changes.