mega-max-rb 0.0.1
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 +7 -0
- data/capybara-3.40.0/History.md +2043 -0
- data/capybara-3.40.0/License.txt +22 -0
- data/capybara-3.40.0/README.md +1264 -0
- data/capybara-3.40.0/lib/capybara/config.rb +104 -0
- data/capybara-3.40.0/lib/capybara/cucumber.rb +27 -0
- data/capybara-3.40.0/lib/capybara/driver/base.rb +178 -0
- data/capybara-3.40.0/lib/capybara/driver/node.rb +143 -0
- data/capybara-3.40.0/lib/capybara/dsl.rb +59 -0
- data/capybara-3.40.0/lib/capybara/helpers.rb +127 -0
- data/capybara-3.40.0/lib/capybara/minitest/spec.rb +279 -0
- data/capybara-3.40.0/lib/capybara/minitest.rb +398 -0
- data/capybara-3.40.0/lib/capybara/node/actions.rb +420 -0
- data/capybara-3.40.0/lib/capybara/node/base.rb +144 -0
- data/capybara-3.40.0/lib/capybara/node/document.rb +48 -0
- data/capybara-3.40.0/lib/capybara/node/document_matchers.rb +67 -0
- data/capybara-3.40.0/lib/capybara/node/element.rb +613 -0
- data/capybara-3.40.0/lib/capybara/node/finders.rb +335 -0
- data/capybara-3.40.0/lib/capybara/node/matchers.rb +908 -0
- data/capybara-3.40.0/lib/capybara/node/simple.rb +216 -0
- data/capybara-3.40.0/lib/capybara/node/whitespace_normalizer.rb +81 -0
- data/capybara-3.40.0/lib/capybara/queries/active_element_query.rb +18 -0
- data/capybara-3.40.0/lib/capybara/queries/ancestor_query.rb +28 -0
- data/capybara-3.40.0/lib/capybara/queries/base_query.rb +106 -0
- data/capybara-3.40.0/lib/capybara/queries/current_path_query.rb +61 -0
- data/capybara-3.40.0/lib/capybara/queries/match_query.rb +26 -0
- data/capybara-3.40.0/lib/capybara/queries/selector_query.rb +761 -0
- data/capybara-3.40.0/lib/capybara/queries/sibling_query.rb +27 -0
- data/capybara-3.40.0/lib/capybara/queries/style_query.rb +45 -0
- data/capybara-3.40.0/lib/capybara/queries/text_query.rb +116 -0
- data/capybara-3.40.0/lib/capybara/queries/title_query.rb +39 -0
- data/capybara-3.40.0/lib/capybara/rack_test/browser.rb +200 -0
- data/capybara-3.40.0/lib/capybara/rack_test/css_handlers.rb +13 -0
- data/capybara-3.40.0/lib/capybara/rack_test/driver.rb +110 -0
- data/capybara-3.40.0/lib/capybara/rack_test/errors.rb +6 -0
- data/capybara-3.40.0/lib/capybara/rack_test/form.rb +149 -0
- data/capybara-3.40.0/lib/capybara/rack_test/node.rb +324 -0
- data/capybara-3.40.0/lib/capybara/rails.rb +16 -0
- data/capybara-3.40.0/lib/capybara/registration_container.rb +41 -0
- data/capybara-3.40.0/lib/capybara/registrations/drivers.rb +42 -0
- data/capybara-3.40.0/lib/capybara/registrations/patches/puma_ssl.rb +29 -0
- data/capybara-3.40.0/lib/capybara/registrations/servers.rb +66 -0
- data/capybara-3.40.0/lib/capybara/result.rb +186 -0
- data/capybara-3.40.0/lib/capybara/rspec/features.rb +23 -0
- data/capybara-3.40.0/lib/capybara/rspec/matcher_proxies.rb +82 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/base.rb +113 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/become_closed.rb +33 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/compound.rb +88 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/count_sugar.rb +37 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_ancestor.rb +28 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_current_path.rb +29 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_selector.rb +69 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_sibling.rb +27 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_text.rb +33 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/have_title.rb +29 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/match_selector.rb +27 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/match_style.rb +43 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers/spatial_sugar.rb +39 -0
- data/capybara-3.40.0/lib/capybara/rspec/matchers.rb +207 -0
- data/capybara-3.40.0/lib/capybara/rspec.rb +31 -0
- data/capybara-3.40.0/lib/capybara/selector/builders/css_builder.rb +84 -0
- data/capybara-3.40.0/lib/capybara/selector/builders/xpath_builder.rb +71 -0
- data/capybara-3.40.0/lib/capybara/selector/css.rb +102 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/button.rb +68 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/checkbox.rb +26 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/css.rb +10 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/datalist_input.rb +35 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/datalist_option.rb +25 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/element.rb +28 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/field.rb +40 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/fieldset.rb +14 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/file_field.rb +13 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/fillable_field.rb +33 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/frame.rb +17 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/id.rb +6 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/label.rb +62 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/link.rb +55 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/link_or_button.rb +16 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/option.rb +27 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/radio_button.rb +27 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/select.rb +81 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/table.rb +109 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/table_row.rb +21 -0
- data/capybara-3.40.0/lib/capybara/selector/definition/xpath.rb +5 -0
- data/capybara-3.40.0/lib/capybara/selector/definition.rb +280 -0
- data/capybara-3.40.0/lib/capybara/selector/filter.rb +5 -0
- data/capybara-3.40.0/lib/capybara/selector/filter_set.rb +121 -0
- data/capybara-3.40.0/lib/capybara/selector/filters/base.rb +77 -0
- data/capybara-3.40.0/lib/capybara/selector/filters/expression_filter.rb +22 -0
- data/capybara-3.40.0/lib/capybara/selector/filters/locator_filter.rb +29 -0
- data/capybara-3.40.0/lib/capybara/selector/filters/node_filter.rb +31 -0
- data/capybara-3.40.0/lib/capybara/selector/regexp_disassembler.rb +211 -0
- data/capybara-3.40.0/lib/capybara/selector/selector.rb +159 -0
- data/capybara-3.40.0/lib/capybara/selector/xpath_extensions.rb +17 -0
- data/capybara-3.40.0/lib/capybara/selector.rb +494 -0
- data/capybara-3.40.0/lib/capybara/selenium/atoms/getAttribute.min.js +1 -0
- data/capybara-3.40.0/lib/capybara/selenium/atoms/isDisplayed.min.js +1 -0
- data/capybara-3.40.0/lib/capybara/selenium/atoms/src/getAttribute.js +161 -0
- data/capybara-3.40.0/lib/capybara/selenium/atoms/src/isDisplayed.js +454 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver.rb +517 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver_specializations/chrome_driver.rb +117 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver_specializations/edge_driver.rb +128 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver_specializations/firefox_driver.rb +84 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +26 -0
- data/capybara-3.40.0/lib/capybara/selenium/driver_specializations/safari_driver.rb +24 -0
- data/capybara-3.40.0/lib/capybara/selenium/extensions/file_input_click_emulation.rb +34 -0
- data/capybara-3.40.0/lib/capybara/selenium/extensions/find.rb +110 -0
- data/capybara-3.40.0/lib/capybara/selenium/extensions/html5_drag.rb +229 -0
- data/capybara-3.40.0/lib/capybara/selenium/extensions/modifier_keys_stack.rb +28 -0
- data/capybara-3.40.0/lib/capybara/selenium/extensions/scroll.rb +76 -0
- data/capybara-3.40.0/lib/capybara/selenium/node.rb +636 -0
- data/capybara-3.40.0/lib/capybara/selenium/nodes/chrome_node.rb +125 -0
- data/capybara-3.40.0/lib/capybara/selenium/nodes/edge_node.rb +110 -0
- data/capybara-3.40.0/lib/capybara/selenium/nodes/firefox_node.rb +136 -0
- data/capybara-3.40.0/lib/capybara/selenium/nodes/ie_node.rb +22 -0
- data/capybara-3.40.0/lib/capybara/selenium/nodes/safari_node.rb +118 -0
- data/capybara-3.40.0/lib/capybara/selenium/patches/atoms.rb +18 -0
- data/capybara-3.40.0/lib/capybara/selenium/patches/is_displayed.rb +16 -0
- data/capybara-3.40.0/lib/capybara/selenium/patches/logs.rb +45 -0
- data/capybara-3.40.0/lib/capybara/selenium/patches/pause_duration_fix.rb +9 -0
- data/capybara-3.40.0/lib/capybara/selenium/patches/persistent_client.rb +20 -0
- data/capybara-3.40.0/lib/capybara/server/animation_disabler.rb +80 -0
- data/capybara-3.40.0/lib/capybara/server/checker.rb +44 -0
- data/capybara-3.40.0/lib/capybara/server/middleware.rb +71 -0
- data/capybara-3.40.0/lib/capybara/server.rb +126 -0
- data/capybara-3.40.0/lib/capybara/session/config.rb +128 -0
- data/capybara-3.40.0/lib/capybara/session/matchers.rb +87 -0
- data/capybara-3.40.0/lib/capybara/session.rb +951 -0
- data/capybara-3.40.0/lib/capybara/spec/fixtures/another_test_file.txt +1 -0
- data/capybara-3.40.0/lib/capybara/spec/fixtures/capybara.jpg +3 -0
- data/capybara-3.40.0/lib/capybara/spec/fixtures/no_extension +1 -0
- data/capybara-3.40.0/lib/capybara/spec/fixtures/test_file.txt +1 -0
- data/capybara-3.40.0/lib/capybara/spec/public/jquery-ui.js +13 -0
- data/capybara-3.40.0/lib/capybara/spec/public/jquery.js +5 -0
- data/capybara-3.40.0/lib/capybara/spec/public/offset.js +6 -0
- data/capybara-3.40.0/lib/capybara/spec/public/test.js +284 -0
- data/capybara-3.40.0/lib/capybara/spec/session/accept_alert_spec.rb +81 -0
- data/capybara-3.40.0/lib/capybara/spec/session/accept_confirm_spec.rb +32 -0
- data/capybara-3.40.0/lib/capybara/spec/session/accept_prompt_spec.rb +78 -0
- data/capybara-3.40.0/lib/capybara/spec/session/active_element_spec.rb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/session/all_spec.rb +274 -0
- data/capybara-3.40.0/lib/capybara/spec/session/ancestor_spec.rb +88 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +140 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_current_path_spec.rb +75 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_selector_spec.rb +143 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_style_spec.rb +26 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_text_spec.rb +258 -0
- data/capybara-3.40.0/lib/capybara/spec/session/assert_title_spec.rb +93 -0
- data/capybara-3.40.0/lib/capybara/spec/session/attach_file_spec.rb +222 -0
- data/capybara-3.40.0/lib/capybara/spec/session/body_spec.rb +23 -0
- data/capybara-3.40.0/lib/capybara/spec/session/check_spec.rb +251 -0
- data/capybara-3.40.0/lib/capybara/spec/session/choose_spec.rb +127 -0
- data/capybara-3.40.0/lib/capybara/spec/session/click_button_spec.rb +517 -0
- data/capybara-3.40.0/lib/capybara/spec/session/click_link_or_button_spec.rb +138 -0
- data/capybara-3.40.0/lib/capybara/spec/session/click_link_spec.rb +240 -0
- data/capybara-3.40.0/lib/capybara/spec/session/current_scope_spec.rb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/session/current_url_spec.rb +125 -0
- data/capybara-3.40.0/lib/capybara/spec/session/dismiss_confirm_spec.rb +36 -0
- data/capybara-3.40.0/lib/capybara/spec/session/dismiss_prompt_spec.rb +21 -0
- data/capybara-3.40.0/lib/capybara/spec/session/element/assert_match_selector_spec.rb +38 -0
- data/capybara-3.40.0/lib/capybara/spec/session/element/match_css_spec.rb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/session/element/match_xpath_spec.rb +25 -0
- data/capybara-3.40.0/lib/capybara/spec/session/element/matches_selector_spec.rb +120 -0
- data/capybara-3.40.0/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
- data/capybara-3.40.0/lib/capybara/spec/session/evaluate_script_spec.rb +49 -0
- data/capybara-3.40.0/lib/capybara/spec/session/execute_script_spec.rb +28 -0
- data/capybara-3.40.0/lib/capybara/spec/session/fill_in_spec.rb +292 -0
- data/capybara-3.40.0/lib/capybara/spec/session/find_button_spec.rb +74 -0
- data/capybara-3.40.0/lib/capybara/spec/session/find_by_id_spec.rb +33 -0
- data/capybara-3.40.0/lib/capybara/spec/session/find_field_spec.rb +113 -0
- data/capybara-3.40.0/lib/capybara/spec/session/find_link_spec.rb +80 -0
- data/capybara-3.40.0/lib/capybara/spec/session/find_spec.rb +545 -0
- data/capybara-3.40.0/lib/capybara/spec/session/first_spec.rb +156 -0
- data/capybara-3.40.0/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
- data/capybara-3.40.0/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
- data/capybara-3.40.0/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +116 -0
- data/capybara-3.40.0/lib/capybara/spec/session/frame/within_frame_spec.rb +114 -0
- data/capybara-3.40.0/lib/capybara/spec/session/go_back_spec.rb +12 -0
- data/capybara-3.40.0/lib/capybara/spec/session/go_forward_spec.rb +14 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_ancestor_spec.rb +46 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_any_selectors_spec.rb +29 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_button_spec.rb +150 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_css_spec.rb +375 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_current_path_spec.rb +151 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_element_spec.rb +47 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_field_spec.rb +389 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_link_spec.rb +79 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_none_selectors_spec.rb +78 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_select_spec.rb +316 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_selector_spec.rb +217 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_sibling_spec.rb +50 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_table_spec.rb +209 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_text_spec.rb +375 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_title_spec.rb +71 -0
- data/capybara-3.40.0/lib/capybara/spec/session/has_xpath_spec.rb +149 -0
- data/capybara-3.40.0/lib/capybara/spec/session/headers_spec.rb +8 -0
- data/capybara-3.40.0/lib/capybara/spec/session/html_spec.rb +47 -0
- data/capybara-3.40.0/lib/capybara/spec/session/matches_style_spec.rb +37 -0
- data/capybara-3.40.0/lib/capybara/spec/session/node_spec.rb +1399 -0
- data/capybara-3.40.0/lib/capybara/spec/session/node_wrapper_spec.rb +39 -0
- data/capybara-3.40.0/lib/capybara/spec/session/refresh_spec.rb +34 -0
- data/capybara-3.40.0/lib/capybara/spec/session/reset_session_spec.rb +161 -0
- data/capybara-3.40.0/lib/capybara/spec/session/response_code_spec.rb +8 -0
- data/capybara-3.40.0/lib/capybara/spec/session/save_and_open_page_spec.rb +21 -0
- data/capybara-3.40.0/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +43 -0
- data/capybara-3.40.0/lib/capybara/spec/session/save_page_spec.rb +110 -0
- data/capybara-3.40.0/lib/capybara/spec/session/save_screenshot_spec.rb +55 -0
- data/capybara-3.40.0/lib/capybara/spec/session/screenshot_spec.rb +18 -0
- data/capybara-3.40.0/lib/capybara/spec/session/scroll_spec.rb +119 -0
- data/capybara-3.40.0/lib/capybara/spec/session/select_spec.rb +229 -0
- data/capybara-3.40.0/lib/capybara/spec/session/selectors_spec.rb +98 -0
- data/capybara-3.40.0/lib/capybara/spec/session/sibling_spec.rb +52 -0
- data/capybara-3.40.0/lib/capybara/spec/session/text_spec.rb +74 -0
- data/capybara-3.40.0/lib/capybara/spec/session/title_spec.rb +29 -0
- data/capybara-3.40.0/lib/capybara/spec/session/uncheck_spec.rb +100 -0
- data/capybara-3.40.0/lib/capybara/spec/session/unselect_spec.rb +116 -0
- data/capybara-3.40.0/lib/capybara/spec/session/visit_spec.rb +224 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/become_closed_spec.rb +89 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/current_window_spec.rb +28 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/open_new_window_spec.rb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/switch_to_window_spec.rb +132 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/window_opened_by_spec.rb +99 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/window_spec.rb +203 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/windows_spec.rb +34 -0
- data/capybara-3.40.0/lib/capybara/spec/session/window/within_window_spec.rb +157 -0
- data/capybara-3.40.0/lib/capybara/spec/session/within_spec.rb +212 -0
- data/capybara-3.40.0/lib/capybara/spec/spec_helper.rb +141 -0
- data/capybara-3.40.0/lib/capybara/spec/test_app.rb +305 -0
- data/capybara-3.40.0/lib/capybara/spec/views/animated.erb +49 -0
- data/capybara-3.40.0/lib/capybara/spec/views/buttons.erb +5 -0
- data/capybara-3.40.0/lib/capybara/spec/views/fieldsets.erb +30 -0
- data/capybara-3.40.0/lib/capybara/spec/views/form.erb +738 -0
- data/capybara-3.40.0/lib/capybara/spec/views/frame_child.erb +18 -0
- data/capybara-3.40.0/lib/capybara/spec/views/frame_one.erb +10 -0
- data/capybara-3.40.0/lib/capybara/spec/views/frame_parent.erb +9 -0
- data/capybara-3.40.0/lib/capybara/spec/views/frame_two.erb +9 -0
- data/capybara-3.40.0/lib/capybara/spec/views/header_links.erb +8 -0
- data/capybara-3.40.0/lib/capybara/spec/views/host_links.erb +13 -0
- data/capybara-3.40.0/lib/capybara/spec/views/initial_alert.erb +11 -0
- data/capybara-3.40.0/lib/capybara/spec/views/layout.erb +10 -0
- data/capybara-3.40.0/lib/capybara/spec/views/obscured.erb +47 -0
- data/capybara-3.40.0/lib/capybara/spec/views/offset.erb +33 -0
- data/capybara-3.40.0/lib/capybara/spec/views/path.erb +13 -0
- data/capybara-3.40.0/lib/capybara/spec/views/popup_one.erb +9 -0
- data/capybara-3.40.0/lib/capybara/spec/views/popup_two.erb +9 -0
- data/capybara-3.40.0/lib/capybara/spec/views/postback.erb +14 -0
- data/capybara-3.40.0/lib/capybara/spec/views/react.erb +45 -0
- data/capybara-3.40.0/lib/capybara/spec/views/scroll.erb +21 -0
- data/capybara-3.40.0/lib/capybara/spec/views/spatial.erb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/views/tables.erb +130 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_animation.erb +81 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_base_tag.erb +11 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_count.erb +8 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_dragula.erb +24 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_fixed_header_footer.erb +18 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_hover.erb +24 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_hover1.erb +10 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_html.erb +210 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_html5_svg.erb +20 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_html_entities.erb +2 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_jquery_animation.erb +24 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_js.erb +162 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_jstree.erb +26 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_namespace.erb +21 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_scope.erb +42 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_scope_other.erb +6 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_shadow.erb +31 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_simple_html.erb +2 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_slow_unload.erb +18 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_sortable_js.erb +21 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_unload_alert.erb +15 -0
- data/capybara-3.40.0/lib/capybara/spec/views/with_windows.erb +54 -0
- data/capybara-3.40.0/lib/capybara/spec/views/within_frames.erb +15 -0
- data/capybara-3.40.0/lib/capybara/version.rb +5 -0
- data/capybara-3.40.0/lib/capybara/window.rb +142 -0
- data/capybara-3.40.0/lib/capybara.rb +521 -0
- data/capybara-3.40.0/spec/basic_node_spec.rb +168 -0
- data/capybara-3.40.0/spec/capybara_spec.rb +124 -0
- data/capybara-3.40.0/spec/counter_spec.rb +35 -0
- data/capybara-3.40.0/spec/css_builder_spec.rb +101 -0
- data/capybara-3.40.0/spec/css_splitter_spec.rb +38 -0
- data/capybara-3.40.0/spec/dsl_spec.rb +291 -0
- data/capybara-3.40.0/spec/filter_set_spec.rb +46 -0
- data/capybara-3.40.0/spec/fixtures/capybara.csv +1 -0
- data/capybara-3.40.0/spec/fixtures/certificate.pem +25 -0
- data/capybara-3.40.0/spec/fixtures/key.pem +27 -0
- data/capybara-3.40.0/spec/fixtures/selenium_driver_rspec_failure.rb +13 -0
- data/capybara-3.40.0/spec/fixtures/selenium_driver_rspec_success.rb +13 -0
- data/capybara-3.40.0/spec/minitest_spec.rb +175 -0
- data/capybara-3.40.0/spec/minitest_spec_spec.rb +166 -0
- data/capybara-3.40.0/spec/per_session_config_spec.rb +68 -0
- data/capybara-3.40.0/spec/rack_test_spec.rb +297 -0
- data/capybara-3.40.0/spec/regexp_dissassembler_spec.rb +250 -0
- data/capybara-3.40.0/spec/result_spec.rb +202 -0
- data/capybara-3.40.0/spec/rspec/features_spec.rb +101 -0
- data/capybara-3.40.0/spec/rspec/scenarios_spec.rb +23 -0
- data/capybara-3.40.0/spec/rspec/shared_spec_matchers.rb +983 -0
- data/capybara-3.40.0/spec/rspec/views_spec.rb +14 -0
- data/capybara-3.40.0/spec/rspec_matchers_spec.rb +87 -0
- data/capybara-3.40.0/spec/rspec_spec.rb +149 -0
- data/capybara-3.40.0/spec/sauce_spec_chrome.rb +43 -0
- data/capybara-3.40.0/spec/selector_spec.rb +528 -0
- data/capybara-3.40.0/spec/selenium_spec_chrome.rb +209 -0
- data/capybara-3.40.0/spec/selenium_spec_chrome_remote.rb +96 -0
- data/capybara-3.40.0/spec/selenium_spec_edge.rb +60 -0
- data/capybara-3.40.0/spec/selenium_spec_firefox.rb +228 -0
- data/capybara-3.40.0/spec/selenium_spec_firefox_remote.rb +94 -0
- data/capybara-3.40.0/spec/selenium_spec_ie.rb +149 -0
- data/capybara-3.40.0/spec/selenium_spec_safari.rb +162 -0
- data/capybara-3.40.0/spec/server_spec.rb +315 -0
- data/capybara-3.40.0/spec/session_spec.rb +91 -0
- data/capybara-3.40.0/spec/shared_selenium_node.rb +79 -0
- data/capybara-3.40.0/spec/shared_selenium_session.rb +566 -0
- data/capybara-3.40.0/spec/spec_helper.rb +133 -0
- data/capybara-3.40.0/spec/whitespace_normalizer_spec.rb +54 -0
- data/capybara-3.40.0/spec/xpath_builder_spec.rb +93 -0
- data/mega-max-rb.gemspec +12 -0
- metadata +358 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#select' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/form')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should return value of the first option' do
|
|
9
|
+
expect(@session.find_field('Title').value).to eq('Mrs')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'should return value of the selected option' do
|
|
13
|
+
@session.select('Miss', from: 'Title')
|
|
14
|
+
expect(@session.find_field('Title').value).to eq('Miss')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should allow selecting exact options where there are inexact matches', :exact_false do
|
|
18
|
+
@session.select('Mr', from: 'Title')
|
|
19
|
+
expect(@session.find_field('Title').value).to eq('Mr')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should allow selecting options where they are the only inexact match', :exact_false do
|
|
23
|
+
@session.select('Mis', from: 'Title')
|
|
24
|
+
expect(@session.find_field('Title').value).to eq('Miss')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'should not allow selecting options where they are the only inexact match if `exact: true` is specified' do
|
|
28
|
+
sel = @session.find(:select, 'Title')
|
|
29
|
+
expect do
|
|
30
|
+
sel.select('Mis', exact: true)
|
|
31
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'should not allow selecting an option if the match is ambiguous', :exact_false do
|
|
35
|
+
expect do
|
|
36
|
+
@session.select('M', from: 'Title')
|
|
37
|
+
end.to raise_error(Capybara::Ambiguous)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'should return the value attribute rather than content if present' do
|
|
41
|
+
expect(@session.find_field('Locale').value).to eq('en')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'should select an option from a select box by id' do
|
|
45
|
+
@session.select('Finnish', from: 'form_locale')
|
|
46
|
+
@session.click_button('awesome')
|
|
47
|
+
expect(extract_results(@session)['locale']).to eq('fi')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it 'should select an option from a select box by label' do
|
|
51
|
+
@session.select('Finnish', from: 'Locale')
|
|
52
|
+
@session.click_button('awesome')
|
|
53
|
+
expect(extract_results(@session)['locale']).to eq('fi')
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'should select an option without giving a select box' do
|
|
57
|
+
@session.select('Swedish')
|
|
58
|
+
@session.click_button('awesome')
|
|
59
|
+
expect(extract_results(@session)['locale']).to eq('sv')
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'should escape quotes' do
|
|
63
|
+
@session.select("John's made-up language", from: 'Locale')
|
|
64
|
+
@session.click_button('awesome')
|
|
65
|
+
expect(extract_results(@session)['locale']).to eq('jo')
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'should obey from' do
|
|
69
|
+
@session.select('Miss', from: 'Other title')
|
|
70
|
+
@session.click_button('awesome')
|
|
71
|
+
results = extract_results(@session)
|
|
72
|
+
expect(results['other_title']).to eq('Miss')
|
|
73
|
+
expect(results['title']).not_to eq('Miss')
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it 'show match labels with preceding or trailing whitespace' do
|
|
77
|
+
@session.select('Lojban', from: 'Locale')
|
|
78
|
+
@session.click_button('awesome')
|
|
79
|
+
expect(extract_results(@session)['locale']).to eq('jbo')
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'casts to string' do
|
|
83
|
+
@session.select(:Miss, from: :Title)
|
|
84
|
+
expect(@session.find_field('Title').value).to eq('Miss')
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
context 'input with datalist' do
|
|
88
|
+
it 'should select an option' do
|
|
89
|
+
@session.select('Audi', from: 'manufacturer')
|
|
90
|
+
@session.click_button('awesome')
|
|
91
|
+
expect(extract_results(@session)['manufacturer']).to eq('Audi')
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it 'should not find an input without a datalist' do
|
|
95
|
+
expect do
|
|
96
|
+
@session.select('Thomas', from: 'form_first_name')
|
|
97
|
+
end.to raise_error(/Unable to find input box with datalist completion "form_first_name"/)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it "should not select an option that doesn't exist" do
|
|
101
|
+
expect do
|
|
102
|
+
@session.select('Tata', from: 'manufacturer')
|
|
103
|
+
end.to raise_error(/Unable to find datalist option "Tata"/)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
it 'should not select a disabled option' do
|
|
107
|
+
expect do
|
|
108
|
+
@session.select('Mercedes', from: 'manufacturer')
|
|
109
|
+
end.to raise_error(/Unable to find datalist option "Mercedes"/)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
context "with a locator that doesn't exist" do
|
|
114
|
+
it 'should raise an error' do
|
|
115
|
+
msg = /Unable to find select box "does not exist"/
|
|
116
|
+
expect do
|
|
117
|
+
@session.select('foo', from: 'does not exist')
|
|
118
|
+
end.to raise_error(Capybara::ElementNotFound, msg)
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
context "with an option that doesn't exist" do
|
|
123
|
+
it 'should raise an error' do
|
|
124
|
+
msg = /^Unable to find option "Does not Exist" within/
|
|
125
|
+
expect do
|
|
126
|
+
@session.select('Does not Exist', from: 'form_locale')
|
|
127
|
+
end.to raise_error(Capybara::ElementNotFound, msg)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
context 'on a disabled select' do
|
|
132
|
+
it 'should raise an error' do
|
|
133
|
+
expect do
|
|
134
|
+
@session.select('Should not see me', from: 'Disabled Select')
|
|
135
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
context 'on a disabled option' do
|
|
140
|
+
it 'should not select' do
|
|
141
|
+
@session.select('Other', from: 'form_title')
|
|
142
|
+
expect(@session.find_field('form_title').value).not_to eq 'Other'
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
context 'with multiple select' do
|
|
147
|
+
it 'should return an empty value' do
|
|
148
|
+
expect(@session.find_field('Languages').value).to eq([])
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it 'should return value of the selected options' do
|
|
152
|
+
@session.select('Ruby', from: 'Languages')
|
|
153
|
+
@session.select('Javascript', from: 'Languages')
|
|
154
|
+
expect(@session.find_field('Languages').value).to include('Ruby', 'Javascript')
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
it 'should select one option' do
|
|
158
|
+
@session.select('Ruby', from: 'Languages')
|
|
159
|
+
@session.click_button('awesome')
|
|
160
|
+
expect(extract_results(@session)['languages']).to eq(['Ruby'])
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
it 'should select multiple options' do
|
|
164
|
+
@session.select('Ruby', from: 'Languages')
|
|
165
|
+
@session.select('Javascript', from: 'Languages')
|
|
166
|
+
@session.click_button('awesome')
|
|
167
|
+
expect(extract_results(@session)['languages']).to include('Ruby', 'Javascript')
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
it 'should remain selected if already selected' do
|
|
171
|
+
@session.select('Ruby', from: 'Languages')
|
|
172
|
+
@session.select('Javascript', from: 'Languages')
|
|
173
|
+
@session.select('Ruby', from: 'Languages')
|
|
174
|
+
@session.click_button('awesome')
|
|
175
|
+
expect(extract_results(@session)['languages']).to include('Ruby', 'Javascript')
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
it 'should return value attribute rather than content if present' do
|
|
179
|
+
expect(@session.find_field('Underwear').value).to include('thermal')
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
context 'with :exact option' do
|
|
184
|
+
context 'when `false`' do
|
|
185
|
+
it 'can match select box approximately' do
|
|
186
|
+
@session.select('Finnish', from: 'Loc', exact: false)
|
|
187
|
+
@session.click_button('awesome')
|
|
188
|
+
expect(extract_results(@session)['locale']).to eq('fi')
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
it 'can match option approximately' do
|
|
192
|
+
@session.select('Fin', from: 'Locale', exact: false)
|
|
193
|
+
@session.click_button('awesome')
|
|
194
|
+
expect(extract_results(@session)['locale']).to eq('fi')
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it 'can match option approximately when :from not given' do
|
|
198
|
+
@session.select('made-up language', exact: false)
|
|
199
|
+
@session.click_button('awesome')
|
|
200
|
+
expect(extract_results(@session)['locale']).to eq('jo')
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
context 'when `true`' do
|
|
205
|
+
it 'can match select box approximately' do
|
|
206
|
+
expect do
|
|
207
|
+
@session.select('Finnish', from: 'Loc', exact: true)
|
|
208
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
it 'can match option approximately' do
|
|
212
|
+
expect do
|
|
213
|
+
@session.select('Fin', from: 'Locale', exact: true)
|
|
214
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
it 'can match option approximately when :from not given' do
|
|
218
|
+
expect do
|
|
219
|
+
@session.select('made-up language', exact: true)
|
|
220
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
it 'should error when not passed a locator for :from option' do
|
|
226
|
+
select = @session.find(:select, 'Title')
|
|
227
|
+
expect { @session.select('Mr', from: select) }.to raise_error(ArgumentError, /does not take an element/)
|
|
228
|
+
end
|
|
229
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec Capybara::Selector do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/form')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe ':label selector' do
|
|
9
|
+
it 'finds a label by text' do
|
|
10
|
+
expect(@session.find(:label, 'Customer Name').text).to eq 'Customer Name'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'finds a label by for attribute string' do
|
|
14
|
+
expect(@session.find(:label, for: 'form_other_title')['for']).to eq 'form_other_title'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'finds a label for for attribute regex' do
|
|
18
|
+
expect(@session.find(:label, for: /_other_title/)['for']).to eq 'form_other_title'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'finds a label from nested input using :for filter with id string' do
|
|
22
|
+
expect(@session.find(:label, for: 'nested_label').text).to eq 'Nested Label'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'finds a label from nested input using :for filter with id regexp' do
|
|
26
|
+
expect(@session.find(:label, for: /nested_lab/).text).to eq 'Nested Label'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'finds a label from nested input using :for filter with element' do
|
|
30
|
+
input = @session.find(:id, 'nested_label')
|
|
31
|
+
expect(@session.find(:label, for: input).text).to eq 'Nested Label'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'finds a label from nested input using :for filter with element when no id on label' do
|
|
35
|
+
input = @session.find(:css, '#wrapper_label').find(:css, 'input')
|
|
36
|
+
expect(@session.find(:label, for: input).text).to eq 'Wrapper Label'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'finds the label for an non-nested element when using :for filter' do
|
|
40
|
+
select = @session.find(:id, 'form_other_title')
|
|
41
|
+
expect(@session.find(:label, for: select)['for']).to eq 'form_other_title'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
context 'with exact option' do
|
|
45
|
+
it 'matches substrings' do
|
|
46
|
+
expect(@session.find(:label, 'Customer Na', exact: false).text).to eq 'Customer Name'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "doesn't match substrings" do
|
|
50
|
+
expect { @session.find(:label, 'Customer Na', exact: true) }.to raise_error(Capybara::ElementNotFound)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
describe 'field selectors' do
|
|
56
|
+
context 'with :id option' do
|
|
57
|
+
it 'can find specifically by id' do
|
|
58
|
+
expect(@session.find(:field, id: 'customer_email').value).to eq 'ben@ben.com'
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'can find by regex' do
|
|
62
|
+
expect(@session.find(:field, id: /ustomer.emai/).value).to eq 'ben@ben.com'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it 'can find by case-insensitive id' do
|
|
66
|
+
expect(@session.find(:field, id: /StOmer.emAI/i).value).to eq 'ben@ben.com'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'can find specifically by name string' do
|
|
71
|
+
expect(@session.find(:field, name: 'form[other_title]')['id']).to eq 'form_other_title'
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it 'can find specifically by name regex' do
|
|
75
|
+
expect(@session.find(:field, name: /form\[other_.*\]/)['id']).to eq 'form_other_title'
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it 'can find specifically by placeholder string' do
|
|
79
|
+
expect(@session.find(:field, placeholder: 'FirstName')['id']).to eq 'form_first_name'
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it 'can find specifically by placeholder regex' do
|
|
83
|
+
expect(@session.find(:field, placeholder: /FirstN.*/)['id']).to eq 'form_first_name'
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it 'can find by type' do
|
|
87
|
+
expect(@session.find(:field, 'Confusion', type: 'checkbox')['id']).to eq 'confusion_checkbox'
|
|
88
|
+
expect(@session.find(:field, 'Confusion', type: 'text')['id']).to eq 'confusion_text'
|
|
89
|
+
expect(@session.find(:field, 'Confusion', type: 'textarea')['id']).to eq 'confusion_textarea'
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'can find by class' do
|
|
93
|
+
expect(@session.find(:field, class: 'confusion-checkbox')['id']).to eq 'confusion_checkbox'
|
|
94
|
+
expect(@session).to have_selector(:field, class: 'confusion', count: 3)
|
|
95
|
+
expect(@session.find(:field, class: %w[confusion confusion-textarea])['id']).to eq 'confusion_textarea'
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#sibling' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/with_html')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
after do
|
|
9
|
+
Capybara::Selector.remove(:monkey)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'should find a prior sibling element using the given locator' do
|
|
13
|
+
el = @session.find(:css, '#mid_sibling')
|
|
14
|
+
expect(el.sibling('//div[@data-pre]')[:id]).to eq('pre_sibling')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should find a following sibling element using the given locator' do
|
|
18
|
+
el = @session.find(:css, '#mid_sibling')
|
|
19
|
+
expect(el.sibling('//div[@data-post]')[:id]).to eq('post_sibling')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should raise an error if there are multiple matches' do
|
|
23
|
+
el = @session.find(:css, '#mid_sibling')
|
|
24
|
+
expect { el.sibling('//div') }.to raise_error(Capybara::Ambiguous)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context 'with css selectors' do
|
|
28
|
+
it 'should find the first element using the given locator' do
|
|
29
|
+
el = @session.find(:css, '#mid_sibling')
|
|
30
|
+
expect(el.sibling(:css, '#pre_sibling')).to have_text('Pre Sibling')
|
|
31
|
+
expect(el.sibling(:css, '#post_sibling')).to have_text('Post Sibling')
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
context 'with custom selector' do
|
|
36
|
+
it 'should use the custom selector' do
|
|
37
|
+
Capybara.add_selector(:data_attribute) do
|
|
38
|
+
xpath { |attr| ".//*[@data-#{attr}]" }
|
|
39
|
+
end
|
|
40
|
+
el = @session.find(:css, '#mid_sibling')
|
|
41
|
+
expect(el.sibling(:data_attribute, 'pre').text).to eq('Pre Sibling')
|
|
42
|
+
expect(el.sibling(:data_attribute, 'post').text).to eq('Post Sibling')
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it 'should raise ElementNotFound with a useful default message if nothing was found' do
|
|
47
|
+
el = @session.find(:css, '#child')
|
|
48
|
+
expect do
|
|
49
|
+
el.sibling(:xpath, '//div[@id="nosuchthing"]')
|
|
50
|
+
end.to raise_error(Capybara::ElementNotFound, 'Unable to find xpath "//div[@id=\\"nosuchthing\\"]" that is a sibling of visible css "#child"')
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#text' do
|
|
4
|
+
it 'should print the text of the page' do
|
|
5
|
+
@session.visit('/with_simple_html')
|
|
6
|
+
expect(@session.text).to eq('Bar')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'ignores invisible text by default' do
|
|
10
|
+
@session.visit('/with_html')
|
|
11
|
+
expect(@session.find(:id, 'hidden-text').text).to eq('Some of this text is')
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'shows invisible text if `:all` given' do
|
|
15
|
+
@session.visit('/with_html')
|
|
16
|
+
expect(@session.find(:id, 'hidden-text').text(:all)).to eq('Some of this text is hidden!')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'ignores invisible text if `:visible` given' do
|
|
20
|
+
Capybara.ignore_hidden_elements = false
|
|
21
|
+
@session.visit('/with_html')
|
|
22
|
+
expect(@session.find(:id, 'hidden-text').text(:visible)).to eq('Some of this text is')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'ignores invisible text if `Capybara.ignore_hidden_elements = true`' do
|
|
26
|
+
@session.visit('/with_html')
|
|
27
|
+
expect(@session.find(:id, 'hidden-text').text).to eq('Some of this text is')
|
|
28
|
+
Capybara.ignore_hidden_elements = false
|
|
29
|
+
expect(@session.find(:id, 'hidden-text').text).to eq('Some of this text is hidden!')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'ignores invisible text if `Capybara.visible_text_only = true`' do
|
|
33
|
+
@session.visit('/with_html')
|
|
34
|
+
Capybara.visible_text_only = true
|
|
35
|
+
expect(@session.find(:id, 'hidden-text').text).to eq('Some of this text is')
|
|
36
|
+
Capybara.ignore_hidden_elements = false
|
|
37
|
+
expect(@session.find(:id, 'hidden-text').text).to eq('Some of this text is')
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'ignores invisible text if ancestor is invisible' do
|
|
41
|
+
@session.visit('/with_html')
|
|
42
|
+
expect(@session.find(:id, 'hidden_via_ancestor', visible: false).text).to eq('')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
context 'with css as default selector' do
|
|
46
|
+
before { Capybara.default_selector = :css }
|
|
47
|
+
|
|
48
|
+
after { Capybara.default_selector = :xpath }
|
|
49
|
+
|
|
50
|
+
it 'should print the text of the page' do
|
|
51
|
+
@session.visit('/with_simple_html')
|
|
52
|
+
expect(@session.text).to eq('Bar')
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'should be correctly normalized when visible' do
|
|
57
|
+
@session.visit('/with_html')
|
|
58
|
+
el = @session.find(:css, '#normalized')
|
|
59
|
+
expect(el.text).to eq "Some text\nMore text\nAnd more text\nEven more text on multiple lines"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'should be a textContent with irrelevant whitespace collapsed when non-visible' do
|
|
63
|
+
@session.visit('/with_html')
|
|
64
|
+
el = @session.find(:css, '#non_visible_normalized', visible: false)
|
|
65
|
+
expect(el.text(:all)).to eq 'Some textMore text And more text Even more text on multiple lines'
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'should strip correctly' do
|
|
69
|
+
@session.visit('/with_html')
|
|
70
|
+
el = @session.find(:css, '#ws')
|
|
71
|
+
expect(el.text).to eq ' '
|
|
72
|
+
expect(el.text(:all)).to eq ' '
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#title' do
|
|
4
|
+
it 'should get the title of the page' do
|
|
5
|
+
@session.visit('/with_title')
|
|
6
|
+
expect(@session.title).to eq('Test Title')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
context 'with css as default selector' do
|
|
10
|
+
before { Capybara.default_selector = :css }
|
|
11
|
+
|
|
12
|
+
after { Capybara.default_selector = :xpath }
|
|
13
|
+
|
|
14
|
+
it 'should get the title of the page' do
|
|
15
|
+
@session.visit('/with_title')
|
|
16
|
+
expect(@session.title).to eq('Test Title')
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
context 'within iframe', requires: [:frames] do
|
|
21
|
+
it 'should get the title of the top level browsing context' do
|
|
22
|
+
@session.visit('/within_frames')
|
|
23
|
+
expect(@session.title).to eq('With Frames')
|
|
24
|
+
@session.within_frame('frameOne') do
|
|
25
|
+
expect(@session.title).to eq('With Frames')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#uncheck' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/form')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should uncheck a checkbox by id' do
|
|
9
|
+
@session.uncheck('form_pets_hamster')
|
|
10
|
+
@session.click_button('awesome')
|
|
11
|
+
expect(extract_results(@session)['pets']).to include('dog')
|
|
12
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should uncheck a checkbox by label' do
|
|
16
|
+
@session.uncheck('Hamster')
|
|
17
|
+
@session.click_button('awesome')
|
|
18
|
+
expect(extract_results(@session)['pets']).to include('dog')
|
|
19
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should work without a locator string' do
|
|
23
|
+
@session.uncheck(id: 'form_pets_hamster')
|
|
24
|
+
@session.click_button('awesome')
|
|
25
|
+
expect(extract_results(@session)['pets']).to include('dog')
|
|
26
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should be able to uncheck itself if no locator specified' do
|
|
30
|
+
cb = @session.find(:id, 'form_pets_hamster')
|
|
31
|
+
cb.uncheck
|
|
32
|
+
@session.click_button('awesome')
|
|
33
|
+
expect(extract_results(@session)['pets']).to include('dog')
|
|
34
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'casts to string' do
|
|
38
|
+
@session.uncheck(:form_pets_hamster)
|
|
39
|
+
@session.click_button('awesome')
|
|
40
|
+
expect(extract_results(@session)['pets']).to include('dog')
|
|
41
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
context 'with :exact option' do
|
|
45
|
+
it 'should accept partial matches when false' do
|
|
46
|
+
@session.uncheck('Ham', exact: false)
|
|
47
|
+
@session.click_button('awesome')
|
|
48
|
+
expect(extract_results(@session)['pets']).not_to include('hamster')
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'should not accept partial matches when true' do
|
|
52
|
+
expect do
|
|
53
|
+
@session.uncheck('Ham', exact: true)
|
|
54
|
+
end.to raise_error(Capybara::ElementNotFound)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
context 'when checkbox hidden' do
|
|
59
|
+
context 'with Capybara.automatic_label_click == true' do
|
|
60
|
+
around do |spec|
|
|
61
|
+
old_click_label, Capybara.automatic_label_click = Capybara.automatic_label_click, true
|
|
62
|
+
spec.run
|
|
63
|
+
Capybara.automatic_label_click = old_click_label
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'should uncheck via clicking the label with :for attribute if possible' do
|
|
67
|
+
expect(@session.find(:checkbox, 'form_cars_jaguar', checked: true, visible: :hidden)).to be_truthy
|
|
68
|
+
@session.uncheck('form_cars_jaguar')
|
|
69
|
+
@session.click_button('awesome')
|
|
70
|
+
expect(extract_results(@session)['cars']).not_to include('jaguar')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'should uncheck via clicking the wrapping label if possible' do
|
|
74
|
+
expect(@session.find(:checkbox, 'form_cars_koenigsegg', checked: true, visible: :hidden)).to be_truthy
|
|
75
|
+
@session.uncheck('form_cars_koenigsegg')
|
|
76
|
+
@session.click_button('awesome')
|
|
77
|
+
expect(extract_results(@session)['cars']).not_to include('koenigsegg')
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'should not click the label if unneeded' do
|
|
81
|
+
expect(@session.find(:checkbox, 'form_cars_tesla', unchecked: true, visible: :hidden)).to be_truthy
|
|
82
|
+
@session.uncheck('form_cars_tesla')
|
|
83
|
+
@session.click_button('awesome')
|
|
84
|
+
expect(extract_results(@session)['cars']).not_to include('tesla')
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
it 'should raise original error when no label available' do
|
|
88
|
+
expect { @session.uncheck('form_cars_porsche') }.to raise_error(Capybara::ElementNotFound, /Unable to find visible checkbox "form_cars_porsche"/)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it 'should raise error if not allowed to click label' do
|
|
92
|
+
expect { @session.uncheck('form_cars_jaguar', allow_label_click: false) }.to raise_error(Capybara::ElementNotFound, /Unable to find visible checkbox "form_cars_jaguar"/)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it 'should include node filter description in error if necessary' do
|
|
96
|
+
expect { @session.uncheck('form_cars_maserati', allow_label_click: false) }.to raise_error(Capybara::ElementNotFound, 'Unable to find visible checkbox "form_cars_maserati" that is not disabled')
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|