summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Test
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2018-10-14 18:19:50 +0200
committerDylan William Hardison <dylan@hardison.net>2018-10-14 18:19:50 +0200
commitce00a61057535d49aa0e83181a1d317d7842571b (patch)
tree280243de9ff791449fb2c82f3f0f2b9bd931d5b2 /Bugzilla/Test
parent6367a26da4093a8379e370ef328e9507c98b2e7e (diff)
parent6657fa9f5210d5b5a9b14c0cba6882bd56232054 (diff)
downloadbugzilla-ce00a61057535d49aa0e83181a1d317d7842571b.tar.gz
bugzilla-ce00a61057535d49aa0e83181a1d317d7842571b.tar.xz
Merge remote-tracking branch 'bmo/master'
Diffstat (limited to 'Bugzilla/Test')
-rw-r--r--Bugzilla/Test/Util.pm39
1 files changed, 38 insertions, 1 deletions
diff --git a/Bugzilla/Test/Util.pm b/Bugzilla/Test/Util.pm
index 02c842658..9fbc151f7 100644
--- a/Bugzilla/Test/Util.pm
+++ b/Bugzilla/Test/Util.pm
@@ -12,9 +12,12 @@ use strict;
use warnings;
use base qw(Exporter);
-our @EXPORT = qw(create_user);
+our @EXPORT = qw(create_user issue_api_key mock_useragent_tx);
use Bugzilla::User;
+use Bugzilla::User::APIKey;
+use Mojo::Message::Response;
+use Test2::Tools::Mock qw(mock);
sub create_user {
my ($login, $password, %extra) = @_;
@@ -29,4 +32,38 @@ sub create_user {
});
}
+sub issue_api_key {
+ my ($login, $given_api_key) = @_;
+ my $user = Bugzilla::User->check({ name => $login });
+
+ my $params = {
+ user_id => $user->id,
+ description => 'Bugzilla::Test::Util::issue_api_key',
+ api_key => $given_api_key,
+ };
+
+ if ($given_api_key) {
+ return Bugzilla::User::APIKey->create_special($params);
+ } else {
+ return Bugzilla::User::APIKey->create($params);
+ }
+}
+
+sub _json_content_type { $_->headers->content_type('application/json') }
+
+sub mock_useragent_tx {
+ my ($body, $modify) = @_;
+ $modify //= \&_json_content_type;
+
+ my $res = Mojo::Message::Response->new;
+ $res->code(200);
+ $res->body($body);
+ if ($modify) {
+ local $_ = $res;
+ $modify->($res);
+ }
+
+ return mock({result => $res});
+}
+
1;