summaryrefslogtreecommitdiff
path: root/service/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'service/test/functional')
-rw-r--r--service/test/functional/features/environment.py2
-rw-r--r--service/test/functional/features/steps/attachments.py10
-rw-r--r--service/test/functional/features/steps/common.py2
-rw-r--r--service/test/functional/features/steps/compose.py6
-rw-r--r--service/test/functional/features/steps/login.py6
-rw-r--r--service/test/functional/features/steps/tag_list.py21
6 files changed, 22 insertions, 25 deletions
diff --git a/service/test/functional/features/environment.py b/service/test/functional/features/environment.py
index d49016b6..821a762b 100644
--- a/service/test/functional/features/environment.py
+++ b/service/test/functional/features/environment.py
@@ -63,7 +63,7 @@ def before_all(context):
def _setup_webdriver(context):
- browser = context.config.userdata.get('webdriver', 'phantomjs')
+ browser = context.config.userdata.get('webdriver', 'chrome')
supported_webdrivers = {
'phantomjs': webdriver.PhantomJS,
'firefox': webdriver.Firefox,
diff --git a/service/test/functional/features/steps/attachments.py b/service/test/functional/features/steps/attachments.py
index 8852b787..37fabb6a 100644
--- a/service/test/functional/features/steps/attachments.py
+++ b/service/test/functional/features/steps/attachments.py
@@ -13,6 +13,8 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+import os
+
from email.MIMEMultipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
@@ -67,8 +69,10 @@ def find_icon(context):
def upload_big_file(context):
base_dir = "test/functional/features/files/"
fname = "over_5mb.data"
+ path = os.path.abspath(os.path.join(base_dir, fname))
+
context.browser.execute_script("$('#fileupload').removeAttr('hidden');")
- fill_by_css_selector(context, '#fileupload', base_dir + fname)
+ fill_by_css_selector(context, '#fileupload', path)
find_element_by_css_selector(context, '#upload-error-message')
@@ -97,7 +101,9 @@ def should_not_show_upload_error_message(context):
def upload_attachment(context):
base_dir = "test/functional/features/files/"
fname = "5mb.data"
- fill_by_css_selector(context, '#fileupload', base_dir + fname)
+ path = os.path.abspath(os.path.join(base_dir, fname))
+
+ fill_by_css_selector(context, '#fileupload', path)
attachment_list_item = find_element_by_css_selector(context, '#attachment-list-item li a')
assert attachment_list_item.text == "%s (5.00 Mb)" % fname
diff --git a/service/test/functional/features/steps/common.py b/service/test/functional/features/steps/common.py
index edfe2a50..3e1e995e 100644
--- a/service/test/functional/features/steps/common.py
+++ b/service/test/functional/features/steps/common.py
@@ -61,7 +61,7 @@ def _wait_until_elements_are_visible_by_locator(context, locator_tuple, timeout=
def _wait_until_element_is_visible_by_locator(context, locator_tuple, timeout=TIMEOUT_IN_S):
wait = WebDriverWait(context.browser, timeout)
- wait.until(EC.presence_of_element_located(locator_tuple))
+ wait.until(EC.visibility_of_element_located(locator_tuple))
return context.browser.find_element(locator_tuple[0], locator_tuple[1])
diff --git a/service/test/functional/features/steps/compose.py b/service/test/functional/features/steps/compose.py
index 1dab1b6d..1b90052e 100644
--- a/service/test/functional/features/steps/compose.py
+++ b/service/test/functional/features/steps/compose.py
@@ -19,7 +19,9 @@ from behave import when
from common import (
fill_by_css_selector,
- find_element_by_css_selector)
+ find_element_by_css_selector,
+ find_element_by_id
+)
@when('I compose a message with')
@@ -52,7 +54,7 @@ def send_impl(context):
@when(u'I toggle the cc and bcc fields')
def collapse_cc_bcc_fields(context):
- cc_and_bcc_chevron = find_element_by_css_selector(context, '#cc-bcc-collapse')
+ cc_and_bcc_chevron = find_element_by_id(context, 'cc-bcc-collapse')
cc_and_bcc_chevron.click()
diff --git a/service/test/functional/features/steps/login.py b/service/test/functional/features/steps/login.py
index 6ee521e9..9ce37370 100644
--- a/service/test/functional/features/steps/login.py
+++ b/service/test/functional/features/steps/login.py
@@ -29,13 +29,13 @@ def login_page(context):
@when(u'I enter {username} and {password} as credentials')
def enter_credentials(context, username, password):
- fill_by_css_selector(context, 'input#email', context.username)
- fill_by_css_selector(context, 'input#password', password)
+ fill_by_css_selector(context, 'input[name="username"]', context.username)
+ fill_by_css_selector(context, 'input[name="password"]', password)
@when(u'I click on the login button')
def click_login(context):
- find_element_by_css_selector(context, 'input[name="login"]').click()
+ find_element_by_css_selector(context, 'button[type="submit"]').click()
@then(u'I should see the fancy interstitial')
diff --git a/service/test/functional/features/steps/tag_list.py b/service/test/functional/features/steps/tag_list.py
index daea416d..e3382a61 100644
--- a/service/test/functional/features/steps/tag_list.py
+++ b/service/test/functional/features/steps/tag_list.py
@@ -14,11 +14,10 @@
# You should have received a copy of the GNU Affero General Public License
# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
from behave import when
-from selenium.common.exceptions import TimeoutException
+from selenium.common.exceptions import TimeoutException, StaleElementReferenceException
from common import (
find_element_by_class_name,
- find_element_by_id,
find_element_by_css_selector,
wait_for_user_alert_to_disapear)
@@ -37,12 +36,11 @@ def expand_side_nav(context):
if is_side_nav_expanded(context):
return
- toggle = find_element_by_class_name(context, 'side-nav-toggle')
- toggle.click()
+ find_element_by_css_selector(context, '.side-nav-toggle-icon i').click()
@when('I select the tag \'{tag}\'')
-def impl(context, tag):
+def select_tag(context, tag):
wait_for_user_alert_to_disapear(context)
expand_side_nav(context)
@@ -53,23 +51,14 @@ def impl(context, tag):
try:
find_element_by_css_selector(context, '#tag-%s' % tag)
- e = find_element_by_id(context, 'tag-%s' % tag)
+ e = find_element_by_css_selector(context, '#tag-%s .tag-label' % tag)
e.click()
find_element_by_css_selector(context, ".mail-list-entry__item[href*='%s']" % tag)
success = True
- except TimeoutException:
+ except (TimeoutException, StaleElementReferenceException):
pass
finally:
try_again -= 1
assert success
-
-
-@when('I am in \'{tag}\'')
-def impl(context, tag):
- expand_side_nav(context)
-
- find_element_by_css_selector(context, '#tag-%s' % tag)
- e = find_element_by_id(context, 'tag-%s' % tag)
- assert "selected" in e.get_attribute("class")