first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / offline.t
diff --git a/rt/t/web/offline.t b/rt/t/web/offline.t
new file mode 100644 (file)
index 0000000..b3762fc
--- /dev/null
@@ -0,0 +1,78 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+use RT::Test tests => 20;
+
+my ( $url, $m ) = RT::Test->started_ok;
+ok( $m->login, 'logged in' );
+
+{
+    my $template = <<EOF;
+===Create-Ticket: ticket1
+Queue: General
+Subject: test
+Status: new
+EOF
+    my $ticket = create_ticket_offline( $m, $template );
+    ok $ticket->id, 'created a ticket with offline tool';
+    is $ticket->QueueObj->Name, 'General', 'correct value';
+    is $ticket->Subject, 'test', 'correct value';
+    is $ticket->Status, 'new', 'correct value';
+}
+
+{
+    my $template = <<'EOF';
+===Create-Ticket: ticket1
+Queue: General
+Subject: test
+Status: new
+Requestor: test@example.com
+EOF
+    my $ticket = create_ticket_offline( $m, $template );
+    ok $ticket->id, 'created a ticket with offline tool';
+    is $ticket->RequestorAddresses, 'test@example.com', 'correct value';
+}
+
+{
+    my $group = RT::Group->new(RT->SystemUser);
+    my ($id, $msg) = $group->CreateUserDefinedGroup( Name => 'test' );
+    ok $id, "created a user defined group";
+
+    my $template = <<'EOF';
+===Create-Ticket: ticket1
+Queue: General
+Subject: test
+Status: new
+Requestor: test@example.com
+RequestorGroup: test
+EOF
+    my $ticket = create_ticket_offline( $m, $template );
+    ok $ticket->id, 'created a ticket with offline tool';
+    ok grep(
+        { $_->MemberId eq $group->id }
+        @{ $ticket->Requestors->MembersObj->ItemsArrayRef }
+    ), 'correct value' ;
+    is $ticket->RequestorAddresses, 'test@example.com', 'correct value';
+}
+
+sub create_ticket_offline {
+    my ($m, $template) = @_;
+
+    $m->get_ok( $url . '/Tools/Offline.html' );
+
+    $m->submit_form(
+        form_name => 'TicketUpdate',
+        fields    => { string => $template },
+        button    => 'UpdateTickets',
+    );
+
+    my $ticket = RT::Ticket->new( RT->SystemUser );
+    $m->content_like( qr/Ticket \d+ created/, 'found ticket created message' )
+        or return $ticket;
+
+    $ticket->Load( $m->content =~ /Ticket (\d+) created/ );
+    return $ticket;
+}
+
+