Browse Source

Test stabilization: Improved handling of modal dialogs.

Thorsten Eckel 6 years ago
parent
commit
7a40517cb4

+ 5 - 8
test/browser/agent_organization_profile_test.rb

@@ -47,10 +47,7 @@ class AgentOrganizationProfileTest < TestCase
     click(css: '.active .js-action .icon-arrow-down', fast: true)
     click(css: '.active .js-action [data-type="edit"]')
 
-    watch_for(
-      css: '.active .modal',
-      value: 'note',
-    )
+    modal_ready()
     watch_for(
       css: '.active .modal',
       value: note,
@@ -65,6 +62,7 @@ class AgentOrganizationProfileTest < TestCase
       value: 'some note abc',
     )
     click(css: '.active .modal button.js-submit')
+    modal_disappear()
 
     watch_for(
       css: '.active .profile-window',
@@ -80,15 +78,14 @@ class AgentOrganizationProfileTest < TestCase
     # change lastname back
     click(css: '.active .js-action .icon-arrow-down', fast: true)
     click(css: '.active .js-action [data-type="edit"]')
-    watch_for(
-      css: '.active .modal',
-      value: 'note',
-    )
+
+    modal_ready()
     set(
       css: '.modal [name="name"]',
       value: 'Zammad Foundation',
     )
     click(css: '.active .modal button.js-submit')
+    modal_disappear()
 
     verify_task(
       data: {

+ 4 - 4
test/browser/agent_ticket_attachment_test.rb

@@ -162,15 +162,15 @@ class AgentTicketAttachmentTest < TestCase
 
     # submit form
     click(css: '.content.active .js-submit')
-    sleep 2
 
     # check warning
+    modal_ready()
     match(
       css: '.content.active .modal',
       value: 'missing',
     )
     click(css: '.content.active .modal .js-cancel')
-    sleep 2
+    modal_disappear()
 
     ticket_update(
       data: {
@@ -259,7 +259,7 @@ class AgentTicketAttachmentTest < TestCase
     # modify customer
     click(browser: browser1, css: '.content.active .sidebar[data-tab="customer"] .js-actions .dropdown-toggle')
     click(browser: browser1, css: '.content.active .sidebar[data-tab="customer"] .js-actions [data-type="customer-edit"]')
-    sleep 2
+    modal_ready(browser: browser1)
     set(browser: browser1, css: '.modal [name="address"]', value: 'some new address')
     click(browser: browser1, css: '.modal .js-submit')
     modal_disappear(browser: browser1)
@@ -279,7 +279,7 @@ class AgentTicketAttachmentTest < TestCase
     # change org of customer, check if org is shown in sidebar
     click(browser: browser1, css: '.content.active .sidebar[data-tab="customer"] .js-actions .dropdown-toggle')
     click(browser: browser1, css: '.content.active .sidebar[data-tab="customer"] .js-actions [data-type="customer-edit"]')
-    sleep 2
+    modal_ready(browser: browser1)
     set(browser: browser1, css: '.modal .js-input', value: 'zammad')
     click(browser: browser1, css: '.modal .js-input')
     click(browser: browser1, css: '.modal .js-option')

+ 1 - 3
test/browser/agent_ticket_create_reset_customer_selection_test.rb

@@ -177,9 +177,7 @@ class AgentTicketCreateResetCustomerSelectionTest < TestCase
     click(css: '.content.active .tabsSidebar .sidebar[data-tab="customer"] .js-actions')
     click(css: '.content.active .tabsSidebar .sidebar[data-tab="customer"] .js-actions li[data-type="customer-change"]')
 
-    watch_for(
-      css: '.content.active .modal',
-    )
+    modal_ready()
 
     exists_not(
       css: '.content.active .modal .user_autocompletion.form-group.has-error',

+ 2 - 1
test/browser/agent_ticket_link_test.rb

@@ -46,7 +46,8 @@ class AgentTicketLinkTest < TestCase
     click(
       css: '.content.active .links .js-add',
     )
-    sleep 2
+
+    modal_ready()
 
     set(
       css: '.content.active .modal-body [name="ticket_number"]',

+ 2 - 8
test/browser/agent_ticket_merge_test.rb

@@ -58,11 +58,8 @@ class AgentTicketMergeTest < TestCase
     # merge tickets
     click( css: '.active div[data-tab="ticket"] .js-actions .icon-arrow-down' )
     click( css: '.active div[data-tab="ticket"] .js-actions [data-type="ticket-merge"]' )
-    watch_for(
-      css: '.modal',
-      value: 'merge',
-    )
 
+    modal_ready()
     set(
       css: '.modal input[name="master_ticket_number"]',
       value: ticket1[:number],
@@ -115,11 +112,8 @@ class AgentTicketMergeTest < TestCase
     # merge tickets
     click( css: '.active div[data-tab="ticket"] .js-actions .icon-arrow-down' )
     click( css: '.active div[data-tab="ticket"] .js-actions [data-type="ticket-merge"]' )
-    watch_for(
-      css: '.modal',
-      value: 'merge',
-    )
 
+    modal_ready()
     set(
       css: '.modal input[name="master_ticket_number"]',
       value: ticket3[:number],

+ 4 - 8
test/browser/agent_ticket_overview_level0_test.rb

@@ -96,10 +96,8 @@ class AgentTicketOverviewLevel0Test < TestCase
     # click options and enable number and article count
     click(css: '.content.active [data-type="settings"]')
 
-    watch_for(
-      css: '.modal h1',
-      value: 'Edit',
-    )
+    modal_ready()
+
     check(
       css: '.modal input[value="number"]',
     )
@@ -156,10 +154,8 @@ class AgentTicketOverviewLevel0Test < TestCase
     # disable number and article count
     click(css: '.content.active [data-type="settings"]')
 
-    watch_for(
-      css: '.modal h1',
-      value: 'Edit',
-    )
+    modal_ready()
+
     uncheck(
       css: '.modal input[value="number"]',
     )

+ 10 - 2
test/browser/agent_ticket_tag_test.rb

@@ -254,7 +254,11 @@ class AgentTicketTagTest < TestCase
       browser: browser2,
       js: "$('.content.active .js-name:contains(\"tag3\")').click()",
     )
-    sleep 2
+
+    modal_ready(
+      browser: browser2,
+    )
+
     set(
       browser: browser2,
       css: '.modal [name="name"]',
@@ -308,7 +312,11 @@ class AgentTicketTagTest < TestCase
       browser: browser2,
       js: "$('.content.active .js-name:contains(\"tag5\")').closest('tr').find('.js-delete').click()",
     )
-    sleep 2
+
+    modal_ready(
+      browser: browser2,
+    )
+
     click(
       browser: browser2,
       css: '.modal .js-submit',

+ 3 - 5
test/browser/agent_ticket_text_module_test.rb

@@ -227,7 +227,8 @@ class AgentTicketTextModuleTest < TestCase
       browser: browser2,
       css: '.active div[data-tab="ticket"] .js-actions [data-type="customer-change"]',
     )
-    sleep 1
+
+    modal_ready(browser: browser2)
 
     ticket_customer_select(
       browser:  browser2,
@@ -240,10 +241,7 @@ class AgentTicketTextModuleTest < TestCase
       css: '.modal-content .js-submit',
     )
 
-    watch_for_disappear(
-      browser: browser2,
-      css: '.modal',
-    )
+    modal_disappear(browser: browser2)
 
     set(
       browser: browser2,

+ 12 - 44
test/browser/agent_ticket_time_accounting_test.rb

@@ -41,11 +41,7 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.active .js-submit',
     )
-
-    watch_for(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_ready()
     set(
       css: '.content.active .modal [name=time_unit]',
       value: '4',
@@ -53,10 +49,8 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.content.active .modal .js-submit',
     )
-    watch_for_disappear(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_disappear()
+
     watch_for(
       css: '.content.active .js-timeUnit',
       value: '4',
@@ -80,11 +74,7 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.active .js-submit',
     )
-
-    watch_for(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_ready()
     set(
       css: '.content.active .modal [name=time_unit]',
       value: '4,6',
@@ -92,10 +82,8 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.content.active .modal .js-submit',
     )
-    watch_for_disappear(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_disappear()
+
     watch_for(
       css: '.content.active .js-timeUnit',
       value: '4.6',
@@ -111,10 +99,7 @@ class AgentTicketTimeAccountingTest < TestCase
       css: '.active .js-submit',
     )
 
-    watch_for(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_ready()
     set(
       css: '.content.active .modal [name=time_unit]',
       value: '4abc',
@@ -132,10 +117,7 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.content.active .modal .js-submit',
     )
-    watch_for_disappear(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_disappear()
     watch_for(
       css: '.content.active .js-timeUnit',
       value: '8.6',
@@ -198,29 +180,18 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.active .js-submit',
     )
-
-    watch_for(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_ready()
 
     # Click outside the modal to make it disappear
     execute(
       js: 'document.elementFromPoint(300, 100).click();',
     )
-    watch_for_disappear(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_disappear()
 
     click(
       css: '.active .js-submit',
     )
-    watch_for(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
-
+    modal_ready()
     set(
       css: '.content.active .modal [name=time_unit]',
       value: '4',
@@ -228,10 +199,7 @@ class AgentTicketTimeAccountingTest < TestCase
     click(
       css: '.content.active .modal .js-submit',
     )
-    watch_for_disappear(
-      css: '.content.active .modal',
-      value: 'Time Accounting',
-    )
+    modal_disappear()
 
     # disable time accounting
     click(

+ 2 - 6
test/browser/agent_ticket_zoom_hide_test.rb

@@ -52,18 +52,14 @@ class AgentTicketZoomHideTest < TestCase
       css: '.attachment-icon img',
     )
 
-    watch_for(
-      css: 'body > .modal',
-    )
+    modal_ready()
 
     # Now go to a previous ticket and confirm that the modal disappears
     location(
       url: browser_url + '/#ticket/zoom/1',
     )
     sleep 2
-    exists_not(
-      css: 'body > .modal',
-    )
+    modal_disappear()
   end
 
   def teardown

Some files were not shown because too many files changed in this diff