summaryrefslogtreecommitdiff
path: root/service/test/functional/features
diff options
context:
space:
mode:
authorkaeff <hi@kaeff.net>2015-08-17 20:45:10 +0200
committerkaeff <hi@kaeff.net>2015-08-17 20:56:27 +0200
commitaee74ce5144d098825f6fb1b4a46b68c0af2f841 (patch)
tree2668e33072760f7bcb339fdd739fee6130aa2b50 /service/test/functional/features
parentb16bae353e40fa05b4993ef68232a9df83db370e (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/features')
-rw-r--r--service/test/functional/features/checkboxes_and_mailboxes.feature3
-rw-r--r--service/test/functional/features/steps/common.py5
-rw-r--r--service/test/functional/features/steps/mail_list.py2
-rw-r--r--service/test/functional/features/steps/search.py1
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)