From f28906c1c417800f5823dc937a7671a04d14193c Mon Sep 17 00:00:00 2001 From: Duda Dornelles Date: Thu, 9 Oct 2014 12:20:18 +0200 Subject: moving fake-service features to service, getting rid of setup.py test requires and getting them into test_requirements.txt --- .../test/functional/features/steps/mail_view.py | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 service/test/functional/features/steps/mail_view.py (limited to 'service/test/functional/features/steps/mail_view.py') diff --git a/service/test/functional/features/steps/mail_view.py b/service/test/functional/features/steps/mail_view.py new file mode 100644 index 00000000..98647958 --- /dev/null +++ b/service/test/functional/features/steps/mail_view.py @@ -0,0 +1,107 @@ +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . +import re +from selenium.webdriver.common.keys import Keys +from behave import * +from common import * +from hamcrest import * +from time import sleep + + +@then('I see that the subject reads \'{subject}\'') +def impl(context, subject): + e = find_element_by_css_selector(context, '#mail-view .subject') + assert_that(e.text, equal_to(subject)) + + +@then('I see that the body reads \'{expected_body}\'') +def impl(context, expected_body): + e = find_element_by_css_selector(context, '#mail-view .bodyArea') + assert_that(e.text, equal_to(expected_body)) + + +@then('that email has the \'{tag}\' tag') +def impl(context, tag): + elements = find_elements_by_css_selector(context, '#mail-view .tagsArea .tag') + tags = [e.text for e in elements] + assert_that(tags, has_item(tag.upper())) + + +@when('I add the tag \'{tag}\' to that mail') +def impl(context, tag): + context.browser.execute_script("$('#new-tag-button').click();") + context.browser.execute_script("$('#new-tag-input').val('%s');" % tag) + e = find_element_by_css_selector(context, '#new-tag-input') + e.send_keys(Keys.ENTER) + + +@then('I reply to it') +def impl(context): + click_button(context, 'Reply') + click_button(context, 'Send') + context.reply_subject = reply_subject(context) + + +@then('I see if the mail has html content') +def impl(context): + e = find_element_by_css_selector(context, '#mail-view .bodyArea') + h2 = e.find_element_by_css_selector("h2[style*='color: #3f4944']") + assert_that(h2.text, contains_string('cborim')) + + +@when('I try to delete the first mail') +def impl(context): + context.execute_steps(u"When I open the first mail in the mail list") + find_element_by_css_selector(context, '#mail-view #view-more-actions').click() + context.browser.execute_script("$('#delete-button-top').click();") + + e = find_element_by_css_selector(context, '#user-alerts') + assert_that(e.text, equal_to('Your message was moved to trash!')) + + +@then('I choose to forward this mail') +def impl(context): + wait_until_button_is_visible(context, 'Forward') + click_button(context, 'Forward') + + +@then('I forward this mail') +def impl(context): + wait_until_button_is_visible(context, 'Send') + click_button(context, 'Send') + + +@then('I remove all tags') +def impl(context): + e = find_element_by_css_selector(context, '.tagsArea') + tags = e.find_elements_by_css_selector('.tag') + assert_that(len(tags), greater_than(0)) + for tag in tags: + tag.click() + + +@then('I choose to trash') +def impl(context): + context.browser.execute_script("$('button#view-more-actions').click()") + click_button(context, 'Trash this message', 'span') + + +@then('I see the mail has a cc and a bcc recipient') +def impl(context): + cc = find_element_by_css_selector(context, '.msg-header .cc') + bcc = find_element_by_css_selector(context, '.msg-header .bcc') + + assert_that(cc.text, matches_regexp('[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+')) -- cgit v1.2.3