capybara 2.7.0 → 3.35.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.yardopts +1 -0
- data/History.md +1147 -11
- data/License.txt +1 -1
- data/README.md +252 -131
- data/lib/capybara/config.rb +92 -0
- data/lib/capybara/cucumber.rb +3 -3
- data/lib/capybara/driver/base.rb +52 -21
- data/lib/capybara/driver/node.rb +48 -14
- data/lib/capybara/dsl.rb +16 -9
- data/lib/capybara/helpers.rb +72 -81
- data/lib/capybara/minitest/spec.rb +267 -0
- data/lib/capybara/minitest.rb +385 -0
- data/lib/capybara/node/actions.rb +337 -89
- data/lib/capybara/node/base.rb +50 -32
- data/lib/capybara/node/document.rb +19 -3
- data/lib/capybara/node/document_matchers.rb +22 -24
- data/lib/capybara/node/element.rb +388 -125
- data/lib/capybara/node/finders.rb +231 -121
- data/lib/capybara/node/matchers.rb +503 -217
- data/lib/capybara/node/simple.rb +64 -27
- data/lib/capybara/queries/ancestor_query.rb +27 -0
- data/lib/capybara/queries/base_query.rb +87 -11
- data/lib/capybara/queries/current_path_query.rb +24 -24
- data/lib/capybara/queries/match_query.rb +15 -10
- data/lib/capybara/queries/selector_query.rb +675 -81
- data/lib/capybara/queries/sibling_query.rb +26 -0
- data/lib/capybara/queries/style_query.rb +45 -0
- data/lib/capybara/queries/text_query.rb +88 -20
- data/lib/capybara/queries/title_query.rb +9 -11
- data/lib/capybara/rack_test/browser.rb +63 -39
- data/lib/capybara/rack_test/css_handlers.rb +6 -4
- data/lib/capybara/rack_test/driver.rb +26 -16
- data/lib/capybara/rack_test/errors.rb +6 -0
- data/lib/capybara/rack_test/form.rb +73 -58
- data/lib/capybara/rack_test/node.rb +187 -67
- data/lib/capybara/rails.rb +4 -8
- data/lib/capybara/registration_container.rb +44 -0
- data/lib/capybara/registrations/drivers.rb +42 -0
- data/lib/capybara/registrations/patches/puma_ssl.rb +29 -0
- data/lib/capybara/registrations/servers.rb +45 -0
- data/lib/capybara/result.rb +142 -14
- data/lib/capybara/rspec/features.rb +17 -42
- data/lib/capybara/rspec/matcher_proxies.rb +82 -0
- data/lib/capybara/rspec/matchers/base.rb +111 -0
- data/lib/capybara/rspec/matchers/become_closed.rb +33 -0
- data/lib/capybara/rspec/matchers/compound.rb +88 -0
- data/lib/capybara/rspec/matchers/count_sugar.rb +37 -0
- data/lib/capybara/rspec/matchers/have_ancestor.rb +28 -0
- data/lib/capybara/rspec/matchers/have_current_path.rb +29 -0
- data/lib/capybara/rspec/matchers/have_selector.rb +77 -0
- data/lib/capybara/rspec/matchers/have_sibling.rb +27 -0
- data/lib/capybara/rspec/matchers/have_text.rb +33 -0
- data/lib/capybara/rspec/matchers/have_title.rb +29 -0
- data/lib/capybara/rspec/matchers/match_selector.rb +27 -0
- data/lib/capybara/rspec/matchers/match_style.rb +43 -0
- data/lib/capybara/rspec/matchers/spatial_sugar.rb +39 -0
- data/lib/capybara/rspec/matchers.rb +143 -244
- data/lib/capybara/rspec.rb +10 -12
- data/lib/capybara/selector/builders/css_builder.rb +84 -0
- data/lib/capybara/selector/builders/xpath_builder.rb +71 -0
- data/lib/capybara/selector/css.rb +102 -0
- data/lib/capybara/selector/definition/button.rb +63 -0
- data/lib/capybara/selector/definition/checkbox.rb +26 -0
- data/lib/capybara/selector/definition/css.rb +10 -0
- data/lib/capybara/selector/definition/datalist_input.rb +35 -0
- data/lib/capybara/selector/definition/datalist_option.rb +25 -0
- data/lib/capybara/selector/definition/element.rb +28 -0
- data/lib/capybara/selector/definition/field.rb +40 -0
- data/lib/capybara/selector/definition/fieldset.rb +14 -0
- data/lib/capybara/selector/definition/file_field.rb +13 -0
- data/lib/capybara/selector/definition/fillable_field.rb +33 -0
- data/lib/capybara/selector/definition/frame.rb +17 -0
- data/lib/capybara/selector/definition/id.rb +6 -0
- data/lib/capybara/selector/definition/label.rb +62 -0
- data/lib/capybara/selector/definition/link.rb +54 -0
- data/lib/capybara/selector/definition/link_or_button.rb +16 -0
- data/lib/capybara/selector/definition/option.rb +27 -0
- data/lib/capybara/selector/definition/radio_button.rb +27 -0
- data/lib/capybara/selector/definition/select.rb +81 -0
- data/lib/capybara/selector/definition/table.rb +109 -0
- data/lib/capybara/selector/definition/table_row.rb +21 -0
- data/lib/capybara/selector/definition/xpath.rb +5 -0
- data/lib/capybara/selector/definition.rb +278 -0
- data/lib/capybara/selector/filter.rb +3 -46
- data/lib/capybara/selector/filter_set.rb +124 -0
- data/lib/capybara/selector/filters/base.rb +77 -0
- data/lib/capybara/selector/filters/expression_filter.rb +22 -0
- data/lib/capybara/selector/filters/locator_filter.rb +29 -0
- data/lib/capybara/selector/filters/node_filter.rb +31 -0
- data/lib/capybara/selector/regexp_disassembler.rb +214 -0
- data/lib/capybara/selector/selector.rb +155 -0
- data/lib/capybara/selector/xpath_extensions.rb +17 -0
- data/lib/capybara/selector.rb +232 -369
- data/lib/capybara/selenium/atoms/getAttribute.min.js +1 -0
- data/lib/capybara/selenium/atoms/isDisplayed.min.js +1 -0
- data/lib/capybara/selenium/atoms/src/getAttribute.js +161 -0
- data/lib/capybara/selenium/atoms/src/isDisplayed.js +454 -0
- data/lib/capybara/selenium/driver.rb +380 -142
- data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +117 -0
- data/lib/capybara/selenium/driver_specializations/edge_driver.rb +124 -0
- data/lib/capybara/selenium/driver_specializations/firefox_driver.rb +89 -0
- data/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +26 -0
- data/lib/capybara/selenium/driver_specializations/safari_driver.rb +24 -0
- data/lib/capybara/selenium/extensions/file_input_click_emulation.rb +34 -0
- data/lib/capybara/selenium/extensions/find.rb +110 -0
- data/lib/capybara/selenium/extensions/html5_drag.rb +228 -0
- data/lib/capybara/selenium/extensions/modifier_keys_stack.rb +28 -0
- data/lib/capybara/selenium/extensions/scroll.rb +76 -0
- data/lib/capybara/selenium/logger_suppressor.rb +40 -0
- data/lib/capybara/selenium/node.rb +528 -97
- data/lib/capybara/selenium/nodes/chrome_node.rb +137 -0
- data/lib/capybara/selenium/nodes/edge_node.rb +104 -0
- data/lib/capybara/selenium/nodes/firefox_node.rb +136 -0
- data/lib/capybara/selenium/nodes/ie_node.rb +22 -0
- data/lib/capybara/selenium/nodes/safari_node.rb +118 -0
- data/lib/capybara/selenium/patches/action_pauser.rb +26 -0
- data/lib/capybara/selenium/patches/atoms.rb +18 -0
- data/lib/capybara/selenium/patches/is_displayed.rb +16 -0
- data/lib/capybara/selenium/patches/logs.rb +45 -0
- data/lib/capybara/selenium/patches/pause_duration_fix.rb +9 -0
- data/lib/capybara/selenium/patches/persistent_client.rb +20 -0
- data/lib/capybara/server/animation_disabler.rb +63 -0
- data/lib/capybara/server/checker.rb +44 -0
- data/lib/capybara/server/middleware.rb +71 -0
- data/lib/capybara/server.rb +74 -71
- data/lib/capybara/session/config.rb +126 -0
- data/lib/capybara/session/matchers.rb +44 -27
- data/lib/capybara/session.rb +500 -297
- data/lib/capybara/spec/fixtures/no_extension +1 -0
- data/lib/capybara/spec/public/jquery.js +5 -5
- data/lib/capybara/spec/public/offset.js +6 -0
- data/lib/capybara/spec/public/test.js +168 -14
- data/lib/capybara/spec/session/accept_alert_spec.rb +37 -14
- data/lib/capybara/spec/session/accept_confirm_spec.rb +7 -6
- data/lib/capybara/spec/session/accept_prompt_spec.rb +38 -10
- data/lib/capybara/spec/session/all_spec.rb +179 -59
- data/lib/capybara/spec/session/ancestor_spec.rb +88 -0
- data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +140 -0
- data/lib/capybara/spec/session/assert_current_path_spec.rb +75 -0
- data/lib/capybara/spec/session/assert_selector_spec.rb +143 -0
- data/lib/capybara/spec/session/assert_style_spec.rb +26 -0
- data/lib/capybara/spec/session/assert_text_spec.rb +258 -0
- data/lib/capybara/spec/session/assert_title_spec.rb +93 -0
- data/lib/capybara/spec/session/attach_file_spec.rb +154 -48
- data/lib/capybara/spec/session/body_spec.rb +12 -13
- data/lib/capybara/spec/session/check_spec.rb +168 -41
- data/lib/capybara/spec/session/choose_spec.rb +75 -23
- data/lib/capybara/spec/session/click_button_spec.rb +243 -175
- data/lib/capybara/spec/session/click_link_or_button_spec.rb +57 -32
- data/lib/capybara/spec/session/click_link_spec.rb +100 -53
- data/lib/capybara/spec/session/current_scope_spec.rb +11 -10
- data/lib/capybara/spec/session/current_url_spec.rb +61 -35
- data/lib/capybara/spec/session/dismiss_confirm_spec.rb +7 -7
- data/lib/capybara/spec/session/dismiss_prompt_spec.rb +5 -4
- data/lib/capybara/spec/session/element/{assert_match_selector.rb → assert_match_selector_spec.rb} +13 -6
- data/lib/capybara/spec/session/element/match_css_spec.rb +21 -7
- data/lib/capybara/spec/session/element/match_xpath_spec.rb +9 -7
- data/lib/capybara/spec/session/element/matches_selector_spec.rb +91 -34
- data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
- data/lib/capybara/spec/session/evaluate_script_spec.rb +45 -3
- data/lib/capybara/spec/session/execute_script_spec.rb +24 -4
- data/lib/capybara/spec/session/fill_in_spec.rb +166 -64
- data/lib/capybara/spec/session/find_button_spec.rb +37 -18
- data/lib/capybara/spec/session/find_by_id_spec.rb +10 -9
- data/lib/capybara/spec/session/find_field_spec.rb +57 -34
- data/lib/capybara/spec/session/find_link_spec.rb +47 -10
- data/lib/capybara/spec/session/find_spec.rb +290 -144
- data/lib/capybara/spec/session/first_spec.rb +91 -48
- data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
- data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +116 -0
- data/lib/capybara/spec/session/frame/within_frame_spec.rb +112 -0
- data/lib/capybara/spec/session/go_back_spec.rb +3 -2
- data/lib/capybara/spec/session/go_forward_spec.rb +3 -2
- data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
- data/lib/capybara/spec/session/has_ancestor_spec.rb +46 -0
- data/lib/capybara/spec/session/has_any_selectors_spec.rb +25 -0
- data/lib/capybara/spec/session/has_button_spec.rb +76 -19
- data/lib/capybara/spec/session/has_css_spec.rb +277 -131
- data/lib/capybara/spec/session/has_current_path_spec.rb +98 -26
- data/lib/capybara/spec/session/has_field_spec.rb +177 -107
- data/lib/capybara/spec/session/has_link_spec.rb +13 -12
- data/lib/capybara/spec/session/has_none_selectors_spec.rb +78 -0
- data/lib/capybara/spec/session/has_select_spec.rb +191 -95
- data/lib/capybara/spec/session/has_selector_spec.rb +128 -64
- data/lib/capybara/spec/session/has_sibling_spec.rb +50 -0
- data/lib/capybara/spec/session/has_table_spec.rb +172 -5
- data/lib/capybara/spec/session/has_text_spec.rb +126 -60
- data/lib/capybara/spec/session/has_title_spec.rb +35 -12
- data/lib/capybara/spec/session/has_xpath_spec.rb +74 -53
- data/lib/capybara/spec/session/{headers.rb → headers_spec.rb} +3 -2
- data/lib/capybara/spec/session/html_spec.rb +14 -6
- data/lib/capybara/spec/session/matches_style_spec.rb +35 -0
- data/lib/capybara/spec/session/node_spec.rb +1028 -131
- data/lib/capybara/spec/session/node_wrapper_spec.rb +39 -0
- data/lib/capybara/spec/session/refresh_spec.rb +34 -0
- data/lib/capybara/spec/session/reset_session_spec.rb +75 -34
- data/lib/capybara/spec/session/{response_code.rb → response_code_spec.rb} +2 -1
- data/lib/capybara/spec/session/save_and_open_page_spec.rb +3 -2
- data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +11 -15
- data/lib/capybara/spec/session/save_page_spec.rb +42 -55
- data/lib/capybara/spec/session/save_screenshot_spec.rb +16 -14
- data/lib/capybara/spec/session/screenshot_spec.rb +2 -2
- data/lib/capybara/spec/session/scroll_spec.rb +117 -0
- data/lib/capybara/spec/session/select_spec.rb +112 -85
- data/lib/capybara/spec/session/selectors_spec.rb +71 -8
- data/lib/capybara/spec/session/sibling_spec.rb +52 -0
- data/lib/capybara/spec/session/text_spec.rb +38 -23
- data/lib/capybara/spec/session/title_spec.rb +17 -5
- data/lib/capybara/spec/session/uncheck_spec.rb +71 -12
- data/lib/capybara/spec/session/unselect_spec.rb +44 -43
- data/lib/capybara/spec/session/visit_spec.rb +99 -32
- data/lib/capybara/spec/session/window/become_closed_spec.rb +33 -29
- data/lib/capybara/spec/session/window/current_window_spec.rb +5 -3
- data/lib/capybara/spec/session/window/open_new_window_spec.rb +5 -3
- data/lib/capybara/spec/session/window/switch_to_window_spec.rb +39 -30
- data/lib/capybara/spec/session/window/window_opened_by_spec.rb +17 -10
- data/lib/capybara/spec/session/window/window_spec.rb +121 -73
- data/lib/capybara/spec/session/window/windows_spec.rb +12 -10
- data/lib/capybara/spec/session/window/within_window_spec.rb +52 -82
- data/lib/capybara/spec/session/within_spec.rb +76 -43
- data/lib/capybara/spec/spec_helper.rb +67 -33
- data/lib/capybara/spec/test_app.rb +85 -36
- data/lib/capybara/spec/views/animated.erb +49 -0
- data/lib/capybara/spec/views/buttons.erb +1 -1
- data/lib/capybara/spec/views/fieldsets.erb +1 -1
- data/lib/capybara/spec/views/form.erb +227 -20
- data/lib/capybara/spec/views/frame_child.erb +10 -2
- data/lib/capybara/spec/views/frame_one.erb +2 -1
- data/lib/capybara/spec/views/frame_parent.erb +2 -2
- data/lib/capybara/spec/views/frame_two.erb +1 -1
- data/lib/capybara/spec/views/header_links.erb +1 -1
- data/lib/capybara/spec/views/host_links.erb +1 -1
- data/lib/capybara/spec/views/initial_alert.erb +10 -0
- data/lib/capybara/spec/views/obscured.erb +47 -0
- data/lib/capybara/spec/views/offset.erb +32 -0
- data/lib/capybara/spec/views/path.erb +1 -1
- data/lib/capybara/spec/views/popup_one.erb +1 -1
- data/lib/capybara/spec/views/popup_two.erb +1 -1
- data/lib/capybara/spec/views/postback.erb +1 -1
- data/lib/capybara/spec/views/react.erb +45 -0
- data/lib/capybara/spec/views/scroll.erb +20 -0
- data/lib/capybara/spec/views/spatial.erb +31 -0
- data/lib/capybara/spec/views/tables.erb +69 -2
- data/lib/capybara/spec/views/with_animation.erb +82 -0
- data/lib/capybara/spec/views/with_base_tag.erb +1 -1
- data/lib/capybara/spec/views/with_count.erb +1 -1
- data/lib/capybara/spec/views/with_dragula.erb +24 -0
- data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
- data/lib/capybara/spec/views/with_hover.erb +7 -1
- data/lib/capybara/spec/views/with_hover1.erb +10 -0
- data/lib/capybara/spec/views/with_html.erb +100 -10
- data/lib/capybara/spec/views/with_html5_svg.erb +20 -0
- data/lib/capybara/spec/views/with_html_entities.erb +1 -1
- data/lib/capybara/spec/views/with_jquery_animation.erb +24 -0
- data/lib/capybara/spec/views/with_js.erb +49 -3
- data/lib/capybara/spec/views/with_jstree.erb +26 -0
- data/lib/capybara/spec/views/with_namespace.erb +20 -0
- data/lib/capybara/spec/views/with_scope.erb +1 -1
- data/lib/capybara/spec/views/with_scope_other.erb +6 -0
- data/lib/capybara/spec/views/with_simple_html.erb +1 -1
- data/lib/capybara/spec/views/with_sortable_js.erb +21 -0
- data/lib/capybara/spec/views/with_title.erb +1 -1
- data/lib/capybara/spec/views/with_unload_alert.erb +3 -1
- data/lib/capybara/spec/views/with_windows.erb +7 -1
- data/lib/capybara/spec/views/within_frames.erb +6 -3
- data/lib/capybara/version.rb +2 -1
- data/lib/capybara/window.rb +39 -21
- data/lib/capybara.rb +208 -186
- data/spec/basic_node_spec.rb +52 -39
- data/spec/capybara_spec.rb +72 -50
- data/spec/css_builder_spec.rb +101 -0
- data/spec/css_splitter_spec.rb +38 -0
- data/spec/dsl_spec.rb +81 -61
- data/spec/filter_set_spec.rb +46 -0
- data/spec/fixtures/capybara.csv +1 -0
- data/spec/fixtures/certificate.pem +25 -0
- data/spec/fixtures/key.pem +27 -0
- data/spec/fixtures/selenium_driver_rspec_failure.rb +7 -3
- data/spec/fixtures/selenium_driver_rspec_success.rb +7 -3
- data/spec/minitest_spec.rb +164 -0
- data/spec/minitest_spec_spec.rb +162 -0
- data/spec/per_session_config_spec.rb +68 -0
- data/spec/rack_test_spec.rb +189 -96
- data/spec/regexp_dissassembler_spec.rb +250 -0
- data/spec/result_spec.rb +143 -13
- data/spec/rspec/features_spec.rb +38 -32
- data/spec/rspec/scenarios_spec.rb +9 -7
- data/spec/rspec/shared_spec_matchers.rb +959 -0
- data/spec/rspec/views_spec.rb +9 -3
- data/spec/rspec_matchers_spec.rb +62 -0
- data/spec/rspec_spec.rb +127 -30
- data/spec/sauce_spec_chrome.rb +43 -0
- data/spec/selector_spec.rb +458 -37
- data/spec/selenium_spec_chrome.rb +196 -9
- data/spec/selenium_spec_chrome_remote.rb +100 -0
- data/spec/selenium_spec_edge.rb +47 -0
- data/spec/selenium_spec_firefox.rb +210 -0
- data/spec/selenium_spec_firefox_remote.rb +80 -0
- data/spec/selenium_spec_ie.rb +150 -0
- data/spec/selenium_spec_safari.rb +148 -0
- data/spec/server_spec.rb +200 -101
- data/spec/session_spec.rb +91 -0
- data/spec/shared_selenium_node.rb +83 -0
- data/spec/shared_selenium_session.rb +558 -0
- data/spec/spec_helper.rb +94 -2
- data/spec/xpath_builder_spec.rb +93 -0
- metadata +420 -60
- data/lib/capybara/query.rb +0 -7
- data/lib/capybara/spec/session/assert_current_path.rb +0 -60
- data/lib/capybara/spec/session/assert_selector.rb +0 -148
- data/lib/capybara/spec/session/assert_text.rb +0 -196
- data/lib/capybara/spec/session/assert_title.rb +0 -70
- data/lib/capybara/spec/session/source_spec.rb +0 -0
- data/lib/capybara/spec/session/within_frame_spec.rb +0 -53
- data/spec/rspec/matchers_spec.rb +0 -827
- data/spec/selenium_spec.rb +0 -151
data/lib/capybara/query.rb
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
require 'capybara/queries/selector_query'
|
|
3
|
-
module Capybara
|
|
4
|
-
# @deprecated This class and its methods are not supposed to be used by users of Capybara's public API.
|
|
5
|
-
# It may be removed in future versions of Capybara.
|
|
6
|
-
Query = Queries::SelectorQuery
|
|
7
|
-
end
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
Capybara::SpecHelper.spec '#assert_current_path' do
|
|
3
|
-
before do
|
|
4
|
-
@session.visit('/with_js')
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
it "should not raise if the page has the given current path" do
|
|
8
|
-
expect {@session.assert_current_path('/with_js')}.not_to raise_error
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it "should allow regexp matches" do
|
|
12
|
-
expect { @session.assert_current_path(/w[a-z]{3}_js/) }.not_to raise_error
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should wait for current_path", :requires => [:js] do
|
|
16
|
-
@session.click_link("Change page")
|
|
17
|
-
expect { @session.assert_current_path("/with_html") }.not_to raise_error
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
it "should raise if the page has not the given current_path" do
|
|
21
|
-
expect{@session.assert_current_path('/with_html')}.to raise_error(Capybara::ExpectationNotMet, 'expected "/with_js" to equal "/with_html"')
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it "should check query options" do
|
|
25
|
-
@session.visit('/with_js?test=test')
|
|
26
|
-
expect{@session.assert_current_path('/with_js?test=test')}.not_to raise_error
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "should compare the full url" do
|
|
30
|
-
expect{@session.assert_current_path(%r{\Ahttp://[^/]*/with_js\Z}, url: true)}.not_to raise_error
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should ignore the query" do
|
|
34
|
-
@session.visit('/with_js?test=test')
|
|
35
|
-
expect{@session.assert_current_path('/with_js', only_path: true)}.not_to raise_error
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
Capybara::SpecHelper.spec '#assert_no_current_path?' do
|
|
40
|
-
before do
|
|
41
|
-
@session.visit('/with_js')
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it "should raise if the page has the given current_path" do
|
|
45
|
-
expect{@session.assert_no_current_path('/with_js')}.to raise_error(Capybara::ExpectationNotMet)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it "should allow regexp matches" do
|
|
49
|
-
expect{@session.assert_no_current_path(/monkey/)}.not_to raise_error
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "should wait for current_path to disappear", :requires => [:js] do
|
|
53
|
-
@session.click_link("Change page")
|
|
54
|
-
expect{@session.assert_no_current_path('/with_js')}.not_to raise_error
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should not raise if the page has not the given current_path" do
|
|
58
|
-
expect{@session.assert_no_current_path('/with_html')}.not_to raise_error
|
|
59
|
-
end
|
|
60
|
-
end
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
Capybara::SpecHelper.spec '#assert_selector' do
|
|
3
|
-
before do
|
|
4
|
-
@session.visit('/with_html')
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
it "should be true if the given selector is on the page" do
|
|
8
|
-
@session.assert_selector(:xpath, "//p")
|
|
9
|
-
@session.assert_selector(:css, "p a#foo")
|
|
10
|
-
@session.assert_selector("//p[contains(.,'est')]")
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should be false if the given selector is not on the page" do
|
|
14
|
-
expect { @session.assert_selector(:xpath, "//abbr") }.to raise_error(Capybara::ElementNotFound)
|
|
15
|
-
expect { @session.assert_selector(:css, "p a#doesnotexist") }.to raise_error(Capybara::ElementNotFound)
|
|
16
|
-
expect { @session.assert_selector("//p[contains(.,'thisstringisnotonpage')]") }.to raise_error(Capybara::ElementNotFound)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "should use default selector" do
|
|
20
|
-
Capybara.default_selector = :css
|
|
21
|
-
expect { @session.assert_selector("p a#doesnotexist") }.to raise_error(Capybara::ElementNotFound)
|
|
22
|
-
@session.assert_selector("p a#foo")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it "should respect scopes" do
|
|
26
|
-
@session.within "//p[@id='first']" do
|
|
27
|
-
@session.assert_selector(".//a[@id='foo']")
|
|
28
|
-
expect { @session.assert_selector(".//a[@id='red']") }.to raise_error(Capybara::ElementNotFound)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
context "with count" do
|
|
33
|
-
it "should be true if the content is on the page the given number of times" do
|
|
34
|
-
@session.assert_selector("//p", :count => 3)
|
|
35
|
-
@session.assert_selector("//p//a[@id='foo']", :count => 1)
|
|
36
|
-
@session.assert_selector("//p[contains(.,'est')]", :count => 1)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it "should be false if the content is on the page the given number of times" do
|
|
40
|
-
expect { @session.assert_selector("//p", :count => 6) }.to raise_error(Capybara::ElementNotFound)
|
|
41
|
-
expect { @session.assert_selector("//p//a[@id='foo']", :count => 2) }.to raise_error(Capybara::ElementNotFound)
|
|
42
|
-
expect { @session.assert_selector("//p[contains(.,'est')]", :count => 5) }.to raise_error(Capybara::ElementNotFound)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "should be false if the content isn't on the page at all" do
|
|
46
|
-
expect { @session.assert_selector("//abbr", :count => 2) }.to raise_error(Capybara::ElementNotFound)
|
|
47
|
-
expect { @session.assert_selector("//p//a[@id='doesnotexist']", :count => 1) }.to raise_error(Capybara::ElementNotFound)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
context "with text" do
|
|
52
|
-
it "should discard all matches where the given string is not contained" do
|
|
53
|
-
@session.assert_selector("//p//a", :text => "Redirect", :count => 1)
|
|
54
|
-
expect { @session.assert_selector("//p", :text => "Doesnotexist") }.to raise_error(Capybara::ElementNotFound)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should discard all matches where the given regexp is not matched" do
|
|
58
|
-
@session.assert_selector("//p//a", :text => /re[dab]i/i, :count => 1)
|
|
59
|
-
expect { @session.assert_selector("//p//a", :text => /Red$/) }.to raise_error(Capybara::ElementNotFound)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
context "with wait", :requires => [:js] do
|
|
64
|
-
it "should find element if it appears before given wait duration" do
|
|
65
|
-
Capybara.using_wait_time(0.1) do
|
|
66
|
-
@session.visit('/with_js')
|
|
67
|
-
@session.click_link('Click me')
|
|
68
|
-
@session.assert_selector(:css, "a#has-been-clicked", :text => "Has been clicked", :wait => 0.9)
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
Capybara::SpecHelper.spec '#refute_selector' do
|
|
75
|
-
it "should be an alias of #assert_no_selector" do
|
|
76
|
-
expect(Capybara::Node::Matchers.instance_method(:refute_selector)).to eq Capybara::Node::Matchers.instance_method(:assert_no_selector)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
Capybara::SpecHelper.spec '#assert_no_selector' do
|
|
81
|
-
before do
|
|
82
|
-
@session.visit('/with_html')
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
it "should be false if the given selector is on the page" do
|
|
86
|
-
expect { @session.assert_no_selector(:xpath, "//p") }.to raise_error(Capybara::ElementNotFound)
|
|
87
|
-
expect { @session.assert_no_selector(:css, "p a#foo") }.to raise_error(Capybara::ElementNotFound)
|
|
88
|
-
expect { @session.assert_no_selector("//p[contains(.,'est')]") }.to raise_error(Capybara::ElementNotFound)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it "should be true if the given selector is not on the page" do
|
|
92
|
-
@session.assert_no_selector(:xpath, "//abbr")
|
|
93
|
-
@session.assert_no_selector(:css, "p a#doesnotexist")
|
|
94
|
-
@session.assert_no_selector("//p[contains(.,'thisstringisnotonpage')]")
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
it "should use default selector" do
|
|
98
|
-
Capybara.default_selector = :css
|
|
99
|
-
@session.assert_no_selector("p a#doesnotexist")
|
|
100
|
-
expect { @session.assert_no_selector("p a#foo") }.to raise_error(Capybara::ElementNotFound)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
it "should respect scopes" do
|
|
104
|
-
@session.within "//p[@id='first']" do
|
|
105
|
-
expect { @session.assert_no_selector(".//a[@id='foo']") }.to raise_error(Capybara::ElementNotFound)
|
|
106
|
-
@session.assert_no_selector(".//a[@id='red']")
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
context "with count" do
|
|
111
|
-
it "should be false if the content is on the page the given number of times" do
|
|
112
|
-
expect { @session.assert_no_selector("//p", :count => 3) }.to raise_error(Capybara::ElementNotFound)
|
|
113
|
-
expect { @session.assert_no_selector("//p//a[@id='foo']", :count => 1) }.to raise_error(Capybara::ElementNotFound)
|
|
114
|
-
expect { @session.assert_no_selector("//p[contains(.,'est')]", :count => 1) }.to raise_error(Capybara::ElementNotFound)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
it "should be true if the content is on the page the wrong number of times" do
|
|
118
|
-
@session.assert_no_selector("//p", :count => 6)
|
|
119
|
-
@session.assert_no_selector("//p//a[@id='foo']", :count => 2)
|
|
120
|
-
@session.assert_no_selector("//p[contains(.,'est')]", :count => 5)
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
it "should be true if the content isn't on the page at all" do
|
|
124
|
-
@session.assert_no_selector("//abbr", :count => 2)
|
|
125
|
-
@session.assert_no_selector("//p//a[@id='doesnotexist']", :count => 1)
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
context "with text" do
|
|
130
|
-
it "should discard all matches where the given string is contained" do
|
|
131
|
-
expect { @session.assert_no_selector("//p//a", :text => "Redirect", :count => 1) }.to raise_error(Capybara::ElementNotFound)
|
|
132
|
-
@session.assert_no_selector("//p", :text => "Doesnotexist")
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
it "should discard all matches where the given regexp is matched" do
|
|
136
|
-
expect { @session.assert_no_selector("//p//a", :text => /re[dab]i/i, :count => 1) }.to raise_error(Capybara::ElementNotFound)
|
|
137
|
-
@session.assert_no_selector("//p//a", :text => /Red$/)
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
context "with wait", :requires => [:js] do
|
|
142
|
-
it "should not find element if it appears after given wait duration" do
|
|
143
|
-
@session.visit('/with_js')
|
|
144
|
-
@session.click_link('Click me')
|
|
145
|
-
@session.assert_no_selector(:css, "a#has-been-clicked", :text => "Has been clicked", :wait => 0.1)
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
end
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
Capybara::SpecHelper.spec '#assert_text' do
|
|
3
|
-
it "should be true if the given text is on the page" do
|
|
4
|
-
@session.visit('/with_html')
|
|
5
|
-
expect(@session.assert_text('est')).to eq(true)
|
|
6
|
-
expect(@session.assert_text('Lorem')).to eq(true)
|
|
7
|
-
expect(@session.assert_text('Redirect')).to eq(true)
|
|
8
|
-
expect(@session.assert_text(:'Redirect')).to eq(true)
|
|
9
|
-
expect(@session.assert_text('text with whitespace')).to eq(true)
|
|
10
|
-
expect(@session.assert_text("text with \n\n whitespace")).to eq(true)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
it "should take scopes into account" do
|
|
14
|
-
@session.visit('/with_html')
|
|
15
|
-
@session.within("//a[@title='awesome title']") do
|
|
16
|
-
expect(@session.assert_text('labore')).to eq(true)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
it "should raise if scoped to an element which does not have the text" do
|
|
21
|
-
@session.visit('/with_html')
|
|
22
|
-
@session.within("//a[@title='awesome title']") do
|
|
23
|
-
expect do
|
|
24
|
-
@session.assert_text('monkey')
|
|
25
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected to find text "monkey" in "labore"')
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "should be true if :all given and text is invisible." do
|
|
30
|
-
@session.visit('/with_html')
|
|
31
|
-
expect(@session.assert_text(:all, 'Some of this text is hidden!')).to eq(true)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "should be true if `Capybara.ignore_hidden_elements = true` and text is invisible." do
|
|
35
|
-
Capybara.ignore_hidden_elements = false
|
|
36
|
-
@session.visit('/with_html')
|
|
37
|
-
expect(@session.assert_text('Some of this text is hidden!')).to eq(true)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should be true if the text in the page matches given regexp" do
|
|
41
|
-
@session.visit('/with_html')
|
|
42
|
-
expect(@session.assert_text(/Lorem/)).to eq(true)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "should be raise error if the text in the page doesn't match given regexp" do
|
|
46
|
-
@session.visit('/with_html')
|
|
47
|
-
expect do
|
|
48
|
-
@session.assert_text(/xxxxyzzz/)
|
|
49
|
-
end.to raise_error(Capybara::ExpectationNotMet, /\Aexpected to find text matching \/xxxxyzzz\/ in "This is a test Header Class(.+)"\Z/)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
it "should escape any characters that would have special meaning in a regexp" do
|
|
53
|
-
@session.visit('/with_html')
|
|
54
|
-
expect do
|
|
55
|
-
@session.assert_text('.orem')
|
|
56
|
-
end.to raise_error(Capybara::ExpectationNotMet)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it "should wait for text to appear", :requires => [:js] do
|
|
60
|
-
@session.visit('/with_js')
|
|
61
|
-
@session.click_link('Click me')
|
|
62
|
-
expect(@session.assert_text('Has been clicked')).to eq(true)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
context "with between" do
|
|
66
|
-
it "should be true if the text occurs within the range given" do
|
|
67
|
-
@session.visit('/with_count')
|
|
68
|
-
expect(@session.assert_text('count', between: 1..3)).to eq(true)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "should be false if the text occurs more or fewer times than range" do
|
|
72
|
-
@session.visit('/with_html')
|
|
73
|
-
expect do
|
|
74
|
-
@session.find(:css, '.number').assert_text(/\d/, between: 0..1)
|
|
75
|
-
end.to raise_error(Capybara::ExpectationNotMet, "expected to find text matching /\\d/ between 0 and 1 times but found 2 times in \"42\"")
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
context "with wait", :requires => [:js] do
|
|
80
|
-
it "should find element if it appears before given wait duration" do
|
|
81
|
-
Capybara.using_wait_time(0) do
|
|
82
|
-
@session.visit('/with_js')
|
|
83
|
-
@session.find(:css, '#reload-list').click
|
|
84
|
-
@session.find(:css, '#the-list').assert_text('Foo Bar', wait: 0.9)
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
it "should raise error if it appears after given wait duration" do
|
|
89
|
-
Capybara.using_wait_time(0) do
|
|
90
|
-
@session.visit('/with_js')
|
|
91
|
-
@session.find(:css, '#reload-list').click
|
|
92
|
-
el = @session.find(:css, '#the-list', visible: false)
|
|
93
|
-
expect do
|
|
94
|
-
el.assert_text(:all, 'Foo Bar', wait: 0.3)
|
|
95
|
-
end.to raise_error(Capybara::ExpectationNotMet)
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
context 'with multiple count filters' do
|
|
101
|
-
before(:each) do
|
|
102
|
-
@session.visit('/with_html')
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it 'ignores other filters when :count is specified' do
|
|
106
|
-
o = {:count => 5,
|
|
107
|
-
:minimum => 6,
|
|
108
|
-
:maximum => 0,
|
|
109
|
-
:between => 0..4}
|
|
110
|
-
expect { @session.assert_text('Header', o) }.not_to raise_error
|
|
111
|
-
end
|
|
112
|
-
context 'with no :count expectation' do
|
|
113
|
-
it 'fails if :minimum is not met' do
|
|
114
|
-
o = {:minimum => 6,
|
|
115
|
-
:maximum => 5,
|
|
116
|
-
:between => 2..7}
|
|
117
|
-
expect { @session.assert_text('Header', o) }.to raise_error(Capybara::ExpectationNotMet)
|
|
118
|
-
end
|
|
119
|
-
it 'fails if :maximum is not met' do
|
|
120
|
-
o = {:minimum => 0,
|
|
121
|
-
:maximum => 0,
|
|
122
|
-
:between => 2..7}
|
|
123
|
-
expect { @session.assert_text('Header', o) }.to raise_error(Capybara::ExpectationNotMet)
|
|
124
|
-
end
|
|
125
|
-
it 'fails if :between is not met' do
|
|
126
|
-
o = {:minimum => 0,
|
|
127
|
-
:maximum => 5,
|
|
128
|
-
:between => 0..4}
|
|
129
|
-
expect { @session.assert_text('Header', o) }.to raise_error(Capybara::ExpectationNotMet)
|
|
130
|
-
end
|
|
131
|
-
it 'succeeds if all combineable expectations are met' do
|
|
132
|
-
o = {:minimum => 0,
|
|
133
|
-
:maximum => 5,
|
|
134
|
-
:between => 2..7}
|
|
135
|
-
expect { @session.assert_text('Header', o) }.not_to raise_error
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
Capybara::SpecHelper.spec '#assert_no_text' do
|
|
142
|
-
it "should raise error if the given text is on the page at least once" do
|
|
143
|
-
@session.visit('/with_html')
|
|
144
|
-
expect do
|
|
145
|
-
@session.assert_no_text('Lorem')
|
|
146
|
-
end.to raise_error(Capybara::ExpectationNotMet, /\Aexpected not to find text "Lorem" in "This is a test Header Class.+"\Z/)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
it "should be true if scoped to an element which does not have the text" do
|
|
150
|
-
@session.visit('/with_html')
|
|
151
|
-
@session.within("//a[@title='awesome title']") do
|
|
152
|
-
expect(@session.assert_no_text('monkey')).to eq(true)
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
it "should be true if the given text is on the page but not visible" do
|
|
157
|
-
@session.visit('/with_html')
|
|
158
|
-
expect(@session.assert_no_text('Inside element with hidden ancestor')).to eq(true)
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
it "should raise error if :all given and text is invisible." do
|
|
162
|
-
@session.visit('/with_html')
|
|
163
|
-
el = @session.find(:css, '#hidden-text', visible: false)
|
|
164
|
-
expect do
|
|
165
|
-
el.assert_no_text(:all, 'Some of this text is hidden!')
|
|
166
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected not to find text "Some of this text is hidden!" in "Some of this text is hidden!"')
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
it "should be true if the text in the page doesn't match given regexp" do
|
|
170
|
-
@session.visit('/with_html')
|
|
171
|
-
@session.assert_no_text(/xxxxyzzz/)
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
context "with count" do
|
|
175
|
-
it "should be true if the text occurs within the range given" do
|
|
176
|
-
@session.visit('/with_count')
|
|
177
|
-
expect(@session.assert_text('count', count: 2)).to eq(true)
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
it "should be false if the text occurs more or fewer times than range" do
|
|
181
|
-
@session.visit('/with_html')
|
|
182
|
-
expect do
|
|
183
|
-
@session.find(:css, '.number').assert_text(/\d/, count: 1)
|
|
184
|
-
end.to raise_error(Capybara::ExpectationNotMet, "expected to find text matching /\\d/ 1 time but found 2 times in \"42\"")
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
context "with wait", :requires => [:js] do
|
|
189
|
-
it "should not find element if it appears after given wait duration" do
|
|
190
|
-
@session.visit('/with_js')
|
|
191
|
-
@session.click_link('Click me')
|
|
192
|
-
@session.find(:css, '#reload-list').click
|
|
193
|
-
@session.find(:css, '#the-list').assert_no_text('Foo Bar', :wait => 0.3)
|
|
194
|
-
end
|
|
195
|
-
end
|
|
196
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
Capybara::SpecHelper.spec '#assert_title' do
|
|
3
|
-
before do
|
|
4
|
-
@session.visit('/with_js')
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
it "should be true if the page's title contains the given string" do
|
|
8
|
-
expect(@session.assert_title('js')).to eq(true)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it "should be true when given an empty string" do
|
|
12
|
-
expect(@session.assert_title('')).to eq(true)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should allow regexp matches" do
|
|
16
|
-
expect(@session.assert_title(/w[a-z]{3}_js/)).to eq(true)
|
|
17
|
-
expect do
|
|
18
|
-
@session.assert_title(/w[a-z]{10}_js/)
|
|
19
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected "with_js" to match /w[a-z]{10}_js/')
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it "should wait for title", :requires => [:js] do
|
|
23
|
-
@session.click_link("Change title")
|
|
24
|
-
expect(@session.assert_title("changed title")).to eq(true)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "should raise error if the title doesn't contain the given string" do
|
|
28
|
-
expect do
|
|
29
|
-
@session.assert_title('monkey')
|
|
30
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected "with_js" to include "monkey"')
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should normalize given title" do
|
|
34
|
-
@session.assert_title(' with_js ')
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should normalize given title in error message" do
|
|
38
|
-
expect do
|
|
39
|
-
@session.assert_title(2)
|
|
40
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected "with_js" to include "2"')
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
Capybara::SpecHelper.spec '#assert_no_title' do
|
|
45
|
-
before do
|
|
46
|
-
@session.visit('/with_js')
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
it "should raise error if the title contains the given string" do
|
|
50
|
-
expect do
|
|
51
|
-
@session.assert_no_title('with_j')
|
|
52
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected "with_js" not to include "with_j"')
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should allow regexp matches" do
|
|
56
|
-
expect do
|
|
57
|
-
@session.assert_no_title(/w[a-z]{3}_js/)
|
|
58
|
-
end.to raise_error(Capybara::ExpectationNotMet, 'expected "with_js" not to match /w[a-z]{3}_js/')
|
|
59
|
-
@session.assert_no_title(/monkey/)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "should wait for title to disappear", :requires => [:js] do
|
|
63
|
-
@session.click_link("Change title")
|
|
64
|
-
expect(@session.assert_no_title('with_js')).to eq(true)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
it "should be true if the title doesn't contain the given string" do
|
|
68
|
-
expect(@session.assert_no_title('monkey')).to eq(true)
|
|
69
|
-
end
|
|
70
|
-
end
|