diff options
Diffstat (limited to 'actionsystemtest/lib/action_system_test')
5 files changed, 15 insertions, 109 deletions
diff --git a/actionsystemtest/lib/action_system_test/test_helper.rb b/actionsystemtest/lib/action_system_test/test_helper.rb index 9ff5746244..46a4ac466b 100644 --- a/actionsystemtest/lib/action_system_test/test_helper.rb +++ b/actionsystemtest/lib/action_system_test/test_helper.rb @@ -3,8 +3,6 @@ require "action_system_test/test_helpers" module ActionSystemTest module TestHelper # :nodoc: - include TestHelpers::Assertions - include TestHelpers::FormHelper include TestHelpers::ScreenshotHelper include Capybara::DSL diff --git a/actionsystemtest/lib/action_system_test/test_helpers.rb b/actionsystemtest/lib/action_system_test/test_helpers.rb index 10ddeff92f..bc0e015874 100644 --- a/actionsystemtest/lib/action_system_test/test_helpers.rb +++ b/actionsystemtest/lib/action_system_test/test_helpers.rb @@ -2,8 +2,6 @@ module ActionSystemTest module TestHelpers extend ActiveSupport::Autoload - autoload :Assertions - autoload :FormHelper autoload :ScreenshotHelper end end diff --git a/actionsystemtest/lib/action_system_test/test_helpers/assertions.rb b/actionsystemtest/lib/action_system_test/test_helpers/assertions.rb deleted file mode 100644 index edc8dbaa7f..0000000000 --- a/actionsystemtest/lib/action_system_test/test_helpers/assertions.rb +++ /dev/null @@ -1,40 +0,0 @@ -module ActionSystemTest - module TestHelpers - # Assertions for system testing that aren't included by default in Capybara. - # These are assertions that are useful specifically for Rails applications. - module Assertions - # Asserts that all of the provided selectors are present on the given page. - # - # assert_all_of_selectors('p', 'td') - def assert_all_of_selectors(*items) - options = items.extract_options! - type = type_for_selector(items) - - items.each do |item| - assert_selector type, item, options - end - end - - # Asserts that none of the provided selectors are present on the page. - # - # assert_none_of_selectors('ul', 'ol') - def assert_none_of_selectors(*items) - options = items.extract_options! - type = type_for_selector(items) - - items.each do |item| - assert_no_selector type, item, options - end - end - - private - def type_for_selector(*items) - if items.first.is_a?(Symbol) - items.shift - else - Capybara.default_selector - end - end - end - end -end diff --git a/actionsystemtest/lib/action_system_test/test_helpers/form_helper.rb b/actionsystemtest/lib/action_system_test/test_helpers/form_helper.rb deleted file mode 100644 index 3c65c23f6d..0000000000 --- a/actionsystemtest/lib/action_system_test/test_helpers/form_helper.rb +++ /dev/null @@ -1,58 +0,0 @@ -module ActionSystemTest - module TestHelpers - # Form helpers for system testing that aren't included by default in - # Capybara. - module FormHelper - # Finds all provided fields or text areas and fills in with supplied values. - # - # fill_in_all_fields('Name' => 'Eileen', 'Job Title' => 'Programmer') - def fill_in_all_fields(fields) - fields.each do |name, value| - fill_in name, with: value - end - end - - # Locates a checkbox that is present inside a label and checks it. When - # using styled boxes Selenium may not be able to see the checkbox. This - # form helper looks inside the checkbox and clicks the label instead of - # setting the value of the checkbox. - # - # click_checkbox_label 'Admin' - # - # By default +click_checkbox_label+ looks for checkboxes that are not - # checked by default. To locate an already checked box and uncheck it - # set checked to true: - # - # click_checkbox_label 'Admin', checked: true - def click_checkbox_label(name, checked: false) - field = find_checkbox(name, checked) - label = find_label_wrapper(field) - label.click - end - - # In lieu of locating a button and calling +click_on+, +press_enter+ will - # submit the form via enter. This method will only work for drivers that - # load a browser like Selenium. - # - # test 'Adding a User' do - # fill_in 'Name', with: 'Arya' - # - # press_enter - # - # assert_text 'Arya' - # end - def press_enter - page.driver.browser.action.send_keys(:enter).perform - end - - private - def find_checkbox(name, checked) - find(:field, name, visible: :all, checked: checked) - end - - def find_label_wrapper(field, location: "./ancestor::label") - field.find :xpath, location - end - end - end -end diff --git a/actionsystemtest/lib/action_system_test/test_helpers/screenshot_helper.rb b/actionsystemtest/lib/action_system_test/test_helpers/screenshot_helper.rb index 1b198b9b29..d4d0d79e95 100644 --- a/actionsystemtest/lib/action_system_test/test_helpers/screenshot_helper.rb +++ b/actionsystemtest/lib/action_system_test/test_helpers/screenshot_helper.rb @@ -13,24 +13,32 @@ module ActionSystemTest # ActionSystemTest.driver.supports_screenshots? # => true def take_screenshot + save_image puts "[Screenshot]: #{image_path}" - puts find_image + puts display_image end - # Takes a screenshot only if the test failed. This is included - # by default in +teardown+ of system test. + # Takes a screenshot of the current page in the browser if the test + # failed. + # + # +take_screenshot+ is included in <tt>system_test_helper.rb</tt> that is + # generated with the application. To take screenshots when a test fails + # add +take_failed_screenshot+ to the teardown block before clearing any + # sessions. def take_failed_screenshot take_screenshot unless passed? end private def image_path - path = "tmp/screenshots/failures_#{method_name}.png" - page.save_screenshot(Rails.root.join(path)) - path + "tmp/screenshots/failures_#{method_name}.png" + end + + def save_image + page.save_screenshot(Rails.root.join(image_path)) end - def find_image + def display_image if ENV["CAPYBARA_INLINE_SCREENSHOT"] == "artifact" "\e]1338;url=artifact://#{image_path}\a" else |