RT 4.2.11, ticket#13852
[freeside.git] / rt / t / crypt / no-signer-address.t
diff --git a/rt/t/crypt/no-signer-address.t b/rt/t/crypt/no-signer-address.t
new file mode 100644 (file)
index 0000000..31ba5eb
--- /dev/null
@@ -0,0 +1,42 @@
+use strict;
+use warnings;
+
+use RT::Test::GnuPG
+  tests         => undef,
+  gnupg_options => {
+    passphrase    => 'rt-test',
+    'trust-model' => 'always',
+  }
+;
+
+my $queue;
+{
+    $queue = RT::Test->load_or_create_queue(
+        Name => 'Regression',
+        SignAuto => 1,
+    );
+    ok $queue && $queue->id, 'loaded or created queue';
+    ok !$queue->CorrespondAddress, 'address not set';
+}
+
+# We don't use Test::Warn here, because it apparently only captures up
+# to the first newline -- and the meat of this message is on the fourth
+# line.
+my @warnings;
+local $SIG{__WARN__} = sub {
+    push @warnings, "@_";
+};
+
+my $ticket = RT::Ticket->new( RT->SystemUser );
+my ($status, undef, $msg) = $ticket->Create(
+    Queue => $queue->id,
+    Subject => 'test',
+    Requestor => 'root@localhost',
+);
+ok( $status, "created ticket" ) or diag "error: $msg";
+
+is( scalar @warnings, 1, "Got a warning" );
+like( $warnings[0], qr{signing failed: secret key not available},
+    "Found warning of no secret key");
+
+done_testing;