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,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#has_element?' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/with_html')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should be true if the given element is on the page' do
|
|
9
|
+
expect(@session).to have_element('a', id: 'foo')
|
|
10
|
+
expect(@session).to have_element('a', text: 'A link', href: '/with_simple_html')
|
|
11
|
+
expect(@session).to have_element('a', text: :'A link', href: :'/with_simple_html')
|
|
12
|
+
expect(@session).to have_element('a', text: 'A link', href: %r{/with_simple_html})
|
|
13
|
+
expect(@session).to have_element('a', text: 'labore', target: '_self')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should be false if the given element is not on the page' do
|
|
17
|
+
expect(@session).not_to have_element('a', text: 'monkey')
|
|
18
|
+
expect(@session).not_to have_element('a', text: 'A link', href: '/nonexistent-href')
|
|
19
|
+
expect(@session).not_to have_element('a', text: 'A link', href: /nonexistent/)
|
|
20
|
+
expect(@session).not_to have_element('a', text: 'labore', target: '_blank')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it 'should notify if an invalid locator is specified' do
|
|
24
|
+
allow(Capybara::Helpers).to receive(:warn).and_return(nil)
|
|
25
|
+
@session.has_element?(@session)
|
|
26
|
+
expect(Capybara::Helpers).to have_received(:warn).with(/Called from: .+/)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
Capybara::SpecHelper.spec '#has_no_element?' do
|
|
31
|
+
before do
|
|
32
|
+
@session.visit('/with_html')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'should be false if the given element is on the page' do
|
|
36
|
+
expect(@session).not_to have_no_element('a', id: 'foo')
|
|
37
|
+
expect(@session).not_to have_no_element('a', text: 'A link', href: '/with_simple_html')
|
|
38
|
+
expect(@session).not_to have_no_element('a', text: 'labore', target: '_self')
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'should be true if the given element is not on the page' do
|
|
42
|
+
expect(@session).to have_no_element('a', text: 'monkey')
|
|
43
|
+
expect(@session).to have_no_element('a', text: 'A link', href: '/nonexistent-href')
|
|
44
|
+
expect(@session).to have_no_element('a', text: 'A link', href: %r{/nonexistent-href})
|
|
45
|
+
expect(@session).to have_no_element('a', text: 'labore', target: '_blank')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#has_field' do
|
|
4
|
+
before { @session.visit('/form') }
|
|
5
|
+
|
|
6
|
+
it 'should be true if the field is on the page' do
|
|
7
|
+
expect(@session).to have_field('Dog')
|
|
8
|
+
expect(@session).to have_field('form_description')
|
|
9
|
+
expect(@session).to have_field('Region')
|
|
10
|
+
expect(@session).to have_field(:Region)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should be false if the field is not on the page' do
|
|
14
|
+
expect(@session).not_to have_field('Monkey')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context 'with value' do
|
|
18
|
+
it 'should be true if a field with the given value is on the page' do
|
|
19
|
+
expect(@session).to have_field('First Name', with: 'John')
|
|
20
|
+
expect(@session).to have_field('First Name', with: /^Joh/)
|
|
21
|
+
expect(@session).to have_field('Phone', with: '+1 555 7021')
|
|
22
|
+
expect(@session).to have_field('Street', with: 'Sesame street 66')
|
|
23
|
+
expect(@session).to have_field('Description', with: 'Descriptive text goes here')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'should be false if the given field is not on the page' do
|
|
27
|
+
expect(@session).not_to have_field('First Name', with: 'Peter')
|
|
28
|
+
expect(@session).not_to have_field('First Name', with: /eter$/)
|
|
29
|
+
expect(@session).not_to have_field('Wrong Name', with: 'John')
|
|
30
|
+
expect(@session).not_to have_field('Description', with: 'Monkey')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'should be true after the field has been filled in with the given value' do
|
|
34
|
+
@session.fill_in('First Name', with: 'Jonas')
|
|
35
|
+
expect(@session).to have_field('First Name', with: 'Jonas')
|
|
36
|
+
expect(@session).to have_field('First Name', with: /ona/)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'should be false after the field has been filled in with a different value' do
|
|
40
|
+
@session.fill_in('First Name', with: 'Jonas')
|
|
41
|
+
expect(@session).not_to have_field('First Name', with: 'John')
|
|
42
|
+
expect(@session).not_to have_field('First Name', with: /John|Paul|George|Ringo/)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'should output filter errors if only one element matched the selector but failed the filters' do
|
|
46
|
+
@session.fill_in('First Name', with: 'Thomas')
|
|
47
|
+
expect do
|
|
48
|
+
expect(@session).to have_field('First Name', with: 'Jonas')
|
|
49
|
+
end.to raise_exception(RSpec::Expectations::ExpectationNotMetError, /Expected value to be "Jonas" but was "Thomas"/)
|
|
50
|
+
|
|
51
|
+
# native boolean node filter
|
|
52
|
+
expect do
|
|
53
|
+
expect(@session).to have_field('First Name', readonly: true)
|
|
54
|
+
end.to raise_exception(RSpec::Expectations::ExpectationNotMetError, /Expected readonly true but it wasn't/)
|
|
55
|
+
|
|
56
|
+
# inherited boolean node filter
|
|
57
|
+
expect do
|
|
58
|
+
expect(@session).to have_field('form_pets_cat', checked: true)
|
|
59
|
+
end.to raise_exception(RSpec::Expectations::ExpectationNotMetError, /Expected checked true but it wasn't/)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context 'with validation message', requires: [:html_validation] do
|
|
64
|
+
it 'should accept a regexp' do
|
|
65
|
+
@session.fill_in('form_zipcode', with: '1234')
|
|
66
|
+
expect(@session).to have_field('form_zipcode', validation_message: /match the requested format/)
|
|
67
|
+
expect(@session).not_to have_field('form_zipcode', validation_message: /random/)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'should accept a string' do
|
|
71
|
+
@session.fill_in('form_zipcode', with: '1234')
|
|
72
|
+
expect(@session).to have_field('form_zipcode', validation_message: 'Please match the requested format.')
|
|
73
|
+
expect(@session).not_to have_field('form_zipcode', validation_message: 'match the requested format.')
|
|
74
|
+
@session.fill_in('form_zipcode', with: '12345')
|
|
75
|
+
expect(@session).to have_field('form_zipcode', validation_message: '')
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
context 'with type' do
|
|
80
|
+
it 'should be true if a field with the given type is on the page' do
|
|
81
|
+
expect(@session).to have_field('First Name', type: 'text')
|
|
82
|
+
expect(@session).to have_field('Html5 Email', type: 'email')
|
|
83
|
+
expect(@session).to have_field('Html5 Multiple Email', type: 'email')
|
|
84
|
+
expect(@session).to have_field('Html5 Tel', type: 'tel')
|
|
85
|
+
expect(@session).to have_field('Description', type: 'textarea')
|
|
86
|
+
expect(@session).to have_field('Languages', type: 'select')
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it 'should be false if the given field is not on the page' do
|
|
90
|
+
expect(@session).not_to have_field('First Name', type: 'textarea')
|
|
91
|
+
expect(@session).not_to have_field('Html5 Email', type: 'tel')
|
|
92
|
+
expect(@session).not_to have_field('Html5 Multiple Email', type: 'tel')
|
|
93
|
+
expect(@session).not_to have_field('Description', type: '')
|
|
94
|
+
expect(@session).not_to have_field('Description', type: 'email')
|
|
95
|
+
expect(@session).not_to have_field('Languages', type: 'textarea')
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it 'it can find type="hidden" elements if explicity specified' do
|
|
99
|
+
expect(@session).to have_field('form[data]', with: 'TWTW', type: 'hidden')
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
context 'with multiple' do
|
|
104
|
+
it 'should be true if a field with the multiple attribute is on the page' do
|
|
105
|
+
expect(@session).to have_field('Html5 Multiple Email', multiple: true)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it 'should be false if a field without the multiple attribute is not on the page' do
|
|
109
|
+
expect(@session).not_to have_field('Html5 Multiple Email', multiple: false)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
context 'with focused:', requires: [:active_element] do
|
|
114
|
+
it 'should be true if a field has focus' do
|
|
115
|
+
2.times { @session.send_keys(:tab) }
|
|
116
|
+
|
|
117
|
+
expect(@session).to have_field('An Input', focused: true)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
it 'should be false if a field does not have focus' do
|
|
121
|
+
expect(@session).to have_field('An Input', focused: false)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
context 'with valid', requires: [:js] do
|
|
126
|
+
it 'should be true if field is valid' do
|
|
127
|
+
@session.fill_in 'required', with: 'something'
|
|
128
|
+
@session.fill_in 'length', with: 'abcd'
|
|
129
|
+
|
|
130
|
+
expect(@session).to have_field('required', valid: true)
|
|
131
|
+
expect(@session).to have_field('length', valid: true)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it 'should be false if field is invalid' do
|
|
135
|
+
expect(@session).not_to have_field('required', valid: true)
|
|
136
|
+
expect(@session).to have_field('required', valid: false)
|
|
137
|
+
|
|
138
|
+
@session.fill_in 'length', with: 'abc'
|
|
139
|
+
expect(@session).not_to have_field('length', valid: true)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
Capybara::SpecHelper.spec '#has_no_field' do
|
|
145
|
+
before { @session.visit('/form') }
|
|
146
|
+
|
|
147
|
+
it 'should be false if the field is on the page' do
|
|
148
|
+
expect(@session).not_to have_no_field('Dog')
|
|
149
|
+
expect(@session).not_to have_no_field('form_description')
|
|
150
|
+
expect(@session).not_to have_no_field('Region')
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
it 'should be true if the field is not on the page' do
|
|
154
|
+
expect(@session).to have_no_field('Monkey')
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
context 'with value' do
|
|
158
|
+
it 'should be false if a field with the given value is on the page' do
|
|
159
|
+
expect(@session).not_to have_no_field('First Name', with: 'John')
|
|
160
|
+
expect(@session).not_to have_no_field('Phone', with: '+1 555 7021')
|
|
161
|
+
expect(@session).not_to have_no_field('Street', with: 'Sesame street 66')
|
|
162
|
+
expect(@session).not_to have_no_field('Description', with: 'Descriptive text goes here')
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it 'should be true if the given field is not on the page' do
|
|
166
|
+
expect(@session).to have_no_field('First Name', with: 'Peter')
|
|
167
|
+
expect(@session).to have_no_field('Wrong Name', with: 'John')
|
|
168
|
+
expect(@session).to have_no_field('Description', with: 'Monkey')
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
it 'should be false after the field has been filled in with the given value' do
|
|
172
|
+
@session.fill_in('First Name', with: 'Jonas')
|
|
173
|
+
expect(@session).not_to have_no_field('First Name', with: 'Jonas')
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
it 'should be true after the field has been filled in with a different value' do
|
|
177
|
+
@session.fill_in('First Name', with: 'Jonas')
|
|
178
|
+
expect(@session).to have_no_field('First Name', with: 'John')
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
context 'with type' do
|
|
183
|
+
it 'should be false if a field with the given type is on the page' do
|
|
184
|
+
expect(@session).not_to have_no_field('First Name', type: 'text')
|
|
185
|
+
expect(@session).not_to have_no_field('Html5 Email', type: 'email')
|
|
186
|
+
expect(@session).not_to have_no_field('Html5 Tel', type: 'tel')
|
|
187
|
+
expect(@session).not_to have_no_field('Description', type: 'textarea')
|
|
188
|
+
expect(@session).not_to have_no_field('Languages', type: 'select')
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
it 'should be true if the given field is not on the page' do
|
|
192
|
+
expect(@session).to have_no_field('First Name', type: 'textarea')
|
|
193
|
+
expect(@session).to have_no_field('Html5 Email', type: 'tel')
|
|
194
|
+
expect(@session).to have_no_field('Description', type: '')
|
|
195
|
+
expect(@session).to have_no_field('Description', type: 'email')
|
|
196
|
+
expect(@session).to have_no_field('Languages', type: 'textarea')
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
context 'with focused:', requires: [:active_element] do
|
|
201
|
+
it 'should be true if a field does not have focus when focused: true' do
|
|
202
|
+
expect(@session).to have_no_field('An Input', focused: true)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
it 'should be false if a field has focus when focused: true' do
|
|
206
|
+
2.times { @session.send_keys(:tab) }
|
|
207
|
+
|
|
208
|
+
expect(@session).not_to have_no_field('An Input', focused: true)
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
Capybara::SpecHelper.spec '#has_checked_field?' do
|
|
214
|
+
before { @session.visit('/form') }
|
|
215
|
+
|
|
216
|
+
it 'should be true if a checked field is on the page' do
|
|
217
|
+
expect(@session).to have_checked_field('gender_female')
|
|
218
|
+
expect(@session).to have_checked_field('Hamster')
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
it 'should be true for disabled checkboxes if disabled: true' do
|
|
222
|
+
expect(@session).to have_checked_field('Disabled Checkbox', disabled: true)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
it 'should be false if an unchecked field is on the page' do
|
|
226
|
+
expect(@session).not_to have_checked_field('form_pets_cat')
|
|
227
|
+
expect(@session).not_to have_checked_field('Male')
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
it 'should be false if no field is on the page' do
|
|
231
|
+
expect(@session).not_to have_checked_field('Does Not Exist')
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
it 'should be false for disabled checkboxes by default' do
|
|
235
|
+
expect(@session).not_to have_checked_field('Disabled Checkbox')
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
it 'should be false for disabled checkboxes if disabled: false' do
|
|
239
|
+
expect(@session).not_to have_checked_field('Disabled Checkbox', disabled: false)
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
it 'should be true for disabled checkboxes if disabled: :all' do
|
|
243
|
+
expect(@session).to have_checked_field('Disabled Checkbox', disabled: :all)
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
it 'should be true for enabled checkboxes if disabled: :all' do
|
|
247
|
+
expect(@session).to have_checked_field('gender_female', disabled: :all)
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
it 'should be true after an unchecked checkbox is checked' do
|
|
251
|
+
@session.check('form_pets_cat')
|
|
252
|
+
expect(@session).to have_checked_field('form_pets_cat')
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
it 'should be false after a checked checkbox is unchecked' do
|
|
256
|
+
@session.uncheck('form_pets_dog')
|
|
257
|
+
expect(@session).not_to have_checked_field('form_pets_dog')
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
it 'should be true after an unchecked radio button is chosen' do
|
|
261
|
+
@session.choose('gender_male')
|
|
262
|
+
expect(@session).to have_checked_field('gender_male')
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it 'should be false after another radio button in the group is chosen' do
|
|
266
|
+
@session.choose('gender_male')
|
|
267
|
+
expect(@session).not_to have_checked_field('gender_female')
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
Capybara::SpecHelper.spec '#has_no_checked_field?' do
|
|
272
|
+
before { @session.visit('/form') }
|
|
273
|
+
|
|
274
|
+
it 'should be false if a checked field is on the page' do
|
|
275
|
+
expect(@session).not_to have_no_checked_field('gender_female')
|
|
276
|
+
expect(@session).not_to have_no_checked_field('Hamster')
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
it 'should be false for disabled checkboxes if disabled: true' do
|
|
280
|
+
expect(@session).not_to have_no_checked_field('Disabled Checkbox', disabled: true)
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
it 'should be true if an unchecked field is on the page' do
|
|
284
|
+
expect(@session).to have_no_checked_field('form_pets_cat')
|
|
285
|
+
expect(@session).to have_no_checked_field('Male')
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
it 'should be true if no field is on the page' do
|
|
289
|
+
expect(@session).to have_no_checked_field('Does Not Exist')
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
it 'should be true for disabled checkboxes by default' do
|
|
293
|
+
expect(@session).to have_no_checked_field('Disabled Checkbox')
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
it 'should be true for disabled checkboxes if disabled: false' do
|
|
297
|
+
expect(@session).to have_no_checked_field('Disabled Checkbox', disabled: false)
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
Capybara::SpecHelper.spec '#has_unchecked_field?' do
|
|
302
|
+
before { @session.visit('/form') }
|
|
303
|
+
|
|
304
|
+
it 'should be false if a checked field is on the page' do
|
|
305
|
+
expect(@session).not_to have_unchecked_field('gender_female')
|
|
306
|
+
expect(@session).not_to have_unchecked_field('Hamster')
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
it 'should be true if an unchecked field is on the page' do
|
|
310
|
+
expect(@session).to have_unchecked_field('form_pets_cat')
|
|
311
|
+
expect(@session).to have_unchecked_field('Male')
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
it 'should be true for disabled unchecked fields if disabled: true' do
|
|
315
|
+
expect(@session).to have_unchecked_field('Disabled Unchecked Checkbox', disabled: true)
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
it 'should be false if no field is on the page' do
|
|
319
|
+
expect(@session).not_to have_unchecked_field('Does Not Exist')
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
it 'should be false for disabled unchecked fields by default' do
|
|
323
|
+
expect(@session).not_to have_unchecked_field('Disabled Unchecked Checkbox')
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
it 'should be false for disabled unchecked fields if disabled: false' do
|
|
327
|
+
expect(@session).not_to have_unchecked_field('Disabled Unchecked Checkbox', disabled: false)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
it 'should be false after an unchecked checkbox is checked' do
|
|
331
|
+
@session.check('form_pets_cat')
|
|
332
|
+
expect(@session).not_to have_unchecked_field('form_pets_cat')
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
it 'should be true after a checked checkbox is unchecked' do
|
|
336
|
+
@session.uncheck('form_pets_dog')
|
|
337
|
+
expect(@session).to have_unchecked_field('form_pets_dog')
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
it 'should be false after an unchecked radio button is chosen' do
|
|
341
|
+
@session.choose('gender_male')
|
|
342
|
+
expect(@session).not_to have_unchecked_field('gender_male')
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
it 'should be true after another radio button in the group is chosen' do
|
|
346
|
+
@session.choose('gender_male')
|
|
347
|
+
expect(@session).to have_unchecked_field('gender_female')
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
it 'should support locator-less usage' do
|
|
351
|
+
expect(@session.has_unchecked_field?(disabled: true, id: 'form_disabled_unchecked_checkbox')).to be true
|
|
352
|
+
expect(@session).to have_unchecked_field(disabled: true, id: 'form_disabled_unchecked_checkbox')
|
|
353
|
+
end
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
Capybara::SpecHelper.spec '#has_no_unchecked_field?' do
|
|
357
|
+
before { @session.visit('/form') }
|
|
358
|
+
|
|
359
|
+
it 'should be true if a checked field is on the page' do
|
|
360
|
+
expect(@session).to have_no_unchecked_field('gender_female')
|
|
361
|
+
expect(@session).to have_no_unchecked_field('Hamster')
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
it 'should be false if an unchecked field is on the page' do
|
|
365
|
+
expect(@session).not_to have_no_unchecked_field('form_pets_cat')
|
|
366
|
+
expect(@session).not_to have_no_unchecked_field('Male')
|
|
367
|
+
end
|
|
368
|
+
|
|
369
|
+
it 'should be false for disabled unchecked fields if disabled: true' do
|
|
370
|
+
expect(@session).not_to have_no_unchecked_field('Disabled Unchecked Checkbox', disabled: true)
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
it 'should be true if no field is on the page' do
|
|
374
|
+
expect(@session).to have_no_unchecked_field('Does Not Exist')
|
|
375
|
+
end
|
|
376
|
+
|
|
377
|
+
it 'should be true for disabled unchecked fields by default' do
|
|
378
|
+
expect(@session).to have_no_unchecked_field('Disabled Unchecked Checkbox')
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
it 'should be true for disabled unchecked fields if disabled: false' do
|
|
382
|
+
expect(@session).to have_no_unchecked_field('Disabled Unchecked Checkbox', disabled: false)
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
it 'should support locator-less usage' do
|
|
386
|
+
expect(@session.has_no_unchecked_field?(disabled: false, id: 'form_disabled_unchecked_checkbox')).to be true
|
|
387
|
+
expect(@session).to have_no_unchecked_field(disabled: false, id: 'form_disabled_unchecked_checkbox')
|
|
388
|
+
end
|
|
389
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#has_link?' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/with_html')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should be true if the given link is on the page' do
|
|
9
|
+
expect(@session).to have_link('foo')
|
|
10
|
+
expect(@session).to have_link('awesome title')
|
|
11
|
+
expect(@session).to have_link('A link', href: '/with_simple_html')
|
|
12
|
+
expect(@session).to have_link(:'A link', href: :'/with_simple_html')
|
|
13
|
+
expect(@session).to have_link('A link', href: %r{/with_simple_html})
|
|
14
|
+
expect(@session).to have_link('labore', target: '_self')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should be false if the given link is not on the page' do
|
|
18
|
+
expect(@session).not_to have_link('monkey')
|
|
19
|
+
expect(@session).not_to have_link('A link', href: '/nonexistent-href')
|
|
20
|
+
expect(@session).not_to have_link('A link', href: /nonexistent/)
|
|
21
|
+
expect(@session).not_to have_link('labore', target: '_blank')
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'should notify if an invalid locator is specified' do
|
|
25
|
+
allow(Capybara::Helpers).to receive(:warn).and_return(nil)
|
|
26
|
+
@session.has_link?(@session)
|
|
27
|
+
expect(Capybara::Helpers).to have_received(:warn).with(/Called from: .+/)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
context 'with focused:', requires: [:active_element] do
|
|
31
|
+
it 'should be true if the given link is on the page and has focus' do
|
|
32
|
+
@session.send_keys(:tab)
|
|
33
|
+
|
|
34
|
+
expect(@session).to have_link('labore', focused: true)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should be false if the given link is on the page and does not have focus' do
|
|
38
|
+
expect(@session).to have_link('labore', focused: false)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'should raise an error if an invalid option is passed' do
|
|
43
|
+
expect do
|
|
44
|
+
expect(@session).to have_link('labore', invalid: true)
|
|
45
|
+
end.to raise_error(ArgumentError, 'Invalid option(s) :invalid, should be one of :above, :below, :left_of, :right_of, :near, :count, :minimum, :maximum, :between, :text, :id, :class, :style, :visible, :obscured, :exact, :exact_text, :normalize_ws, :match, :wait, :filter_set, :focused, :href, :alt, :title, :target, :download')
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
Capybara::SpecHelper.spec '#has_no_link?' do
|
|
50
|
+
before do
|
|
51
|
+
@session.visit('/with_html')
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'should be false if the given link is on the page' do
|
|
55
|
+
expect(@session).not_to have_no_link('foo')
|
|
56
|
+
expect(@session).not_to have_no_link('awesome title')
|
|
57
|
+
expect(@session).not_to have_no_link('A link', href: '/with_simple_html')
|
|
58
|
+
expect(@session).not_to have_no_link('labore', target: '_self')
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'should be true if the given link is not on the page' do
|
|
62
|
+
expect(@session).to have_no_link('monkey')
|
|
63
|
+
expect(@session).to have_no_link('A link', href: '/nonexistent-href')
|
|
64
|
+
expect(@session).to have_no_link('A link', href: %r{/nonexistent-href})
|
|
65
|
+
expect(@session).to have_no_link('labore', target: '_blank')
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
context 'with focused:', requires: [:active_element] do
|
|
69
|
+
it 'should be true if the given link is on the page and has focus' do
|
|
70
|
+
expect(@session).to have_no_link('labore', focused: true)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'should be false if the given link is on the page and does not have focus' do
|
|
74
|
+
@session.send_keys(:tab)
|
|
75
|
+
|
|
76
|
+
expect(@session).to have_no_link('labore', focused: false)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Capybara::SpecHelper.spec '#have_none_of_selectors' do
|
|
4
|
+
before do
|
|
5
|
+
@session.visit('/with_html')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should be false if any of the given locators are on the page' do
|
|
9
|
+
expect do
|
|
10
|
+
expect(@session).to have_none_of_selectors(:xpath, '//p', '//a')
|
|
11
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
12
|
+
expect do
|
|
13
|
+
expect(@session).to have_none_of_selectors(:css, 'p a#foo')
|
|
14
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should be true if none of the given locators are on the page' do
|
|
18
|
+
expect(@session).to have_none_of_selectors(:xpath, '//abbr', '//td')
|
|
19
|
+
expect(@session).to have_none_of_selectors(:css, 'p a#doesnotexist', 'abbr')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should use default selector' do
|
|
23
|
+
Capybara.default_selector = :css
|
|
24
|
+
expect(@session).to have_none_of_selectors('p a#doesnotexist', 'abbr')
|
|
25
|
+
expect do
|
|
26
|
+
expect(@session).to have_none_of_selectors('abbr', 'p a#foo')
|
|
27
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
context 'should respect scopes' do
|
|
31
|
+
it 'when used with `within`' do
|
|
32
|
+
@session.within "//p[@id='first']" do
|
|
33
|
+
expect do
|
|
34
|
+
expect(@session).to have_none_of_selectors(".//a[@id='foo']")
|
|
35
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
36
|
+
expect(@session).to have_none_of_selectors(".//a[@id='red']")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'when called on an element' do
|
|
41
|
+
el = @session.find "//p[@id='first']"
|
|
42
|
+
expect do
|
|
43
|
+
expect(el).to have_none_of_selectors(".//a[@id='foo']")
|
|
44
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
45
|
+
expect(el).to have_none_of_selectors(".//a[@id='red']")
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
context 'with options' do
|
|
50
|
+
it 'should apply the options to all locators' do
|
|
51
|
+
expect do
|
|
52
|
+
expect(@session).to have_none_of_selectors('//p//a', text: 'Redirect')
|
|
53
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
54
|
+
expect(@session).to have_none_of_selectors('//p', text: 'Doesnotexist')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'should discard all matches where the given regexp is matched' do
|
|
58
|
+
expect do
|
|
59
|
+
expect(@session).to have_none_of_selectors('//p//a', text: /re[dab]i/i, count: 1)
|
|
60
|
+
end.to raise_error RSpec::Expectations::ExpectationNotMetError
|
|
61
|
+
expect(@session).to have_none_of_selectors('//p//a', text: /Red$/)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
context 'with wait', requires: [:js] do
|
|
66
|
+
it 'should not find elements if they appear after given wait duration' do
|
|
67
|
+
@session.visit('/with_js')
|
|
68
|
+
@session.click_link('Click me')
|
|
69
|
+
expect(@session).to have_none_of_selectors(:css, '#new_field', 'a#has-been-clicked', wait: 0.1)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it 'cannot be negated' do
|
|
74
|
+
expect do
|
|
75
|
+
expect(@session).not_to have_none_of_selectors(:css, 'p a#foo', 'h2#h2one', 'h2#h2two')
|
|
76
|
+
end.to raise_error ArgumentError
|
|
77
|
+
end
|
|
78
|
+
end
|