From ae6f773d4abc42dcc0eaa1c70f8af14b091f8d47 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Wed, 20 Aug 2014 17:21:20 +0200 Subject: Translated cucumber tests to behave. --- py-fake-service/features/steps/compose.py | 58 +++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 py-fake-service/features/steps/compose.py (limited to 'py-fake-service/features/steps/compose.py') diff --git a/py-fake-service/features/steps/compose.py b/py-fake-service/features/steps/compose.py new file mode 100644 index 00000000..e013ac11 --- /dev/null +++ b/py-fake-service/features/steps/compose.py @@ -0,0 +1,58 @@ +from behave import given, when +from selenium.webdriver.common.by import By +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.support.wait import WebDriverWait +from time import sleep +from common import * +from hamcrest import * + + +@given('I compose a message with') +def impl(context): + take_screenshot(context, '/tmp/screenshot.jpeg') + toggle = context.browser.find_element_by_id('compose-mails-trigger') + toggle.click() + + for row in context.table: + fill_by_xpath(context, '//*[@id="subject"]', row['subject']) + fill_by_xpath(context, '//*[@id="text-box"]', row['body']) + +@given("for the '{recipients_field}' field I type '{to_type}' and chose the first contact that shows") +def choose_impl(context, recipients_field, to_type): + browser = context.browser + browser.find_element_by_css_selector( + '#recipients-to-area span input.tt-input' + ).click() + recipients_field = recipients_field.lower() + css_selector = '#recipients-%s-area' % recipients_field + recipients_element = browser.find_element_by_css_selector(css_selector) + recipients_element.find_element_by_css_selector( + '.tt-input' + ).send_keys(to_type) + wait_until_element_is_visible_by_locator(context, (By.CLASS_NAME, 'tt-dropdown-menu')) + browser.find_element_by_css_selector('.tt-dropdown-menu div div').click() + +@then("for the '{recipients_field}' field I type '{to_type}' and chose the first contact that shows") +def choose_impl(context, recipients_field, to_type): + recipients_field = recipients_field.lower() + browser = context.browser + field = browser.find_element_by_css_selector( + '#recipients-%s-area .tt-input' % recipients_field + ) + field.send_keys(to_type) + sleep(1) + find_element_by_css_selector(context, '.tt-dropdown-menu div div').click() + +@given('I save the draft') +def save_impl(context): + context.browser.find_element_by_id('draft-button').click() + + +@when('I open the saved draft and send it') +def send_impl(context): + context.execute_steps(u"when I select the tag 'drafts'") + context.execute_steps(u"when I open the first mail in the mail list") + assert_that(is_not(page_has_css(context, '#send-button[disabled]'))) + click_button(context, 'Send') + element_should_have_content(context, '#user-alerts', 'Your message was sent!') + -- cgit v1.2.3