diff options
| author | kaeff <hi@kaeff.net> | 2015-08-17 20:45:10 +0200 | 
|---|---|---|
| committer | kaeff <hi@kaeff.net> | 2015-08-17 20:56:27 +0200 | 
| commit | aee74ce5144d098825f6fb1b4a46b68c0af2f841 (patch) | |
| tree | 2668e33072760f7bcb339fdd739fee6130aa2b50 /service/test/functional | |
| parent | b16bae353e40fa05b4993ef68232a9df83db370e (diff) | |
2 attempts against flakiness of checkboxes_and_mailboxes
1) Explicitly load inbox to avoid test fails before mail appears
2) Use "loading..." notification to check whether deleting mail has
already been completed
checkboxes_and_mailboxes.feature spends a lot time waiting (even if the
step is already executed logically) as one can see when running tests in
Firefox. This test is a good candidate for speed optimization.
Diffstat (limited to 'service/test/functional')
4 files changed, 10 insertions, 1 deletions
| diff --git a/service/test/functional/features/checkboxes_and_mailboxes.feature b/service/test/functional/features/checkboxes_and_mailboxes.feature index 47ea806d..09710040 100644 --- a/service/test/functional/features/checkboxes_and_mailboxes.feature +++ b/service/test/functional/features/checkboxes_and_mailboxes.feature @@ -21,7 +21,8 @@ Feature: Checkboxes    Scenario: User has a list of emails in each mailboxes that needs to be managed      Given I have a mail in my inbox -    When I mark the first unread email as read +    When I select the tag 'inbox' +      And I mark the first unread email as read        And I delete the email      When I select the tag 'trash'      Then the deleted mail is there diff --git a/service/test/functional/features/steps/common.py b/service/test/functional/features/steps/common.py index 96c51a6e..d77e9903 100644 --- a/service/test/functional/features/steps/common.py +++ b/service/test/functional/features/steps/common.py @@ -24,6 +24,8 @@ from twisted.internet import defer  from test.support.integration import MailBuilder +LOADING = 'loading' +  TIMEOUT_IN_S = 20 @@ -42,6 +44,9 @@ def wait_until_element_is_deleted(context, locator_tuple, timeout=TIMEOUT_IN_S):  def wait_for_user_alert_to_disapear(context, timeout=TIMEOUT_IN_S):      wait_until_element_is_invisible_by_locator(context, (By.ID, 'user-alerts'), timeout) +def wait_for_user_alert_to_appear_and_disapear(context, timeout=TIMEOUT_IN_S): +    wait_until_element_is_visible_by_locator(context, (By.ID, LOADING), timeout) +    wait_until_element_is_invisible_by_locator(context, (By.ID, LOADING), timeout)  def wait_until_elements_are_visible_by_locator(context, locator_tuple, timeout=TIMEOUT_IN_S):      spend_time_in_reactor() diff --git a/service/test/functional/features/steps/mail_list.py b/service/test/functional/features/steps/mail_list.py index 0822cd75..2ab46bab 100644 --- a/service/test/functional/features/steps/mail_list.py +++ b/service/test/functional/features/steps/mail_list.py @@ -102,6 +102,8 @@ def impl(context):      context.current_mail_id = last_email().get_attribute('id')      last_email().find_element_by_tag_name('input').click()      find_element_by_id(context, 'delete-selected').click() +    wait_for_user_alert_to_appear_and_disapear(context) # Loading +    wait_for_user_alert_to_disapear(context) # Success message      spend_time_in_reactor()      assert 0 == len(context.browser.find_element_by_id('mail-list').find_elements_by_tag_name('li')) diff --git a/service/test/functional/features/steps/search.py b/service/test/functional/features/steps/search.py index e653c3ed..cdd7bb61 100644 --- a/service/test/functional/features/steps/search.py +++ b/service/test/functional/features/steps/search.py @@ -23,6 +23,7 @@ from common import *  def impl(context, search_term):      search_field = find_element_by_css_selector(context, '#search-trigger input[type="search"]')      search_field.send_keys(search_term) +    sleep(5)      search_field.send_keys(Keys.ENTER)      sleep(1) | 
