From 7a686b5c0ec355eb836bd4b1affc8421a6577018 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 23 Feb 2015 07:56:45 +0100 Subject: [PATCH] Improved tests. --- .../agent_ticket_overview_level1_test.rb | 1 + test/browser/maintenance_message_test.rb | 372 ++++++++---------- test/browser/taskbar_session_test.rb | 129 +++--- test/browser_test_helper.rb | 38 ++ 4 files changed, 263 insertions(+), 277 deletions(-) diff --git a/test/browser/agent_ticket_overview_level1_test.rb b/test/browser/agent_ticket_overview_level1_test.rb index dd3318994..4caf71d5e 100644 --- a/test/browser/agent_ticket_overview_level1_test.rb +++ b/test/browser/agent_ticket_overview_level1_test.rb @@ -125,6 +125,7 @@ class AgentTicketOverviewLevel1Test < TestCase ) # close ticket + sleep 1 # needed to selenium cache issues ticket_update( :browser => browser2, :data => { diff --git a/test/browser/maintenance_message_test.rb b/test/browser/maintenance_message_test.rb index 7350a7e05..86b4cf789 100644 --- a/test/browser/maintenance_message_test.rb +++ b/test/browser/maintenance_message_test.rb @@ -8,215 +8,167 @@ class MaintenanceMessageTest < TestCase title_text = "test #{string}<\/b>" message_html = "message 1äöüß #{string}\n\n\nhttp://zammad.org" message_text = "message 1äöüß<\/b> #{string}\n\nhttp:\/\/zammad.org" - tests = [ - { - :name => 'check #1', - :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 => [ - { - :execute => 'wait', - :value => 1, - }, - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#manage"]', - }, - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#system/maintenance"]', - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content input[name="head"]', - :value => title_html, - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content textarea[name="message"]', - :value => message_html, - }, - { - :where => :instance1, - :execute => 'click', - :css => '#content button[type="submit"]', - }, - { - :execute => 'wait', - :value => 5, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => title_text, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => message_text, - }, - { - :where => :instance1, - :execute => 'match', - :css => 'body', - :value => message_text, - :match_result => false, - }, - { - :where => :instance2, - :execute => 'click', - :css => 'div.modal-header .close', - }, - { - :execute => 'wait', - :value => 2, - }, - ], - }, - { - :name => 'check #2', - :action => [ - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#manage"]', - }, - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#system/maintenance"]', - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content input[name="head"]', - :value => title_html + ' #2', - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content textarea[name="message"]', - :value => message_html + ' #2', - }, - { - :where => :instance1, - :execute => 'click', - :css => '#content button[type="submit"]', - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => title_text, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => message_text + ' #2', - }, - { - :where => :instance1, - :execute => 'match', - :css => 'body', - :value => message_text + ' #2', - :match_result => false, - }, - { - :where => :instance2, - :execute => 'click', - :css => 'div.modal-header .close', - }, - { - :execute => 'wait', - :value => 2, - }, - ], - }, - { - :name => 'check #3', - :action => [ - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#manage"]', - }, - { - :where => :instance1, - :execute => 'click', - :css => 'a[href="#system/maintenance"]', - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content input[name="head"]', - :value => title_html + ' #3' , - }, - { - :where => :instance1, - :execute => 'set', - :css => '#content textarea[name="message"]', - :value => message_html + ' #3', - }, - { - :where => :instance1, - :execute => 'setCheck', - :css => '#content input[name="reload"][value="1"]', - }, - { - :where => :instance1, - :execute => 'click', - :css => '#content button[type="submit"]', - }, - { - :execute => 'wait', - :value => 5, - }, - { - :where => :instance1, - :execute => 'check', - :css => 'div.modal-backdrop.fade.in', - :result => false, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => title_text, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => message_text + ' #3', - }, - { - :where => :instance1, - :execute => 'match', - :css => 'body', - :value => message_text + ' #3', - :match_result => false, - }, - { - :where => :instance2, - :execute => 'watch_for', - :area => '.modal', - :value => 'Reload application', - }, - ], - }, - ] - browser_double_test(tests) + + # check #1 + browser1 = browser_instance + login( + :browser => browser1, + :username => 'master@example.com', + :password => 'test', + :url => browser_url, + ) + + browser2 = browser_instance + login( + :browser => browser2, + :username => 'agent1@example.com', + :password => 'test', + :url => browser_url, + ) + click( + :browser => browser1, + :css => 'a[href="#manage"]', + ) + click( + :browser => browser1, + :css => 'a[href="#system/maintenance"]', + ) + + set( + :browser => browser1, + :css => '#content input[name="head"]', + :value => title_html, + ) + set( + :browser => browser1, + :css => '#content input[name="message"]', + :value => message_html, + ) + + click( + :browser => browser1, + :css => '#content button[type="submit"]', + ) + + watch_for( + :browser => browser2, + :css => '.modal', + :value => title_text, + ) + watch_for( + :browser => browser2, + :css => '.modal', + :value => message_text, + ) + + match_not( + :browser => browser1, + :css => 'body', + :value => message_text, + ) + + click( + :browser => browser2, + :css => 'div.modal-header .close', + ) + + # check #2 + click( + :browser => browser1, + :css => 'a[href="#manage"]', + ) + click( + :browser => browser1, + :css => 'a[href="#system/maintenance"]', + ) + + set( + :browser => browser1, + :css => '#content input[name="head"]', + :value => title_html + ' #2', + ) + set( + :browser => browser1, + :css => '#content input[name="message"]', + :value => message_html + ' #2', + ) + + click( + :browser => browser1, + :css => '#content button[type="submit"]', + ) + + watch_for( + :browser => browser2, + :css => '.modal', + :value => title_html + ' #2', + ) + watch_for( + :browser => browser2, + :css => '.modal', + :value => message_html + ' #2', + ) + + match_not( + :browser => browser1, + :css => 'body', + :value => message_text, + ) + + click( + :browser => browser2, + :css => 'div.modal-header .close', + ) + + # check #3 + click( + :browser => browser1, + :css => 'a[href="#manage"]', + ) + click( + :browser => browser1, + :css => 'a[href="#system/maintenance"]', + ) + + set( + :browser => browser1, + :css => '#content input[name="head"]', + :value => title_html + ' #3', + ) + set( + :browser => browser1, + :css => '#content input[name="message"]', + :value => message_html + ' #3', + ) + check( + :browser => browser1, + :css => '#content input[name="reload"][value="1"]', + ) + click( + :browser => browser1, + :css => '#content button[type="submit"]', + ) + + watch_for( + :browser => browser2, + :css => '.modal', + :value => title_html + ' #3', + ) + watch_for( + :browser => browser2, + :css => '.modal', + :value => message_html + ' #3', + ) + watch_for( + :browser => browser2, + :css => '.modal', + :value => 'Reload application', + ) + + match_not( + :browser => browser1, + :css => 'body', + :value => message_text, + ) end end \ No newline at end of file diff --git a/test/browser/taskbar_session_test.rb b/test/browser/taskbar_session_test.rb index acc256fe8..8c25b7ff4 100644 --- a/test/browser/taskbar_session_test.rb +++ b/test/browser/taskbar_session_test.rb @@ -3,75 +3,70 @@ require 'browser_test_helper' class TaskbarSessionTest < TestCase def test_current_session_a_same_agent - tests = [ - { - :name => 'check taken over session block screen with same user', - :instance1 => browser_instance, - :instance2 => browser_instance, - :instance1_username => 'agent1@example.com', - :instance1_password => 'test', - :instance2_username => 'agent1@example.com', - :instance2_password => 'test', - :url => browser_url, - :action => [ - { - :execute => 'wait', - :value => 8, - }, - { - :where => :instance1, - :execute => 'match', - :css => 'body', - :value => 'Reload application', - :match_result => true, - }, - { - :where => :instance2, - :execute => 'match', - :css => 'body', - :value => 'Reload application', - :match_result => false, - }, - ], - }, - ] - browser_double_test(tests) + + # check taken over session block screen with same user + browser1 = browser_instance + login( + :browser => browser1, + :username => 'agent1@example.com', + :password => 'test', + :url => browser_url, + ) + + browser2 = browser_instance + login( + :browser => browser2, + :username => 'agent1@example.com', + :password => 'test', + :url => browser_url, + ) + + sleep 8 + + match( + :browser => browser1, + :css => 'body', + :value => 'Reload application', + ) + match_not( + :browser => browser2, + :css => 'body', + :value => 'Reload application', + ) + end def test_current_session_b_different_agent - tests = [ - { - :name => 'check taken over session block screen with same user', - :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 => [ - { - :execute => 'wait', - :value => 8, - }, - { - :where => :instance1, - :execute => 'match', - :css => 'body', - :value => 'Reload application', - :match_result => false, - }, - { - :where => :instance2, - :execute => 'match', - :css => 'body', - :value => 'Reload application', - :match_result => false, - }, - ], - }, - ] - browser_double_test(tests) + + # check taken over session block screen with same user + browser1 = browser_instance + login( + :browser => browser1, + :username => 'master@example.com', + :password => 'test', + :url => browser_url, + ) + + browser2 = browser_instance + login( + :browser => browser2, + :username => 'agent1@example.com', + :password => 'test', + :url => browser_url, + ) + + sleep 8 + + match_not( + :browser => browser1, + :css => 'body', + :value => 'Reload application', + ) + match_not( + :browser => browser2, + :css => 'body', + :value => 'Reload application', + ) end -end +end \ No newline at end of file diff --git a/test/browser_test_helper.rb b/test/browser_test_helper.rb index 3ff58ac04..28c19c3e0 100644 --- a/test/browser_test_helper.rb +++ b/test/browser_test_helper.rb @@ -279,6 +279,44 @@ class TestCase < Test::Unit::TestCase dropdown.select_by(:text, params[:value]) end +=begin + + check( + :browser => browser1, + :css => '.some_class', + ) + +=end + + def check(params) + instance = params[:browser] || @browser + + element = instance.find_elements( { :css => params[:css] } )[0] + checked = element.attribute('checked') + if !checked + element.click + end + end + +=begin + + uncheck( + :browser => browser1, + :css => '.some_class', + ) + +=end + + def uncheck(params) + instance = params[:browser] || @browser + + element = instance.find_elements( { :css => params[:css] } )[0] + checked = element.attribute('checked') + if checked + element.click + end + end + =begin sendkey(