summaryrefslogtreecommitdiffstats
path: root/qa/t/webservice_bug_create.t
diff options
context:
space:
mode:
Diffstat (limited to 'qa/t/webservice_bug_create.t')
-rw-r--r--qa/t/webservice_bug_create.t379
1 files changed, 191 insertions, 188 deletions
diff --git a/qa/t/webservice_bug_create.t b/qa/t/webservice_bug_create.t
index 8bab088af..34a03778a 100644
--- a/qa/t/webservice_bug_create.t
+++ b/qa/t/webservice_bug_create.t
@@ -28,212 +28,215 @@ my $bug_fields = create_bug_fields($config);
# hash to contain all the possible $bug_fields values that
# can be passed to createBug()
my $fields = {
- summary => {
- undefined => {
- faultstring => 'You must enter a summary for this bug',
- value => undef
- },
- },
-
- product => {
- undefined => { faultstring => 'You must select/enter a product.', value => undef },
- invalid =>
- { faultstring => 'does not exist', value => 'does-not-exist' },
- },
-
- component => {
- undefined => {
- faultstring => 'you must first choose a component',
- value => undef
- },
- invalid => {
- faultstring => "There is no component named 'does-not-exist'",
- value => 'does-not-exist'
- },
- },
-
- version => {
- undefined =>
- { faultstring => 'You must select/enter a version.', value => undef },
- invalid => {
- faultstring => "There is no version named 'does-not-exist' in the",
- value => 'does-not-exist'
- },
- },
- platform => {
- undefined =>
- { faultstring => 'You must select/enter a Hardware.',
- value => '' },
- invalid => {
- faultstring => "There is no Hardware named 'does-not-exist'.",
- value => 'does-not-exist'
- },
- },
-
- status => {
- invalid => {
- faultstring => "There is no status named 'does-not-exist'",
- value => 'does-not-exist'
- },
- },
-
- severity => {
- undefined =>
- { faultstring => 'You must select/enter a Severity.',
- value => '' },
- invalid => {
- faultstring => "There is no Severity named 'does-not-exist'.",
- value => 'does-not-exist'
- },
- },
-
- priority => {
- undefined =>
- { faultstring => 'You must select/enter a Priority.',
- value => '' },
- invalid => {
- faultstring => "There is no Priority named 'does-not-exist'.",
- value => 'does-not-exist'
- },
- },
-
- op_sys => {
- undefined => {
- faultstring => 'You must select/enter a OS.',
- value => ''
- },
- invalid => {
- faultstring => "There is no OS named 'does-not-exist'.",
- value => 'does-not-exist'
- },
- },
-
- cc => {
- invalid => {
- faultstring => 'not a valid username',
- value => ['nonuserATbugillaDOTorg']
- },
- },
-
- assigned_to => {
- invalid => {
- faultstring => "There is no user named 'does-not-exist'",
- value => 'does-not-exist'
- },
- },
- qa_contact => {
- invalid => {
- faultstring => "There is no user named 'does-not-exist'",
- value => 'does-not-exist'
- },
- },
- alias => {
- long => {
- faultstring => 'Bug aliases cannot be longer than 20 characters',
- value => 'MyyyyyyyyyyyyyyyyyyBugggggggggggggggggggggg'
- },
- existing => {
- faultstring => 'already taken the alias',
- value => 'public_bug'
- },
- numeric => {
- faultstring => 'aliases cannot be merely numbers',
- value => '12345'
- },
- commma_or_space_separated => {
- faultstring => 'contains one or more commas or spaces',
- value => 'Bug 12345'
- },
-
- },
- groups => {
- non_existent => {
- faultstring => 'either this group does not exist, or you are not allowed to restrict bugs to this group',
- value => [random_string(20)],
- },
- },
- comment_is_private => {
- invalid => {
- faultstring => 'you are not allowed to.+comments.+private',
- value => 1,
- }
- },
+ summary => {
+ undefined =>
+ {faultstring => 'You must enter a summary for this bug', value => undef},
+ },
+
+ product => {
+ undefined =>
+ {faultstring => 'You must select/enter a product.', value => undef},
+ invalid => {faultstring => 'does not exist', value => 'does-not-exist'},
+ },
+
+ component => {
+ undefined =>
+ {faultstring => 'you must first choose a component', value => undef},
+ invalid => {
+ faultstring => "There is no component named 'does-not-exist'",
+ value => 'does-not-exist'
+ },
+ },
+
+ version => {
+ undefined =>
+ {faultstring => 'You must select/enter a version.', value => undef},
+ invalid => {
+ faultstring => "There is no version named 'does-not-exist' in the",
+ value => 'does-not-exist'
+ },
+ },
+ platform => {
+ undefined => {faultstring => 'You must select/enter a Hardware.', value => ''},
+ invalid => {
+ faultstring => "There is no Hardware named 'does-not-exist'.",
+ value => 'does-not-exist'
+ },
+ },
+
+ status => {
+ invalid => {
+ faultstring => "There is no status named 'does-not-exist'",
+ value => 'does-not-exist'
+ },
+ },
+
+ severity => {
+ undefined => {faultstring => 'You must select/enter a Severity.', value => ''},
+ invalid => {
+ faultstring => "There is no Severity named 'does-not-exist'.",
+ value => 'does-not-exist'
+ },
+ },
+
+ priority => {
+ undefined => {faultstring => 'You must select/enter a Priority.', value => ''},
+ invalid => {
+ faultstring => "There is no Priority named 'does-not-exist'.",
+ value => 'does-not-exist'
+ },
+ },
+
+ op_sys => {
+ undefined => {faultstring => 'You must select/enter a OS.', value => ''},
+ invalid => {
+ faultstring => "There is no OS named 'does-not-exist'.",
+ value => 'does-not-exist'
+ },
+ },
+
+ cc => {
+ invalid =>
+ {faultstring => 'not a valid username', value => ['nonuserATbugillaDOTorg']},
+ },
+
+ assigned_to => {
+ invalid => {
+ faultstring => "There is no user named 'does-not-exist'",
+ value => 'does-not-exist'
+ },
+ },
+ qa_contact => {
+ invalid => {
+ faultstring => "There is no user named 'does-not-exist'",
+ value => 'does-not-exist'
+ },
+ },
+ alias => {
+ long => {
+ faultstring => 'Bug aliases cannot be longer than 20 characters',
+ value => 'MyyyyyyyyyyyyyyyyyyBugggggggggggggggggggggg'
+ },
+ existing => {faultstring => 'already taken the alias', value => 'public_bug'},
+ numeric =>
+ {faultstring => 'aliases cannot be merely numbers', value => '12345'},
+ commma_or_space_separated => {
+ faultstring => 'contains one or more commas or spaces',
+ value => 'Bug 12345'
+ },
+
+ },
+ groups => {
+ non_existent => {
+ faultstring =>
+ 'either this group does not exist, or you are not allowed to restrict bugs to this group',
+ value => [random_string(20)],
+ },
+ },
+ comment_is_private => {
+ invalid =>
+ {faultstring => 'you are not allowed to.+comments.+private', value => 1,}
+ },
};
-$jsonrpc_get->bz_call_fail('Bug.create', $bug_fields,
- 'must use HTTP POST', 'create fails over GET');
+$jsonrpc_get->bz_call_fail(
+ 'Bug.create', $bug_fields,
+ 'must use HTTP POST',
+ 'create fails over GET'
+);
my @tests = (
- { args => $bug_fields,
- error => "You must log in",
- test => "Cannot file bugs as a logged-out user",
- },
- { user => PRIVATE_BUG_USER,
- args => { %$bug_fields, product => 'QA-Selenium-TEST',
- component => 'QA-Selenium-TEST',
- target_milestone => 'QAMilestone',
- version => 'QAVersion',
- groups => ['QA-Selenium-TEST'],
- # These are set here because we can't actually set them,
- # and we need the values to be correct for post_success.
- qa_contact => $config->{PRIVATE_BUG_USER . '_user_login'},
- status => 'UNCONFIRMED' },
- test => "Authorized user can file a bug against a group",
- },
- { user => PRIVATE_BUG_USER,
- args => { %$bug_fields, comment_is_private => 1,
- # These are here because PRIVATE_BUG_USER can't set them
- # and we need their values to be correct for post_success.
- assigned_to => $config->{'permanent_user'},
- qa_contact => '',
- status => 'UNCONFIRMED' },
- test => "Insider can create a private description"
- },
- { user => 'editbugs',
- args => $bug_fields,
- test => "Creating a bug with standard values succeeds",
- },
+ {
+ args => $bug_fields,
+ error => "You must log in",
+ test => "Cannot file bugs as a logged-out user",
+ },
+ {
+ user => PRIVATE_BUG_USER,
+ args => {
+ %$bug_fields,
+ product => 'QA-Selenium-TEST',
+ component => 'QA-Selenium-TEST',
+ target_milestone => 'QAMilestone',
+ version => 'QAVersion',
+ groups => ['QA-Selenium-TEST'],
+
+ # These are set here because we can't actually set them,
+ # and we need the values to be correct for post_success.
+ qa_contact => $config->{PRIVATE_BUG_USER . '_user_login'},
+ status => 'UNCONFIRMED'
+ },
+ test => "Authorized user can file a bug against a group",
+ },
+ {
+ user => PRIVATE_BUG_USER,
+ args => {
+ %$bug_fields,
+ comment_is_private => 1,
+
+ # These are here because PRIVATE_BUG_USER can't set them
+ # and we need their values to be correct for post_success.
+ assigned_to => $config->{'permanent_user'},
+ qa_contact => '',
+ status => 'UNCONFIRMED'
+ },
+ test => "Insider can create a private description"
+ },
+ {
+ user => 'editbugs',
+ args => $bug_fields,
+ test => "Creating a bug with standard values succeeds",
+ },
);
# Convert the $fields tests into standard bz_run_tests format.
foreach my $field (sort keys %$fields) {
- my $test_values = $fields->{$field};
- foreach my $test_name (sort keys %$test_values) {
- my $input_fields = dclone($bug_fields);
- my $check_value = $test_values->{$test_name}->{value};
- my $error = $test_values->{$test_name}->{faultstring};
- $input_fields->{$field} = $check_value;
- my $test = { user => 'editbugs', args => $input_fields,
- error => $error,
- test => "$field $test_name: fails as expected" };
- push(@tests, $test);
- }
+ my $test_values = $fields->{$field};
+ foreach my $test_name (sort keys %$test_values) {
+ my $input_fields = dclone($bug_fields);
+ my $check_value = $test_values->{$test_name}->{value};
+ my $error = $test_values->{$test_name}->{faultstring};
+ $input_fields->{$field} = $check_value;
+ my $test = {
+ user => 'editbugs',
+ args => $input_fields,
+ error => $error,
+ test => "$field $test_name: fails as expected"
+ };
+ push(@tests, $test);
+ }
}
sub post_success {
- my ($call, $t, $rpc) = @_;
+ my ($call, $t, $rpc) = @_;
- my $id = $call->result->{id};
- ok($id, $rpc->TYPE . ": Result has an id: $id");
+ my $id = $call->result->{id};
+ ok($id, $rpc->TYPE . ": Result has an id: $id");
- my $get_call = $rpc->bz_call_success('Bug.get', { ids => [$id] });
- my $bug = $get_call->result->{bugs}->[0];
+ my $get_call = $rpc->bz_call_success('Bug.get', {ids => [$id]});
+ my $bug = $get_call->result->{bugs}->[0];
- my $expect = dclone $t->{args};
+ my $expect = dclone $t->{args};
- my $comment_is_private = delete $expect->{comment_is_private};
- $expect->{creator} = $rpc->bz_config->{$t->{user} . '_user_login'};
+ my $comment_is_private = delete $expect->{comment_is_private};
+ $expect->{creator} = $rpc->bz_config->{$t->{user} . '_user_login'};
- my @fields = keys %$expect;
- $rpc->bz_test_bug(\@fields, $bug, $expect, $t);
+ my @fields = keys %$expect;
+ $rpc->bz_test_bug(\@fields, $bug, $expect, $t);
- my $comment_call = $rpc->bz_call_success('Bug.comments', { ids => [$id] });
- my $comment = $comment_call->result->{bugs}->{$id}->{comments}->[0];
- is($comment->{is_private} ? 1 : 0, $comment_is_private ? 1 : 0,
- $rpc->TYPE . ": comment privacy is correct");
+ my $comment_call = $rpc->bz_call_success('Bug.comments', {ids => [$id]});
+ my $comment = $comment_call->result->{bugs}->{$id}->{comments}->[0];
+ is(
+ $comment->{is_private} ? 1 : 0,
+ $comment_is_private ? 1 : 0,
+ $rpc->TYPE . ": comment privacy is correct"
+ );
}
foreach my $rpc ($jsonrpc, $xmlrpc) {
- $rpc->bz_run_tests(tests => \@tests, method => 'Bug.create',
- post_success => \&post_success);
+ $rpc->bz_run_tests(
+ tests => \@tests,
+ method => 'Bug.create',
+ post_success => \&post_success
+ );
}