From 9b6ec1f545da1cc4088ddf9cc117747954e58e65 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Fri, 26 Feb 2016 17:57:55 +0000 Subject: Bug 1069799 - move the QA repository into the main repository r=LpSolit --- xt/lib/Bugzilla/Test/Search/OrTest.pm | 141 ---------------------------------- 1 file changed, 141 deletions(-) delete mode 100644 xt/lib/Bugzilla/Test/Search/OrTest.pm (limited to 'xt/lib/Bugzilla/Test/Search/OrTest.pm') diff --git a/xt/lib/Bugzilla/Test/Search/OrTest.pm b/xt/lib/Bugzilla/Test/Search/OrTest.pm deleted file mode 100644 index 1b948f38d..000000000 --- a/xt/lib/Bugzilla/Test/Search/OrTest.pm +++ /dev/null @@ -1,141 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This Source Code Form is "Incompatible With Secondary Licenses", as -# defined by the Mozilla Public License, v. 2.0. - -# This test combines two field/operator combinations using OR in -# a single boolean chart. -package Bugzilla::Test::Search::OrTest; -use parent qw(Bugzilla::Test::Search::FieldTest); - -use Bugzilla::Test::Search::Constants; -use List::MoreUtils qw(all any uniq); - -use constant type => 'OR'; - -############### -# Constructor # -############### - -sub new { - my $class = shift; - my $self = { field_tests => [@_] }; - return bless $self, $class; -} - -############# -# Accessors # -############# - -sub field_tests { return @{ $_[0]->{field_tests} } } -sub search_test { ($_[0]->field_tests)[0]->search_test } - -sub name { - my ($self) = @_; - my @names = map { $_->name } $self->field_tests; - return join('-' . $self->type . '-', @names); -} - -# In an OR test, bugs ARE supposed to be contained if they are contained -# by ANY test. -sub bug_is_contained { - my ($self, $number) = @_; - return any { $_->bug_is_contained($number) } $self->field_tests; -} - -# Needed only for failure messages -sub debug_value { - my ($self) = @_; - my @values = map { $_->field . ' ' . $_->debug_value } $self->field_tests; - return join(' ' . $self->type . ' ', @values); -} - -######################## -# SKIP & TODO Messages # -######################## - -sub field_not_yet_implemented { - my ($self) = @_; - return $self->_join_messages('field_not_yet_implemented'); -} -sub invalid_field_operator_combination { - my ($self) = @_; - return $self->_join_messages('invalid_field_operator_combination'); -} -sub search_known_broken { - my ($self) = @_; - return $self->_join_messages('search_known_broken'); -} - -sub _join_messages { - my ($self, $message_method) = @_; - my @messages = map { $_->$message_method } $self->field_tests; - @messages = grep { $_ } @messages; - return join(' AND ', @messages); -} - -sub _bug_will_actually_be_contained { - my ($self, $number) = @_; - - foreach my $test ($self->field_tests) { - # Some tests are broken in such a way that they actually - # generate no criteria in the SQL. In this case, the only way - # the test contains the bug is if *another* test contains it. - next if $test->_known_broken->{no_criteria}; - return 1 if $test->will_actually_contain_bug($number); - } - return 0; -} - -sub contains_known_broken { - my ($self, $number) = @_; - - if ( ( $self->bug_is_contained($number) - and !$self->_bug_will_actually_be_contained($number) ) - or ( !$self->bug_is_contained($number) - and $self->_bug_will_actually_be_contained($number) ) ) - { - my @messages = map { $_->contains_known_broken($number) } - $self->field_tests; - @messages = grep { $_ } @messages; - # Sometimes, with things that break because of no_criteria, there won't - # be anything in @messages even though we need to print out a message. - if (!@messages) { - my @no_criteria = grep { $_->_known_broken->{no_criteria} } - $self->field_tests; - @messages = map { "No criteria generated by " . $_->name } - @no_criteria; - } - die "broken test with no message" if !@messages; - return join(' AND ', @messages); - } - return undef; -} - -############################## -# Bugzilla::Search arguments # -############################## - -sub search_columns { - my ($self) = @_; - my @columns = map { @{ $_->search_columns } } $self->field_tests; - return [uniq @columns]; -} - -sub search_params { - my ($self) = @_; - my @all_params = map { $_->search_params } $self->field_tests; - my %params; - my $chart = 0; - foreach my $item (@all_params) { - $params{"field0-0-$chart"} = $item->{'field0-0-0'}; - $params{"type0-0-$chart"} = $item->{'type0-0-0'}; - $params{"value0-0-$chart"} = $item->{'value0-0-0'}; - $chart++; - } - return \%params; -} - -1; -- cgit v1.2.3-24-g4f1b