# 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 => 'close_all_tasks',
},
{
:where => :instance2,
:execute => 'close_all_tasks',
},
# create ticket
{
:where => :instance1,
:execute => 'create_ticket',
:group => 'Users',
:subject => 'some level 3 subject 123äöü',
:body => 'some level 3 body 123äöü',
},
# check ticket
{
:where => :instance1,
:execute => 'match',
:css => '.active div.ticket-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_info h3',
:value => '^#(.*)$',
:no_quote => true,
:match_result => true,
},
# open ticket in second browser
{
:execute => 'wait',
:value => 1,
},
{
: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 => 3,
},
{
:where => :instance2,
:execute => 'match',
:css => '.active div.ticket-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 => 5,
},
{
:where => :instance2,
:execute => 'match',
:css => '.content_permanent.active .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
:match_result => true,
},
{
:where => :instance2,
:execute => 'click',
:css => '.active .edit button[type="submit"]',
},
{
:execute => 'wait',
:value => 12,
},
{
:where => :instance2,
:execute => 'match',
:css => '.content_permanent.active .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
:match_result => false,
},
# check content and edit screen in instance 1
{
:where => :instance1,
:execute => 'match',
:css => '.active div.ticket-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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 => 16,
},
# check content in instance 2
{
:where => :instance2,
:execute => 'match',
:css => '.active div.ticket-article-view',
:value => 'some level 3 body in instance 1',
:match_result => true,
},
{
:where => :instance2,
:execute => 'match',
:css => '.active div.ticket-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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 => 4,
},
{
:where => :instance2,
:execute => 'match',
:css => '.content_permanent.active .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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 .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
: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',
:css => '.content_permanent.active .reset-message',
:value => '(Discard your unsaved changes.|Verwerfen der)',
:no_quote => true,
:match_result => false,
},
{
:where => :instance2,
:execute => 'match',
:css => '.active div.ticket-article-view',
:value => '22 some level 3 body in instance 2',
:match_result => true,
},
],
},
]
browser_double_test(tests)
end
end