Commit 8e9c6c35 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 601364: Make xt/search.t also test the normal field=value search params

r=mkanat, a=mkanat (module owner)
parent 49cf9cce
......@@ -99,8 +99,8 @@ sub num_tests {
? ($top_combinations * $all_combinations) : 0;
# And AND tests, which means we run 2x $join_tests;
$join_tests = $join_tests * 2;
# Also, because of NOT tests, we run 2x $top_combinations.
my $basic_tests = $top_combinations * 2;
# Also, because of NOT tests and Normal tests, we run 3x $top_combinations.
my $basic_tests = $top_combinations * 3;
my $operator_field_tests = ($basic_tests + $join_tests) * TESTS_PER_RUN;
# Then we test each field/operator combination for SQL injection.
......
......@@ -279,7 +279,7 @@ sub join_broken {
# Accessors: Bugzilla::Search Arguments #
#########################################
# The CGI object that will get passed to Bugzilla::Search as its arguments.
# The data that will get passed to Bugzilla::Search as its arguments.
sub search_params {
my ($self) = @_;
return $self->{search_params} if $self->{search_params};
......
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Everything Solved, Inc.
# Portions created by the Initial Developer are Copyright (C) 2010 the
# Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Max Kanat-Alexander <mkanat@bugzilla.org>
# This is the same as a FieldTest, except that it uses normal URL
# parameters instead of Boolean Charts.
package Bugzilla::Test::Search::FieldTestNormal;
use strict;
use warnings;
use base qw(Bugzilla::Test::Search::FieldTest);
# We just clone a FieldTest because that's the best for performance,
# overall--that way we don't have to translate the value again.
sub new {
my ($class, $field_test) = @_;
my $self = { %$field_test };
return bless $self, $class;
}
sub name {
my $self = shift;
my $name = $self->SUPER::name(@_);
return "$name (Normal Params)";
}
sub search_params {
my ($self) = @_;
return $self->{search_params} if $self->{search_params};
my $field = $self->field;
my $value = $self->translated_value;
my %params = (
$field => $value,
"${field}_type" => $self->operator,
);
$self->{search_params} = \%params;
return $self->{search_params};
}
1;
\ No newline at end of file
......@@ -27,6 +27,7 @@ use strict;
use warnings;
use Bugzilla::Test::Search::Constants;
use Bugzilla::Test::Search::FieldTest;
use Bugzilla::Test::Search::FieldTestNormal;
use Bugzilla::Test::Search::InjectionTest;
use Bugzilla::Test::Search::OrTest;
use Bugzilla::Test::Search::AndTest;
......@@ -64,6 +65,9 @@ sub run {
my $field_test =
new Bugzilla::Test::Search::FieldTest($self, $field, $test);
$field_test->run();
my $normal_test =
new Bugzilla::Test::Search::FieldTestNormal($field_test);
$normal_test->run();
my $not_test = new Bugzilla::Test::Search::NotTest($field_test);
$not_test->run();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment