From feee1bde833320829fb71ff692cdc7ca5b6e78c0 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Sun, 14 Jul 2013 00:28:27 +0200 Subject: [PATCH] New browser tests. --- .../agent_ticket_actions_level3_test.rb | 451 ++++++++++++++++++ 1 file changed, 451 insertions(+) create mode 100644 test/browser/agent_ticket_actions_level3_test.rb diff --git a/test/browser/agent_ticket_actions_level3_test.rb b/test/browser/agent_ticket_actions_level3_test.rb new file mode 100644 index 000000000..b6ed51074 --- /dev/null +++ b/test/browser/agent_ticket_actions_level3_test.rb @@ -0,0 +1,451 @@ +# encoding: utf-8 +require 'browser_test_helper' + +class AgentTicketActionsLevel3Test < TestCase + def test_work_with_two_browser_on_same_ticket_edit + message = 'message 3 äöüß ' + rand(99999999999999999).to_s + tests = [ + { + :name => 'start', + :instance1 => browser_instance, + :instance2 => browser_instance, + :instance1_username => 'master@example.com', + :instance1_password => 'test', + :instance2_username => 'agent1@example.com', + :instance2_password => 'test', + :url => browser_url, + :action => [ + { + :where => :instance1, + :execute => 'check', + :css => '#login', + :result => false, + }, + { + :where => :instance2, + :execute => 'check', + :css => '#login', + :result => false, + }, + { + :execute => 'wait', + :value => 1, + }, + { + :where => :instance1, + :execute => 'close_all_tasks', + }, + { + :where => :instance2, + :execute => 'close_all_tasks', + }, + + # create ticket + { + :where => :instance1, + :execute => 'click', + :css => 'a[href="#new"]', + }, + { + :where => :instance1, + :execute => 'click', + :css => 'a[href="#ticket_create/call_inbound"]', + }, + { + :execute => 'wait', + :value => 5, + }, + { + :where => :instance1, + :execute => 'check', + :css => '.active .ticket_create', + :result => true, + }, + { + :execute => 'wait', + :value => 1, + }, + { + :where => :instance1, + :execute => 'set', + :css => '.active .ticket_create input[name="customer_id_autocompletion"]', + :value => 'ma', + }, + { + :execute => 'wait', + :value => 4, + }, + { + :where => :instance1, + :execute => 'sendkey', + :css => '.active .ticket_create input[name="customer_id_autocompletion"]', + :value => :arrow_down, + }, + { + :where => :instance1, + :execute => 'sendkey', + :css => '.active .ticket_create input[name="customer_id_autocompletion"]', + :value => :tab, + }, + { + :where => :instance1, + :execute => 'select', + :css => '.active .ticket_create select[name="group_id"]', + :value => 'Users', + }, + { + :where => :instance1, + :execute => 'set', + :css => '.active .ticket_create input[name="subject"]', + :value => 'some level 3 subject 123äöü', + }, + { + :where => :instance1, + :execute => 'set', + :css => '.active .ticket_create textarea[name="body"]', + :value => 'some level 3 body 123äöü', + }, + { + :where => :instance1, + :execute => 'click', + :css => '.active .form-actions button[type="submit"]', + }, + { + :execute => 'wait', + :value => 5, + }, + { + :where => :instance1, + :execute => 'check', + :css => '#login', + :result => false, + }, + { + :where => :instance1, + :execute => 'check', + :element => :url, + :result => '#ticket/zoom/', + }, + + # check ticket + { + :where => :instance1, + :execute => 'match', + :css => '.active div.article', + :value => 'some level 3 body 123äöü', + :match_result => true, + }, + + # remember old ticket where we want to merge to + { + :where => :instance1, + :execute => 'match', + :css => '.active .ticket-zoom small', + :value => '^(.*)$', + :no_quote => true, + :match_result => true, + }, + + # open ticket in second browser + { + :where => :instance2, + :execute => 'set', + :css => '#global-search', + :value => '###stack###', + }, + { + :execute => 'wait', + :value => 3, + }, + { + :where => :instance2, + :execute => 'click', + :link => '###stack###', +# :css => 'a:contains(\'###stack###\')', + }, + { + :execute => 'wait', + :value => 1, + }, + { + :where => :instance2, + :execute => 'js', + :value => '$("#global-search").val("")', + }, + { + :where => :instance2, + :execute => 'js', + :value => '$("#global-search").focus()', + }, + { + :execute => 'wait', + :value => 1, + }, + { + :where => :instance2, + :execute => 'js', + :value => '$("#global-search").blur()', + }, + { + :where => :instance2, + :execute => 'js', + :value => '$("#global-search").parent().parent().removeClass("open")', + }, + { + :execute => 'wait', + :value => 3, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active div.article', + :value => 'some level 3 body 123äöü', + :match_result => true, + }, + + # change edit screen in instance 1 + { + :where => :instance1, + :execute => 'set', + :css => '.active .ticket-answer textarea[name="body"]', + :value => 'some level 3 body in instance 1', + }, + { + :execute => 'wait', + :value => 3, + }, + + # update ticket in instance 2 + { + :where => :instance2, + :execute => 'set', + :css => '.active .ticket-answer textarea[name="body"]', + :value => 'some level 3 body in instance 2', + }, + { + :execute => 'wait', + :value => 1, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => true, + }, + { + :where => :instance2, + :execute => 'click', + :css => '.active .edit button[type="submit"]', + }, + { + :execute => 'wait', + :value => 8, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + + # check content and edit screen in instance 1 + { + :where => :instance1, + :execute => 'match', + :css => '.active div.article-view', + :value => 'some level 3 body in instance 2', + :match_result => true, + }, + { + :where => :instance1, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => 'some level 3 body in instance 1', + :match_result => true, + }, + { + :where => :instance1, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => true, + }, + + # check edit screen in instance 2 + { + :where => :instance2, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '^$', + :no_quote => true, + :match_result => true, + }, + + # update ticket in instance 1 + { + :where => :instance1, + :execute => 'click', + :css => '.active .edit button[type="submit"]', + }, + { + :execute => 'wait', + :value => 8, + }, + + # check content in instance 2 + { + :where => :instance2, + :execute => 'match', + :css => '.active div.article-view', + :value => 'some level 3 body in instance 1', + :match_result => true, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active div.article-view', + :value => 'some level 3 body in instance 2', + :match_result => true, + }, + + # check content and edit screen in instance 1+2 + { + :where => :instance1, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '^$', + :no_quote => true, + :match_result => true, + }, + { + :where => :instance1, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '^$', + :no_quote => true, + :match_result => true, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + + # reload instances, verify again + { + :where => :instance1, + :execute => 'reload', + }, + { + :where => :instance2, + :execute => 'reload', + }, + + # check content and edit screen in instance 1+2 + { + :where => :instance1, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '^$', + :no_quote => true, + :match_result => true, + }, + { + :where => :instance1, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '^$', + :no_quote => true, + :match_result => true, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + + # change form of ticket in instance 2 + { + :where => :instance2, + :execute => 'set', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '22 some level 3 body in instance 2', + }, + { + :execute => 'wait', + :value => 2, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => true, + }, + { + :where => :instance2, + :execute => 'reload', + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active .ticket-answer textarea[name="body"]', + :value => '22 some level 3 body in instance 2', + :match_result => true, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => true, + }, + { + :where => :instance2, + :execute => 'click', + :css => '.active .edit button[type="submit"]', + }, + { + :execute => 'wait', + :value => 8, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.content_permanent.active', + :value => 'Discard your unsaved changes.', + :match_result => false, + }, + { + :where => :instance2, + :execute => 'match', + :css => '.active div.article-view', + :value => '22 some level 3 body in instance 2', + :match_result => true, + }, + ], + }, + ] + browser_double_test(tests) + end +end