Files
Mozilla/mozilla/webtools/testopia/testopia/patch-3.2
ghendricks%novell.com a5daf1417b fixed patch failures
git-svn-id: svn://10.0.0.236/trunk@254592 18797224-902f-48f8-a5cc-f745e15eee43
2008-10-10 22:42:34 +00:00

328 lines
13 KiB
Groff

### Eclipse Workspace Patch 1.0
#P bmo-3.0.3-testopia-mysql
Index: Bugzilla/User.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/User.pm,v
retrieving revision 1.148.2.6
diff -u -r1.148.2.6 User.pm
--- Bugzilla/User.pm 28 Nov 2007 19:33:34 -0000 1.148.2.6
+++ Bugzilla/User.pm 29 Feb 2008 23:19:44 -0000
@@ -330,6 +330,16 @@
return $self->{queries_available};
}
+sub testopia_queries {
+ my $self = shift;
+ my $dbh = Bugzilla->dbh;
+ my $ref = $dbh->selectall_arrayref(
+ "SELECT name, query FROM test_named_queries
+ WHERE userid = ? AND isvisible = 1",
+ {'Slice' =>{}}, $self->id);
+ return $ref;
+}
+
sub settings {
my ($self) = @_;
@@ -627,7 +637,7 @@
my $class_restricted = Bugzilla->params->{'useclassification'} && $class_id;
if (!defined $self->{selectable_products}) {
- my $query = "SELECT id " .
+ my $query = "(SELECT id, name AS pname " .
" FROM products " .
"LEFT JOIN group_control_map " .
" ON group_control_map.product_id = products.id ";
@@ -637,10 +647,17 @@
$query .= " AND group_control_map.membercontrol = " . CONTROLMAPMANDATORY;
}
$query .= " AND group_id NOT IN(" . $self->groups_as_string . ") " .
- " WHERE group_id IS NULL " .
- "ORDER BY name";
+ " WHERE group_id IS NULL) " ;
+
- my $prod_ids = Bugzilla->dbh->selectcol_arrayref($query);
+ $query .= "UNION (SELECT id, tr_products.name AS pname FROM products AS tr_products ".
+ "INNER JOIN test_plans ON tr_products.id = test_plans.product_id ".
+ "INNER JOIN test_plan_permissions ON test_plan_permissions.plan_id = test_plans.plan_id ".
+ "WHERE test_plan_permissions.userid = ?)";
+
+ $query .= "ORDER BY pname ";
+
+ my $prod_ids = Bugzilla->dbh->selectcol_arrayref($query,undef,$self->id);
$self->{selectable_products} = Bugzilla::Product->new_from_list($prod_ids);
}
@@ -903,6 +920,33 @@
$group_delete->execute($id, $group, GRANT_REGEXP) if $present;
}
}
+ # Now do the same for Testopia test plans.
+ $sth = $dbh->prepare("SELECT test_plan_permissions_regexp.plan_id,
+ user_regexp, test_plan_permissions_regexp.permissions,
+ test_plan_permissions.plan_id
+ FROM test_plan_permissions_regexp
+ LEFT JOIN test_plan_permissions
+ ON test_plan_permissions_regexp.plan_id = test_plan_permissions.plan_id
+ AND test_plan_permissions.userid = ?
+ AND test_plan_permissions.grant_type = ?");
+
+ $sth->execute($id, GRANT_REGEXP);
+ my $plan_insert = $dbh->prepare(q{INSERT INTO test_plan_permissions
+ (userid, plan_id, permissions, grant_type)
+ VALUES (?, ?, ?, ?)});
+ my $plan_delete = $dbh->prepare(q{DELETE FROM test_plan_permissions
+ WHERE userid = ?
+ AND plan_id = ?
+ AND grant_type = ?});
+
+ while (my ($planid, $regexp, $perms, $present) = $sth->fetchrow_array()) {
+ if (($regexp ne '') && ($self->{login} =~ m/$regexp/i)) {
+ $plan_insert->execute($id, $planid, $perms, GRANT_REGEXP) unless $present;
+ } else {
+ $plan_delete->execute($id, $planid, GRANT_REGEXP) if $present;
+ }
+ }
+
}
sub product_responsibilities {
Index: Bugzilla/Error.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Error.pm,v
retrieving revision 1.19.2.3
diff -u -r1.19.2.3 Error.pm
--- Bugzilla/Error.pm 16 Aug 2007 20:37:43 -0000 1.19.2.3
+++ Bugzilla/Error.pm 29 Feb 2008 23:19:44 -0000
@@ -32,6 +32,7 @@
use Bugzilla::WebService::Constants;
use Bugzilla::Util;
use Date::Format;
+use JSON;
# We cannot use $^S to detect if we are in an eval(), because mod_perl
# already eval'uates everything, so $^S = 1 in all cases under mod_perl!
@@ -110,6 +111,16 @@
}
die SOAP::Fault->faultcode($code)->faultstring($message);
}
+ elsif (Bugzilla->error_mode == ERROR_MODE_AJAX) {
+ # JSON can't handle strings across lines.
+ $message =~ s/\n/ /gm;
+ my $err;
+ $err->{'success'} = JSON::false;
+ $err->{'error'} = $error;
+ $err->{'message'} = $message;
+ my $json = new JSON;
+ print $json->encode($err);
+ }
}
exit;
}
Index: Bugzilla/Constants.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Constants.pm,v
retrieving revision 1.68.2.11
diff -u -r1.68.2.11 Constants.pm
--- Bugzilla/Constants.pm 9 Jan 2008 07:16:16 -0000 1.68.2.11
+++ Bugzilla/Constants.pm 29 Feb 2008 23:19:44 -0000
@@ -126,6 +126,7 @@
ERROR_MODE_WEBPAGE
ERROR_MODE_DIE
ERROR_MODE_DIE_SOAP_FAULT
+ ERROR_MODE_AJAX
INSTALLATION_MODE_INTERACTIVE
INSTALLATION_MODE_NON_INTERACTIVE
@@ -351,6 +352,7 @@
use constant ERROR_MODE_WEBPAGE => 0;
use constant ERROR_MODE_DIE => 1;
use constant ERROR_MODE_DIE_SOAP_FAULT => 2;
+use constant ERROR_MODE_AJAX => 3;
# The various modes that checksetup.pl can run in.
use constant INSTALLATION_MODE_INTERACTIVE => 0;
Index: template/en/default/global/common-links.html.tmpl
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/template/en/default/global/common-links.html.tmpl,v
retrieving revision 1.7
diff -u -r1.7 common-links.html.tmpl
--- template/en/default/global/common-links.html.tmpl 28 Dec 2006 16:48:06 -0000 1.7
+++ template/en/default/global/common-links.html.tmpl 29 Feb 2008 23:19:45 -0000
@@ -103,3 +103,4 @@
[% END %]
[% END %]
</ul>
+[% Hook.process("links") %]
\ No newline at end of file
Index: Bugzilla/WebService/User.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/WebService/User.pm,v
retrieving revision 1.4.2.1
diff -u -r1.4.2.1 User.pm
--- Bugzilla/WebService/User.pm 18 Sep 2007 23:30:20 -0000 1.4.2.1
+++ Bugzilla/WebService/User.pm 24 Jun 2008 22:09:56 -0000
@@ -110,6 +110,32 @@
return { id => type('int')->value($user->id) };
}
+#################
+# User Lookup #
+#################
+
+sub lookup_login_by_id {
+ my $self = shift;
+ my ($author_id) = @_;
+
+ my $user = new Bugzilla::User($author_id);
+
+ my $result = defined $user ? $user->login : '';
+
+ # Result is user login string or empty string if failed
+ return $result;
+}
+
+sub lookup_id_by_login {
+ my $self = shift;
+ my ($author) = @_;
+
+ my $result = Bugzilla::User::login_to_id($author);
+
+ # Result is user id or 0 if failed
+ return $result;
+}
+
1;
__END__
Index: Bugzilla/Install/Filesystem.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Install/Filesystem.pm,v
retrieving revision 1.29.2.1
diff -u -r1.29.2.1 Filesystem.pm
--- Bugzilla/Install/Filesystem.pm 13 Jun 2008 20:58:47 -0000 1.29.2.1
+++ Bugzilla/Install/Filesystem.pm 10 Oct 2008 22:10:13 -0000
@@ -111,6 +111,8 @@
'runtests.pl' => { perms => $owner_executable },
'testserver.pl' => { perms => $ws_executable },
'whine.pl' => { perms => $ws_executable },
+ 'tr_csv2xml.pl' => { perms => $ws_executable },
+ 'tr_importxml.pl' => { perms => $ws_executable },
'customfield.pl' => { perms => $owner_executable },
'email_in.pl' => { perms => $ws_executable },
'sanitycheck.pl' => { perms => $ws_executable },
@@ -157,6 +159,8 @@
dirs => $ws_dir_readable },
$extlib => { files => $ws_readable,
dirs => $ws_dir_readable },
+ "$libdir/testopia" => { files => $ws_readable,
+ dirs => $ws_dir_readable },
$templatedir => { files => $ws_readable,
dirs => $ws_dir_readable },
$extensionsdir => { files => $ws_readable,
@@ -171,6 +175,8 @@
dirs => $ws_dir_readable },
t => { files => $owner_readable,
dirs => $owner_dir_readable },
+ 'testopia/t' => { files => $owner_readable,
+ dirs => $owner_dir_readable },
'docs/*/html' => { files => $ws_readable,
dirs => $ws_dir_readable },
'docs/*/pdf' => { files => $ws_readable,
qIndex: Bugzilla/DB/Mysql.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/DB/Mysql.pm,v
retrieving revision 1.49
diff -u -r1.49 Mysql.pm
--- Bugzilla/DB/Mysql.pm 4 Feb 2007 16:59:30 -0000 1.49
+++ Bugzilla/DB/Mysql.pm 29 Feb 2008 23:19:44 -0000
@@ -613,6 +613,9 @@
if ($table eq 'bugs' && $name eq 'short_desc') {
$self->bz_drop_index('bugs', 'bugs_short_desc_idx');
}
+ if ($table eq 'test_runs' && $name eq 'summary') {
+ $self->bz_drop_index('test_runs', 'test_runs_summary_idx');
+ }
print "Converting $table.$name to be stored as UTF-8...\n";
my $col_info =
Index: Bugzilla/Bug.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Bug.pm,v
retrieving revision 1.171.2.2
diff -u -r1.171.2.2 Bug.pm
--- Bugzilla/Bug.pm 17 Oct 2007 22:50:22 -0000 1.171.2.2
+++ Bugzilla/Bug.pm 27 Mar 2008 22:03:25 -0000
@@ -1314,6 +1314,14 @@
"SELECT bug_id FROM bugs WHERE alias = ?", undef, $alias);
}
+sub get_test_case_count {
+ my $self = shift;
+ my $dbh = Bugzilla->dbh;
+ my $row_count = $dbh->selectall_arrayref(
+ "SELECT DISTINCT case_id FROM test_case_bugs WHERE bug_id = ?",
+ undef, $self->bug_id);
+ return scalar @$row_count;
+}
#####################################################################
# Subroutines
#####################################################################
Index: Bugzilla/Install.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Install.pm,v
retrieving revision 1.17
diff -u -r1.17 Install.pm
--- Bugzilla/Install.pm 28 Nov 2007 16:35:57 -0000 1.17
+++ Bugzilla/Install.pm 10 Oct 2008 22:13:40 -0000
@@ -60,6 +60,8 @@
# 2006-12-10 LpSolit@gmail.com -- Bug 297186
lang => { subclass => 'Lang',
default => ${Bugzilla->languages}[0] },
+ view_testopia => { options => ['on', 'off'],
+ default => 'on' },
# 2007-07-02 altlist@gmail.com -- Bug 225731
quote_replies => { options => ['quoted_reply', 'simple_reply', 'off'],
default => "quoted_reply" }
Index: template/en/default/global/setting-descs.none.tmpl
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/template/en/default/global/setting-descs.none.tmpl,v
retrieving revision 1.11.2.1
diff -u -r1.11.2.1 setting-descs.none.tmpl
--- template/en/default/global/setting-descs.none.tmpl 20 Jul 2007 12:12:55 -0000 1.11.2.1
+++ template/en/default/global/setting-descs.none.tmpl 10 Sep 2008 20:18:18 -0000
@@ -41,5 +41,6 @@
"never" => "Never",
"cc_unless_role" => "Only if I have no role on them",
"lang" => "Language used in email",
+ "view_testopia" => "View the Testopia links",
}
%]
Index: Bugzilla/DB/Schema.pm
===================================================================
RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/DB/Schema.pm,v
retrieving revision 1.99
diff -u -r1.99 Schema.pm
--- Bugzilla/DB/Schema.pm 7 May 2008 21:08:48 -0000 1.99
+++ Bugzilla/DB/Schema.pm 19 Sep 2008 22:14:29 -0000
@@ -1544,6 +1544,18 @@
my ($self, $table, $column, $references) = @_;
my $to_table = $references->{TABLE};
my $to_column = $references->{COLUMN};
+
+ ### Testopia Patch ###
+ # Some table names are too long for foreign keys. Shorten them
+ $table =~ s/^test_case_run/tcr/;
+ $to_table =~ s/^test_case_run/tcr/;
+ $table =~ s/^test_email.*/ter/;
+ $table =~ s/^test_environment/te/;
+ $to_table =~ s/^test_environment/te/;
+ $table =~ s/^test_/t/;
+ $to_table =~ s/^test_/t/;
+ ### END PATCH ###
+
return "fk_${table}_${column}_${to_table}_${to_column}";
}