diff options
author | David Lawrence <dkl@mozilla.com> | 2015-06-25 05:35:16 +0200 |
---|---|---|
committer | David Lawrence <dkl@mozilla.com> | 2015-06-25 05:35:16 +0200 |
commit | a6238e079b4e8e62d3e23f019e0895c626133c83 (patch) | |
tree | 5c840202b0e02237a9a6b6acfdd613d78d38624a /qa/extensions/QA/Extension.pm | |
parent | 28f425dac57db417b2a701fa99ef4ad73da0a729 (diff) | |
download | bugzilla-a6238e079b4e8e62d3e23f019e0895c626133c83.tar.gz bugzilla-a6238e079b4e8e62d3e23f019e0895c626133c83.tar.xz |
Bug 1144485: Adapt upstream Selenium test suite to BMO
Diffstat (limited to 'qa/extensions/QA/Extension.pm')
-rw-r--r-- | qa/extensions/QA/Extension.pm | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/qa/extensions/QA/Extension.pm b/qa/extensions/QA/Extension.pm new file mode 100644 index 000000000..b5f404d74 --- /dev/null +++ b/qa/extensions/QA/Extension.pm @@ -0,0 +1,71 @@ +# 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. + +package Bugzilla::Extension::QA; + +use strict; +use base qw(Bugzilla::Extension); + +use Bugzilla::Extension::QA::Util; +use Bugzilla::Constants; +use Bugzilla::Error; +use Bugzilla::Util; +use Bugzilla::Bug; +use Bugzilla::User; + +our $VERSION = '1.0'; + +sub page_before_template { + my ($self, $args) = @_; + return if $args->{page_id} ne 'qa/email_in.html'; + + my $template = Bugzilla->template; + my $cgi = Bugzilla->cgi; + print $cgi->header; + + # Needed to make sure he can access and edit bugs. + my $user = Bugzilla::User->check($cgi->param('sender')); + Bugzilla->set_user($user); + + my ($output, $tmpl_file); + my $action = $cgi->param('action') || ''; + my $vars = { sender => $user, action => $action, pid => $$ }; + + if ($action eq 'create') { + $tmpl_file = 'qa/create_bug.txt.tmpl'; + } + elsif ($action eq 'create_with_headers') { + $tmpl_file = 'qa/create_bug_with_headers.txt.tmpl'; + } + elsif ($action =~ /^update(_with_headers)?$/) { + my $f = $1 || ''; + $tmpl_file = "qa/update_bug$f.txt.tmpl"; + my $bug = Bugzilla::Bug->check($cgi->param('bug_id')); + $vars->{bug_id} = $bug->id; + } + else { + ThrowUserError('unknown_action', { action => $action }); + } + + $template->process($tmpl_file, $vars, \$output) + or ThrowTemplateError($template->error()); + + my $file = "/tmp/email_in_$$.txt"; + open(FH, '>', $file); + print FH $output; + close FH; + + $output = `email_in.pl -v < $file 2>&1`; + unlink $file; + + parse_output($output, $vars); + + $template->process('qa/results.html.tmpl', $vars) + or ThrowTemplateError($template->error()); +} + +__PACKAGE__->NAME; |