Bug 656994: Test custom search more thoroughly in xt/search.t.
r=mkanat, a=mkanat (module owner) git-svn-id: svn://10.0.0.236/trunk@262316 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
1e03307ae3
commit
250bfad531
@ -1 +1 @@
|
||||
7813
|
||||
7814
|
||||
@ -1023,13 +1023,142 @@ use constant SPECIAL_PARAM_TESTS => (
|
||||
);
|
||||
|
||||
use constant CUSTOM_SEARCH_TESTS => (
|
||||
{ name => 'bug_id AND assigned_to', contains => [1],
|
||||
columns => ['assigned_to'],
|
||||
{ name => 'OP without CP', contains => [1],
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<1>' },
|
||||
{ f => 'OP' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'Empty OP/CP pair before criteria', contains => [1],
|
||||
params => [
|
||||
{ f => 'OP' }, { f => 'CP' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'Empty OP/CP pair after criteria', contains => [1],
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'OP' }, { f => 'CP' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'empty OP/CP mid criteria', contains => [1],
|
||||
columns => ['assigned_to'],
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'OP' }, { f => 'CP' },
|
||||
{ f => 'assigned_to', o => 'substr', v => '@' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'bug_id = 1 AND assigned_to contains @', contains => [1],
|
||||
columns => ['assigned_to'],
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'substr', v => '@' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'NOT(bug_id = 1) AND NOT(assigned_to = 2)',
|
||||
contains => [3,4,5],
|
||||
columns => ['assigned_to'],
|
||||
params => [
|
||||
{ n => 1, f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ n => 1, f => 'assigned_to', o => 'equals', v => '<2>' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'bug_id = 1 OR assigned_to = 2', contains => [1,2],
|
||||
columns => ['assigned_to'], top_params => { j_top => 'OR' },
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<2>' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'NOT(bug_id = 1 AND assigned_to = 1)', contains => [2,3,4,5],
|
||||
columns => ['assigned_to'],
|
||||
params => [
|
||||
{ f => 'OP', n => 1 },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<1>' },
|
||||
{ f => 'CP' },
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
{ name => '(bug_id = 1 AND assigned_to contains @) '
|
||||
. ' OR (bug_id = 2 AND assigned_to contains @)',
|
||||
contains => [1,2], columns => ['assigned_to'],
|
||||
top_params => { j_top => 'OR' },
|
||||
params => [
|
||||
{ f => 'OP' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'substr', v => '@' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'OP' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<2>' },
|
||||
{ f => 'assigned_to', o => 'substr', v => '@' },
|
||||
{ f => 'CP' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => '(bug_id = 1 OR assigned_to = 2) '
|
||||
. ' AND (bug_id = 2 OR assigned_to = 1)',
|
||||
contains => [1,2], columns => ['assigned_to'],
|
||||
params => [
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<2>' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<2>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<1>' },
|
||||
{ f => 'CP' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'bug_id = 3 OR ( (bug_id = 1 OR assigned_to = 2) '
|
||||
. ' AND (bug_id = 2 OR assigned_to = 1) )',
|
||||
contains => [1,2,3], columns => ['assigned_to'],
|
||||
top_params => { j_top => 'OR' },
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<3>' },
|
||||
{ f => 'OP' },
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<2>' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<2>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<1>' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'CP' },
|
||||
]
|
||||
},
|
||||
|
||||
{ name => 'bug_id = 3 OR ( (bug_id = 1 OR assigned_to = 2) '
|
||||
. ' AND (bug_id = 2 OR assigned_to = 1) ) OR bug_id = 4',
|
||||
contains => [1,2,3,4], columns => ['assigned_to'],
|
||||
top_params => { j_top => 'OR' },
|
||||
params => [
|
||||
{ f => 'bug_id', o => 'equals', v => '<3>' },
|
||||
{ f => 'OP' },
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<1>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<2>' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'OP', j => 'OR' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<2>' },
|
||||
{ f => 'assigned_to', o => 'equals', v => '<1>' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'CP' },
|
||||
{ f => 'bug_id', o => 'equals', v => '<4>' },
|
||||
]
|
||||
},
|
||||
|
||||
);
|
||||
|
||||
1;
|
||||
|
||||
@ -80,10 +80,10 @@ sub invalid_field_operator_combination { return undef }
|
||||
sub search_params {
|
||||
my ($self) = @_;
|
||||
|
||||
my %params;
|
||||
my %params = %{ $self->test->{top_params} || {} };
|
||||
my $counter = 0;
|
||||
foreach my $row (@{ $self->test->{params} }) {
|
||||
$row->{v} = $self->translate_value($row);
|
||||
$row->{v} = $self->translate_value($row) if exists $row->{v};
|
||||
foreach my $key (keys %$row) {
|
||||
$params{"${key}$counter"} = $row->{$key};
|
||||
}
|
||||
@ -107,7 +107,7 @@ sub translate_value {
|
||||
|
||||
sub search_columns {
|
||||
my ($self) = @_;
|
||||
return ['bug_id', @{ $self->test->{columns} }];
|
||||
return ['bug_id', @{ $self->test->{columns} || [] }];
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user