[Rt-commit] r10928 - in rt/branches/3.7-EXPERIMENTAL: . etc html/Ticket/Elements lib/RT t/mail t/ticket t/web
ruz at bestpractical.com
ruz at bestpractical.com
Mon Feb 25 15:24:22 EST 2008
Author: ruz
Date: Mon Feb 25 15:24:13 2008
New Revision: 10928
Added:
rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_links.t
Modified:
rt/branches/3.7-EXPERIMENTAL/ (props changed)
rt/branches/3.7-EXPERIMENTAL/configure.ac
rt/branches/3.7-EXPERIMENTAL/etc/RT_Config.pm.in
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageHeaders
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransaction
rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransactionAttachments
rt/branches/3.7-EXPERIMENTAL/lib/RT/Crypt/GnuPG.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/GroupMember_Overlay.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Group_Overlay.pm
rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm
rt/branches/3.7-EXPERIMENTAL/releng.cnf
rt/branches/3.7-EXPERIMENTAL/t/mail/crypt-gnupg.t
rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_watcher.t
rt/branches/3.7-EXPERIMENTAL/t/web/compilation_errors.t
Log:
merge 3.7-RTIR-RELENG -> 3.7-EXPERIMENTAL
r10762 at localhost (orig r10728): ruz | 2008-02-05 23:14:39 +0300
* turn off gnupg wornings and show log if something went wrong
r10763 at localhost (orig r10729): ruz | 2008-02-05 23:19:59 +0300
* use new test method instead old style things
r10764 at localhost (orig r10730): ruz | 2008-02-06 00:15:11 +0300
* add t/ticket/search_by_links.t
r10765 at localhost (orig r10731): ruz | 2008-02-06 00:20:45 +0300
* fix searches by link
* replace queries with more robust variants when search uses OR
r10784 at localhost (orig r10750): ruz | 2008-02-07 04:42:14 +0300
* add complex tests to t/ticket/search_by_links.t
r10814 at localhost (orig r10780): ruz | 2008-02-09 07:45:53 +0300
* delete unused variables
r10828 at localhost (orig r10794): ruz | 2008-02-10 19:58:38 +0300
* we should use 7bit encodings when send signed only content
r10873 at localhost (orig r10836): ruz | 2008-02-14 15:25:00 +0300
r10830 at localhost: cubic | 2008-02-12 04:02:50 +0300
* add config option that allow users to see BCC header in the UI
r10874 at localhost (orig r10837): ruz | 2008-02-14 15:25:17 +0300
r10872 at localhost: cubic | 2008-02-14 15:19:13 +0300
* rollback transactions on errors
r10875 at localhost (orig r10838): ruz | 2008-02-14 15:31:40 +0300
* bump version
r10876 at localhost (orig r10839): ruz | 2008-02-14 17:06:21 +0300
* fix a regression in t/ticket/link_search.t
r10877 at localhost (orig r10840): ruz | 2008-02-14 17:07:37 +0300
* fix number of tests
r10878 at localhost (orig r10841): ruz | 2008-02-14 18:00:12 +0300
* error handle is not always filled
Modified: rt/branches/3.7-EXPERIMENTAL/configure.ac
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/configure.ac (original)
+++ rt/branches/3.7-EXPERIMENTAL/configure.ac Mon Feb 25 15:24:13 2008
@@ -7,7 +7,7 @@
dnl Setup autoconf
AC_PREREQ(2.53)
-AC_INIT(RT, [3.7.22], [rt-bugs at bestpractical.com])
+AC_INIT(RT, [3.7.23], [rt-bugs at bestpractical.com])
AC_CONFIG_SRCDIR([lib/RT.pm.in])
dnl Extract RT version number components
Modified: rt/branches/3.7-EXPERIMENTAL/etc/RT_Config.pm.in
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/etc/RT_Config.pm.in (original)
+++ rt/branches/3.7-EXPERIMENTAL/etc/RT_Config.pm.in Mon Feb 25 15:24:13 2008
@@ -235,7 +235,6 @@
# @MailParams defines a list of options passed to $MailCommand if it
# is not 'sendmailpipe', 'sendmail', or 'smtp'
Set(@MailParams, ());
-# }}}
# RT is designed such that any mail which already has a ticket-id associated
# with it will get to the right place automatically.
@@ -293,11 +292,15 @@
# By default, RT forwards a message using queue's address and adds RT's tag into
# subject of the outgoing message, so recipients' replies go into RT as correspondents.
-# To change this behavior, set $ForwardFromUser to 0 and RT will use address of the
-# current user and leave subject without RT's tag.
+# To change this behavior, set $ForwardFromUser to true value and RT will use
+# address of the current user and leave subject without RT's tag.
Set($ForwardFromUser, 0);
+# By default RT hides from the web UI information about blind copies user sent on
+# reply or comment, to change this set the following option to true value
+Set($ShowBccHeader, 0);
+
# }}}
# {{{ GnuPG
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageHeaders
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageHeaders (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowMessageHeaders Mon Feb 25 15:24:13 2008
@@ -55,7 +55,7 @@
</table>
<%INIT>
my @headers;
-foreach my $field( $Message->SplitHeaders ) {
+foreach my $field( RT->Config->Get('ShowBccHeader')? $Message->_SplitHeaders : $Message->SplitHeaders ) {
my ($tag, $value) = split /:/, $field, 2;
next unless $tag && $value;
push @headers, { Tag => $tag, Value => $value };
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransaction
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransaction (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransaction Mon Feb 25 15:24:13 2008
@@ -158,10 +158,7 @@
}
my $titlebar_commands = ' ';
-my @DisplayHeaders=qw ( _all);
-
if ( $type =~ /EmailRecord$/ ) {
- @DisplayHeaders = qw(To Cc Bcc);
$titlebar_commands .=
"[<a target=\"_blank\" href=\"$EmailRecordPath?id="
@@ -178,10 +175,6 @@
# If the transaction has anything attached to it at all
else {
- unless ( $ShowHeaders ) {
- @DisplayHeaders = qw(To From RT-Send-Cc Cc Bcc Date Subject);
- }
-
if ( $Attachments->[0] && $ShowTitleBarCommands ) {
my $ticket = $Transaction->TicketObj;
my $can_modify = $ticket->CurrentUserHasRight('ModifyTicket');
Modified: rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransactionAttachments
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransactionAttachments (original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Ticket/Elements/ShowTransactionAttachments Mon Feb 25 15:24:13 2008
@@ -183,6 +183,7 @@
# If the transaction has anything attached to it at all
elsif (!$ShowHeaders) {
@DisplayHeaders = qw(To From RT-Send-Cc Cc Bcc Date Subject);
+ push @DisplayHeaders, 'RT-Send-Bcc' if RT->Config->Get('ShowBccHeader');
}
my $size_to_str = sub {
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Crypt/GnuPG.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Crypt/GnuPG.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Crypt/GnuPG.pm Mon Feb 25 15:24:13 2008
@@ -478,7 +478,14 @@
my %res;
if ( $args{'Sign'} && !$args{'Encrypt'} ) {
# required by RFC3156(Ch. 5) and RFC1847(Ch. 2.1)
- $entity->head->mime_attr('Content-Transfer-Encoding' => 'quoted-printable');
+ foreach ( grep !$_->is_multipart, $entity->parts_DFS ) {
+ my $tenc = $_->head->mime_encoding;
+ unless ( $tenc =~ m/^(?:7bit|quoted-printable|base64)$/i ) {
+ $_->head->mime_attr( 'Content-Transfer-Encoding'
+ => $_->effective_type =~ m{^text/}? 'quoted-printable': 'base64'
+ );
+ }
+ }
my %handle;
my $handles = GnuPG::Handles->new(
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/GroupMember_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/GroupMember_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/GroupMember_Overlay.pm Mon Feb 25 15:24:13 2008
@@ -133,10 +133,12 @@
my $member_object = $args{'Member'}->Object;
if ($member_object->HasMemberRecursively($args{'Group'})) {
$RT::Logger->debug("Adding that group would create a loop");
+ $RT::Handle->Rollback() unless ($args{'InsideTransaction'});
return(undef);
}
elsif ( $args{'Member'}->Id == $args{'Group'}->Id) {
$RT::Logger->debug("Can't add a group to itself");
+ $RT::Handle->Rollback() unless ($args{'InsideTransaction'});
return(undef);
}
}
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Group_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Group_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Group_Overlay.pm Mon Feb 25 15:24:13 2008
@@ -425,6 +425,7 @@
);
my $id = $self->Id;
unless ($id) {
+ $RT::Handle->Rollback() unless ($args{'InsideTransaction'});
return ( 0, $self->loc('Could not create group') );
}
Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm (original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Tickets_Overlay.pm Mon Feb 25 15:24:13 2008
@@ -338,6 +338,13 @@
my $meta = $FIELD_METADATA{$field};
die "Invalid Operator $op for $field" unless $op =~ /^(=|!=|IS|IS NOT)$/io;
+ my $is_negative = 0;
+ if ( $op eq '!=' || $op =~ /\bNOT\b/i ) {
+ $is_negative = 1;
+ }
+ my $is_null = 0;
+ $is_null = 1 if !$value || $value =~ /^null$/io;
+
my $direction = $meta->[1] || '';
my ($matchfield, $linkfield) = ('', '');
if ( $direction eq 'To' ) {
@@ -348,11 +355,19 @@
}
elsif ( $direction ) {
die "Invalid link direction '$direction' for $field\n";
+ } else {
+ $sb->_OpenParen;
+ $sb->_LinkLimit( 'LinkedTo', $op, $value, @rest );
+ $sb->_LinkLimit(
+ 'LinkedFrom', $op, $value, @rest,
+ ENTRYAGGREGATOR => (($is_negative && $is_null) || (!$is_null && !$is_negative))? 'OR': 'AND',
+ );
+ $sb->_CloseParen;
+ return;
}
- my ($is_local, $is_null) = (1, 0);
- if ( !$value || $value =~ /^null$/io ) {
- $is_null = 1;
+ my $is_local = 1;
+ if ( $is_null ) {
$op = ($op =~ /^(=|IS)$/)? 'IS': 'IS NOT';
}
elsif ( $value =~ /\D/ ) {
@@ -360,12 +375,6 @@
}
$matchfield = "Local$matchfield" if $is_local;
- my $is_negative = 0;
- if ( $op eq '!=' ) {
- $is_negative = 1;
- $op = '=';
- }
-
#For doing a left join to find "unlinked tickets" we want to generate a query that looks like this
# SELECT main.* FROM Tickets main
# LEFT JOIN Links Links_1 ON ( (Links_1.Type = 'MemberOf')
@@ -395,7 +404,7 @@
QUOTEVALUE => 0,
);
}
- elsif ( $is_negative ) {
+ else {
my $linkalias = $sb->Join(
TYPE => 'LEFT',
ALIAS1 => 'main',
@@ -412,83 +421,18 @@
$sb->SUPER::Limit(
LEFTJOIN => $linkalias,
FIELD => $matchfield,
- OPERATOR => $op,
+ OPERATOR => '=',
VALUE => $value,
);
$sb->_SQLLimit(
@rest,
ALIAS => $linkalias,
FIELD => $matchfield,
- OPERATOR => 'IS',
+ OPERATOR => $is_negative? 'IS': 'IS NOT',
VALUE => 'NULL',
QUOTEVALUE => 0,
);
}
- else {
- my $linkalias = $sb->NewAlias('Links');
- $sb->_OpenParen;
-
- $sb->_SQLLimit(
- @rest,
- ALIAS => $linkalias,
- FIELD => 'Type',
- OPERATOR => '=',
- VALUE => $meta->[2],
- ) if $meta->[2];
-
- $sb->_OpenParen;
- if ( $direction ) {
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => 'Local' . $linkfield,
- OPERATOR => '=',
- VALUE => 'main.id',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
- );
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => $matchfield,
- OPERATOR => '=',
- VALUE => $value,
- ENTRYAGGREGATOR => 'AND',
- );
- } else {
- $sb->_OpenParen;
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => 'LocalBase',
- VALUE => 'main.id',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
- );
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => $matchfield .'Target',
- VALUE => $value,
- ENTRYAGGREGATOR => 'AND',
- );
- $sb->_CloseParen;
-
- $sb->_OpenParen;
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => 'LocalTarget',
- VALUE => 'main.id',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'OR',
- );
- $sb->_SQLLimit(
- ALIAS => $linkalias,
- FIELD => $matchfield .'Base',
- VALUE => $value,
- ENTRYAGGREGATOR => 'AND',
- );
- $sb->_CloseParen;
- }
- $sb->_CloseParen;
- $sb->_CloseParen;
- }
}
=head2 _DateLimit
Modified: rt/branches/3.7-EXPERIMENTAL/releng.cnf
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/releng.cnf (original)
+++ rt/branches/3.7-EXPERIMENTAL/releng.cnf Mon Feb 25 15:24:13 2008
@@ -1,5 +1,5 @@
PRODUCT = rt
-TAG = 3.7.22
+TAG = 3.7.23
CANONICAL_REPO = svn+ssh://svn.bestpractical.com/svn/bps-public/rt/
TAGS = tags/
TRUNK = branches/3.7-EXPERIMENTAL
Modified: rt/branches/3.7-EXPERIMENTAL/t/mail/crypt-gnupg.t
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/t/mail/crypt-gnupg.t (original)
+++ rt/branches/3.7-EXPERIMENTAL/t/mail/crypt-gnupg.t Mon Feb 25 15:24:13 2008
@@ -5,12 +5,11 @@
use Test::More;
eval 'use GnuPG::Interface; 1' or plan skip_all => 'GnuPG required.';
-plan tests => 94;
+plan tests => 92;
use RT::Test nodata => 1;
RT->Config->Set( LogToScreen => 'debug' );
RT->Config->Set( LogStackTraces => 'error' );
-use Data::Dumper;
use File::Spec ();
use Cwd;
@@ -25,7 +24,9 @@
OutgoingMessagesFormat => 'RFC' );
RT->Config->Set( 'GnuPGOptions',
- homedir => $homedir );
+ homedir => $homedir,
+ 'no-permission-warning' => undef,
+);
diag 'only signing. correct passphrase' if $ENV{'TEST_VERBOSE'};
@@ -37,7 +38,7 @@
);
my %res = RT::Crypt::GnuPG::SignEncrypt( Entity => $entity, Encrypt => 0, Passphrase => 'test' );
ok( $entity, 'signed entity');
- ok( !$res{'logger'}, "log is here as well" );
+ ok( !$res{'logger'}, "log is here as well" ) or diag $res{'logger'};
my @status = RT::Crypt::GnuPG::ParseStatus( $res{'status'} );
is( scalar @status, 2, 'two records: passphrase, signing');
is( $status[0]->{'Operation'}, 'PassphraseCheck', 'operation is correct');
@@ -73,8 +74,7 @@
);
my %res = RT::Crypt::GnuPG::SignEncrypt( Entity => $entity, Encrypt => 0, Passphrase => '' );
ok( $res{'exit_code'}, "couldn't sign without passphrase");
- ok( $res{'error'}, "error is here" );
- ok( $res{'logger'}, "log is here as well" );
+ ok( $res{'error'} || $res{'logger'}, "error is here" );
my @status = RT::Crypt::GnuPG::ParseStatus( $res{'status'} );
is( scalar @status, 1, 'one record');
@@ -91,8 +91,7 @@
);
my %res = RT::Crypt::GnuPG::SignEncrypt( Entity => $entity, Encrypt => 0, Passphrase => 'wrong' );
ok( $res{'exit_code'}, "couldn't sign with bad passphrase");
- ok( $res{'error'}, "error is here" );
- ok( $res{'logger'}, "log is here as well" );
+ ok( $res{'error'} || $res{'logger'}, "error is here" );
my @status = RT::Crypt::GnuPG::ParseStatus( $res{'status'} );
is( scalar @status, 1, 'one record');
Added: rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_links.t
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_links.t Mon Feb 25 15:24:13 2008
@@ -0,0 +1,133 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+
+use Test::More tests => 80;
+use RT::Test;
+use RT::Ticket;
+
+my $q = RT::Test->load_or_create_queue( Name => 'Regression' );
+ok $q && $q->id, 'loaded or created queue';
+
+my ($total, @data, @tickets, %test) = (0, ());
+
+sub add_tix_from_data {
+ my @res = ();
+ while (@data) {
+ my $t = RT::Ticket->new($RT::SystemUser);
+ my %args = %{ shift(@data) };
+ $args{$_} = $res[ $args{$_} ]->id foreach grep $args{$_}, keys %RT::Ticket::LINKTYPEMAP;
+ my ( $id, undef $msg ) = $t->Create(
+ Queue => $q->id,
+ %args,
+ );
+ ok( $id, "ticket created" ) or diag("error: $msg");
+ push @res, $t;
+ $total++;
+ }
+ return @res;
+}
+
+sub run_tests {
+ my $query_prefix = join ' OR ', map 'id = '. $_->id, @tickets;
+ foreach my $key ( sort keys %test ) {
+ my $tix = RT::Tickets->new($RT::SystemUser);
+ $tix->FromSQL( "( $query_prefix ) AND ( $key )" );
+
+ my $error = 0;
+
+ my $count = 0;
+ $count++ foreach grep $_, values %{ $test{$key} };
+ is($tix->Count, $count, "found correct number of ticket(s) by '$key'") or $error = 1;
+
+ my $good_tickets = 1;
+ while ( my $ticket = $tix->Next ) {
+ next if $test{$key}->{ $ticket->Subject };
+ diag $ticket->Subject ." ticket has been found when it's not expected";
+ $good_tickets = 0;
+ }
+ ok( $good_tickets, "all tickets are good with '$key'" ) or $error = 1;
+
+ diag "Wrong SQL query for '$key':". $tix->BuildSelectQuery if $error;
+ }
+}
+
+# simple set with "no links", "parent and child"
+ at data = (
+ { Subject => '-', },
+ { Subject => 'p', },
+ { Subject => 'c', MemberOf => -1 },
+);
+ at tickets = add_tix_from_data();
+%test = (
+ 'Linked IS NOT NULL' => { '-' => 0, c => 1, p => 1 },
+ 'Linked IS NULL' => { '-' => 1, c => 0, p => 0 },
+ 'LinkedTo IS NOT NULL' => { '-' => 0, c => 1, p => 0 },
+ 'LinkedTo IS NULL' => { '-' => 1, c => 0, p => 1 },
+ 'LinkedFrom IS NOT NULL' => { '-' => 0, c => 0, p => 1 },
+ 'LinkedFrom IS NULL' => { '-' => 1, c => 1, p => 0 },
+
+ 'HasMember IS NOT NULL' => { '-' => 0, c => 0, p => 1 },
+ 'HasMember IS NULL' => { '-' => 1, c => 1, p => 0 },
+ 'MemberOf IS NOT NULL' => { '-' => 0, c => 1, p => 0 },
+ 'MemberOf IS NULL' => { '-' => 1, c => 0, p => 1 },
+
+ 'RefersTo IS NOT NULL' => { '-' => 0, c => 0, p => 0 },
+ 'RefersTo IS NULL' => { '-' => 1, c => 1, p => 1 },
+
+ 'Linked = '. $tickets[0]->id => { '-' => 0, c => 0, p => 0 },
+ 'Linked != '. $tickets[0]->id => { '-' => 1, c => 1, p => 1 },
+
+ 'MemberOf = '. $tickets[1]->id => { '-' => 0, c => 1, p => 0 },
+ 'MemberOf != '. $tickets[1]->id => { '-' => 1, c => 0, p => 1 },
+);
+{
+ my $tix = RT::Tickets->new($RT::SystemUser);
+ $tix->FromSQL("Queue = '". $q->id ."'");
+ is($tix->Count, $total, "found $total tickets");
+}
+run_tests();
+
+# another set with tests of combinations searches
+ at data = (
+ { Subject => '-', },
+ { Subject => 'p', },
+ { Subject => 'rp', RefersTo => -1 },
+ { Subject => 'c', MemberOf => -2 },
+ { Subject => 'rc1', RefersTo => -1 },
+ { Subject => 'rc2', RefersTo => -2 },
+);
+ at tickets = add_tix_from_data();
+my $pid = $tickets[1]->id;
+%test = (
+ 'RefersTo IS NOT NULL' => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+ 'RefersTo IS NULL' => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+
+ 'RefersTo IS NOT NULL AND MemberOf IS NOT NULL' => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+ 'RefersTo IS NOT NULL AND MemberOf IS NULL' => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+ 'RefersTo IS NULL AND MemberOf IS NOT NULL' => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+ 'RefersTo IS NULL AND MemberOf IS NULL' => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+
+ 'RefersTo IS NOT NULL OR MemberOf IS NOT NULL' => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 1, rc2 => 1 },
+ 'RefersTo IS NOT NULL OR MemberOf IS NULL' => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+ 'RefersTo IS NULL OR MemberOf IS NOT NULL' => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 0, rc2 => 0 },
+ 'RefersTo IS NULL OR MemberOf IS NULL' => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+
+ "RefersTo = $pid AND MemberOf = $pid" => { '-' => 0, c => 0, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+ "RefersTo = $pid AND MemberOf != $pid" => { '-' => 0, c => 0, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
+ "RefersTo != $pid AND MemberOf = $pid" => { '-' => 0, c => 1, p => 0, rp => 0, rc1 => 0, rc2 => 0 },
+ "RefersTo != $pid AND MemberOf != $pid" => { '-' => 1, c => 0, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
+
+ "RefersTo = $pid OR MemberOf = $pid" => { '-' => 0, c => 1, p => 0, rp => 1, rc1 => 0, rc2 => 0 },
+ "RefersTo = $pid OR MemberOf != $pid" => { '-' => 1, c => 0, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+ "RefersTo != $pid OR MemberOf = $pid" => { '-' => 1, c => 1, p => 1, rp => 0, rc1 => 1, rc2 => 1 },
+ "RefersTo != $pid OR MemberOf != $pid" => { '-' => 1, c => 1, p => 1, rp => 1, rc1 => 1, rc2 => 1 },
+);
+{
+ my $tix = RT::Tickets->new($RT::SystemUser);
+ $tix->FromSQL("Queue = '". $q->id ."'");
+ is($tix->Count, $total, "found $total tickets");
+}
+run_tests();
+
Modified: rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_watcher.t
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_watcher.t (original)
+++ rt/branches/3.7-EXPERIMENTAL/t/ticket/search_by_watcher.t Mon Feb 25 15:24:13 2008
@@ -3,13 +3,13 @@
use strict;
use warnings;
-use Test::More tests => 78;
+use Test::More tests => 79;
use RT::Test;
use RT::Ticket;
-my $q = RT::Queue->new( $RT::SystemUser );
-my $queue = 'SearchTests-'. rand(200);
-$q->Create( Name => $queue );
+my $q = RT::Test->load_or_create_queue( Name => 'Regression' );
+ok $q && $q->id, 'loaded or created queue';
+my $queue = $q->Name;
my ($total, @data, @tickets, %test) = (0, ());
Modified: rt/branches/3.7-EXPERIMENTAL/t/web/compilation_errors.t
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/t/web/compilation_errors.t (original)
+++ rt/branches/3.7-EXPERIMENTAL/t/web/compilation_errors.t Mon Feb 25 15:24:13 2008
@@ -2,7 +2,7 @@
use strict;
use Test::More;
-plan tests => 391;
+plan tests => 395;
use HTTP::Request::Common;
use HTTP::Cookies;
use LWP;
More information about the Rt-commit
mailing list