first pass RT4 merge, RT#13852
[freeside.git] / rt / t / web / saved_search_context.t
diff --git a/rt/t/web/saved_search_context.t b/rt/t/web/saved_search_context.t
new file mode 100644 (file)
index 0000000..fe9c51e
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+use RT::Test no_plan => 1;
+my ( $url, $m ) = RT::Test->started_ok;
+
+my $ticket = RT::Ticket->new(RT->SystemUser);
+for (['x', 50], ['y', 40], ['z', 30]) {
+    $ticket->Create(
+        Subject   => $_->[0],
+        Queue     => 'general',
+        Owner     => 'root',
+        Priority  => $_->[1],
+        Requestor => 'root@localhost',
+    );
+}
+
+ok( $m->login, 'logged in' );
+
+$m->get($url . '/Search/Build.html?NewQuery=1');
+$m->form_name('BuildQuery');
+$m->field(ValueOfPriority => 45);
+$m->click('DoSearch');
+#RT->Logger->error($m->uri); sleep 100;
+#{ open my $fh, '>', 'm.html'; print $fh $m->content; close $fh; }; die;
+$m->text_contains('Found 2 tickets');
+
+$m->follow_link(id => 'page-edit_search');
+$m->form_name('BuildQuery');
+$m->field(ValueOfAttachment => 'z');
+$m->click('DoSearch');
+
+$m->text_contains('Found 1 ticket');
+
+$m->follow_link(id => 'page-bulk');
+
+$m->form_name('BulkUpdate');
+ok(!$m->value('UpdateTicket2'), "There is no Ticket #2 in the search's bulk update");
+
+sub edit_search_link_has {
+    my ($m, $id, $msg) = @_;
+
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+    (my $dec_id = $id) =~ s/:/%3A/g;
+
+    my $chart_url = $m->find_link(id => 'page-edit_search')->url;
+    like(
+        $chart_url, qr{SavedSearchId=\Q$dec_id\E},
+        $msg || 'Search link matches the pattern we expected'
+    );
+}
+
+diag("Test search context");
+{
+    $m->get_ok($url . '/Search/Build.html');
+    $m->form_name('BuildQuery');
+    $m->field(ValueOfPriority => 45);
+    $m->click('AddClause');
+    $m->form_name('BuildQuery');
+    $m->set_fields(
+        SavedSearchDescription => 'my saved search',
+    );
+    $m->click('SavedSearchSave');
+
+    my $saved_search_id = $m->form_name('BuildQuery')->value('SavedSearchId');
+    edit_search_link_has($m, $saved_search_id);
+}