diff --git a/test/browser/agent_organization_profile_test.rb b/test/browser/agent_organization_profile_test.rb index 585888de6..ff352a683 100644 --- a/test/browser/agent_organization_profile_test.rb +++ b/test/browser/agent_organization_profile_test.rb @@ -4,185 +4,132 @@ require 'browser_test_helper' class AgentOrganizationProfileTest < TestCase def test_search_and_edit_verify_in_second message = 'comment 1 ' + 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', - }, - { - :where => :instance1, - :execute => 'search_organization', - :term => 'Zammad Foundation', - }, - { - :where => :instance2, - :execute => 'search_organization', - :term => 'Zammad Foundation', - }, - # update note - { - :where => :instance1, - :execute => 'set', - :css => '.active [data-name="note"]', - :value => message, - }, - { - :where => :instance1, - :execute => 'click', - :css => '.active .profile', - }, - { - :where => :instance1, - :execute => 'wait', - :value => 3, - }, + browser1 = browser_instance + login( + :browser => browser1, + :username => 'master@example.com', + :password => 'test', + :url => browser_url, + ) + tasks_close_all( + :browser => browser1, + ) - # verify - { - :where => :instance2, - :execute => 'match', - :css => '.active .profile-window', - :value => message, - :match_result => true, - }, - ], - }, - ] - browser_double_test(tests) + browser2 = browser_instance + login( + :browser => browser2, + :username => 'agent1@example.com', + :password => 'test', + :url => browser_url, + ) + tasks_close_all( + :browser => browser2, + ) + + organization_open_by_search( + :browser => browser1, + :value => 'Zammad Foundation', + ) + organization_open_by_search( + :browser => browser2, + :value => 'Zammad Foundation', + ) + + # update note + set( + :browser => browser1, + :css => '.active [data-name="note"]', + :value => message, + ) + click( + :browser => browser1, + :css => '.active .profile', + ) + + # verify + watch_for( + :browser => browser2, + :css => '.active .profile-window', + :value => message, + ) end def test_search_and_edit_in_one message = '1 ' + rand(99999999).to_s - tests = [ - { - :name => 'search and edit', - :action => [ - { - :execute => 'close_all_tasks', - }, - # search and open org - { - :execute => 'search_organization', - :term => 'Zammad Foundation', - }, - { - :execute => 'match', - :css => '.active .profile-window', - :value => 'note', - :match_result => true, - }, - { - :execute => 'match', - :css => '.active .profile-window', - :value => 'member', - :match_result => true, + @browser = browser_instance + login( + :username => 'master@example.com', + :password => 'test', + :url => browser_url, + ) + tasks_close_all() + sleep 1 - }, + # search and open org + organization_open_by_search( + :value => 'Zammad Foundation', + ) + watch_for( + :css => '.active .profile-window', + :value => 'note', + ) + watch_for( + :css => '.active .profile-window', + :value => 'member', + ) - # update note - { - :execute => 'set', - :css => '.active [data-name="note"]', - :value => 'some note 123' - }, - { - :execute => 'click', - :css => '.active .profile', - }, - { - :execute => 'wait', - :value => 1, - }, + # update note + set( + :css => '.active [data-name="note"]', + :value => 'some note 123' + ) + click( :css => '.active .profile' ) + sleep 1 - # check and change note again in edit screen - { - :execute => 'click', - :css => '.active .js-action .select-arrow', - }, - { - :execute => 'click', - :css => '.active .js-action a[data-type="edit"]', - }, - { - :execute => 'wait', - :value => 1, - }, - { - :execute => 'match', - :css => '.active .modal', - :value => 'note', - :match_result => true, - }, - { - :execute => 'match', - :css => '.active .modal', - :value => 'some note 123', - :match_result => true, - }, - { - :execute => 'set', - :css => '.active .modal [data-name="note"]', - :value => 'some note abc' - }, - { - :execute => 'click', - :css => '.active .modal button.js-submit', - }, - { - :execute => 'wait', - :value => 4, - }, - { - :execute => 'match', - :css => '.active .profile-window', - :value => 'some note abc', - :match_result => true, - }, + # check and change note again in edit screen + click( :css => '.active .js-action .select-arrow' ) + click( :css => '.active .js-action a[data-type="edit"]' ) - # create new ticket - { - :execute => 'create_ticket', - :group => 'Users', - :subject => 'org profile check ' + message, - :body => 'org profile check ' + message, - }, - { - :execute => 'wait', - :value => 4, - }, + watch_for( + :css => '.active .modal', + :value => 'note', + ) + watch_for( + :css => '.active .modal', + :value => 'some note 123', + ) - # switch to org tab, verify if ticket is shown - { - :execute => 'search_organization', - :term => 'Zammad Foundation', - }, + set( + :css => '.active .modal [data-name="note"]', + :value => 'some note abc', + ) + click( :css => '.active .modal button.js-submit' ) - { - :execute => 'match', - :css => '.active .profile-window', - :value => 'org profile check ' + message, - :match_result => true, - }, + watch_for( + :css => '.active .profile-window', + :value => 'some note abc', + ) - ], + # create new ticket + ticket_create( + :data => { + :customer => 'nico', + :group => 'Users', + :title => 'org profile check ' + message, + :body => 'org profile check ' + message, }, - ] - browser_signle_test_with_login(tests, { :username => 'master@example.com' }) + ) + sleep 1 + + # switch to org tab, verify if ticket is shown + organization_open_by_search( + :value => 'Zammad Foundation', + ) + watch_for( + :css => '.active .profile-window', + :value => 'org profile check ' + message, + ) end end \ No newline at end of file diff --git a/test/browser_test_helper.rb b/test/browser_test_helper.rb index 3d13dacd8..e514b7837 100644 --- a/test/browser_test_helper.rb +++ b/test/browser_test_helper.rb @@ -887,6 +887,45 @@ class TestCase < Test::Unit::TestCase overviews end +=begin + + organization_open_by_search( + :browser => browser2, + :value => 'some value', + ) + +=end + + def organization_open_by_search(params = {}) + instance = params[:browser] || @browser + + element = instance.find_elements( { :css => '#global-search' } )[0] + + element.click + element.clear + element.send_keys( params[:value] ) + sleep 3 + instance.find_elements( { :css => '.search .empty-search' } )[0].click + sleep 0.5 + text = instance.find_elements( { :css => '#global-search' } )[0].attribute('value') + if !text + raise "#global-search is not empty!" + end + element = instance.find_elements( { :css => '#global-search' } )[0] + element.click + element.clear + element.send_keys( params[:value] ) + sleep 2 + element = instance.find_element( { :partial_link_text => params[:value] } ).click + name = instance.find_elements( { :css => '.active h1' } )[0].text + if name !~ /#{params[:value]}/ + raise "unable to search/find org #{params[:value]}!" + return + end + assert( true, "org #{params[:value]} found" ) + true + end + =begin user_open_by_search( @@ -1457,59 +1496,6 @@ class TestCase < Test::Unit::TestCase assert( false, "(#{test[:name]}) ticket creation failed, can't get zoom url" ) return - # search user - elsif action[:execute] == 'search_user' - element = instance.find_elements( { :css => '#global-search' } )[0] - element.click - element.clear - if @stack - action[:term].gsub! '###stack###', @stack - end - element.send_keys( action[:term] ) - sleep 3 - element = instance.find_element( { :partial_link_text => action[:term] } ).click - name = instance.find_elements( { :css => '.active h1' } )[0].text - if name !~ /#{action[:term]}/ - assert( false, "(#{test[:name]}) unable to search/find user #{action[:term]}!" ) - return - end - assert( true, "(#{test[:name]}) user #{action[:term]} found" ) - return - - # search org - elsif action[:execute] == 'search_organization' - element = instance.find_elements( { :css => '#global-search' } )[0] - element.click - element.clear - if @stack - action[:term].gsub! '###stack###', @stack - end - element.send_keys( action[:term] ) - sleep 3 - instance.find_elements( { :css => '.search .empty-search' } )[0].click - sleep 0.5 - text = instance.find_elements( { :css => '#global-search' } )[0].attribute('value') - if !text - assert( false, "(#{test[:name]}) #global-search is not empty!" ) - return - end - element = instance.find_elements( { :css => '#global-search' } )[0] - element.click - element.clear - if @stack - action[:term].gsub! '###stack###', @stack - end - element.send_keys( action[:term] ) - sleep 2 - element = instance.find_element( { :partial_link_text => action[:term] } ).click - name = instance.find_elements( { :css => '.active h1' } )[0].text - if name !~ /#{action[:term]}/ - assert( false, "(#{test[:name]}) unable to search/find org #{action[:term]}!" ) - return - end - assert( true, "(#{test[:name]}) org #{action[:term]} found" ) - return - # search ticket elsif action[:execute] == 'search_ticket' element = instance.find_elements( { :css => '#global-search' } )[0]