capybara-mechanize 1.11.0 → 1.12.0

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.
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  module TestSessions
4
- Mechanize = Capybara::Session.new(:mechanize, TestApp)
6
+ RemoteMechanize = Capybara::Session.new(:mechanize, TestApp)
5
7
  end
6
8
 
7
- shared_context "remote tests" do
9
+ shared_context 'remote tests' do
8
10
  before do
9
11
  Capybara.app_host = remote_test_url
10
12
  end
@@ -14,31 +16,31 @@ shared_context "remote tests" do
14
16
  end
15
17
  end
16
18
 
17
- session_describe = Capybara::SpecHelper.run_specs TestSessions::Mechanize, "Mechanize", :capybara_skip => [
18
- :js,
19
- :screenshot,
20
- :frames,
21
- :windows,
22
- :server,
23
- :hover,
24
- :modals,
25
- :about_scheme,
26
- :send_keys,
27
- :css,
28
- :download
19
+ skipped_tests = %i[
20
+ about_scheme
21
+ active_element
22
+ css
23
+ download
24
+ frames
25
+ hover
26
+ html_validation
27
+ js
28
+ modals
29
+ screenshot
30
+ scroll
31
+ send_keys
32
+ server
33
+ shadow_dom
34
+ spatial
35
+ windows
29
36
  ]
30
37
 
31
- session_describe.include_context("remote tests")
32
-
33
- # We disable additional tests because we don't provide a server, but do test external URls
34
- disabler = DisableExternalTests.new
35
- disabler.tests_to_disable = [
36
- ['#visit', 'when Capybara.always_include_port is true', 'should fetch a response from the driver with an absolute url without a port'],
37
- ['#has_current_path?', 'should compare the full url if url: true is used'],
38
- ['#reset_session!', 'raises any errors caught inside the server'],
39
- ['#reset_session!', 'raises any standard errors caught inside the server']
40
- ]
41
- disabler.disable(session_describe)
38
+ Capybara::SpecHelper.run_specs(TestSessions::RemoteMechanize, 'RemoteMechanize', capybara_skip: skipped_tests) do |example|
39
+ case example.metadata[:full_description]
40
+ when /has_css\? should support case insensitive :class and :id options/
41
+ skip "Nokogiri doesn't support case insensitive CSS attribute matchers"
42
+ end
43
+ end
42
44
 
43
45
  describe Capybara::Session do
44
46
  context 'with remote mechanize driver' do
@@ -47,37 +49,37 @@ describe Capybara::Session do
47
49
  let(:session) { Capybara::Session.new(:mechanize, ExtendedTestApp) }
48
50
 
49
51
  describe '#driver' do
50
- it "should be a mechanize driver" do
51
- session.driver.should be_an_instance_of(Capybara::Mechanize::Driver)
52
+ it 'should be a mechanize driver' do
53
+ expect(session.driver).to be_an_instance_of(Capybara::Mechanize::Driver)
52
54
  end
53
55
  end
54
56
 
55
57
  describe '#mode' do
56
- it "should remember the mode" do
57
- session.mode.should == :mechanize
58
+ it 'should remember the mode' do
59
+ expect(session.mode).to eq(:mechanize)
58
60
  end
59
61
  end
60
62
 
61
63
  describe '#click_link' do
62
- it "should use data-method if option is true" do
64
+ it 'should use data-method if option is true' do
63
65
  session.driver.options[:respect_data_method] = true
64
- session.visit "/with_html"
65
- session.click_link "A link with data-method"
66
- session.html.should include('The requested object was deleted')
66
+ session.visit '/with_html'
67
+ session.click_link 'A link with data-method'
68
+ expect(session.html).to include('The requested object was deleted')
67
69
  end
68
70
 
69
- it "should not use data-method if option is false" do
71
+ it 'should not use data-method if option is false' do
70
72
  session.driver.options[:respect_data_method] = false
71
- session.visit "/with_html"
72
- session.click_link "A link with data-method"
73
- session.html.should include('Not deleted')
73
+ session.visit '/with_html'
74
+ session.click_link 'A link with data-method'
75
+ expect(session.html).to include('Not deleted')
74
76
  end
75
77
 
76
78
  it "should use data-method if available even if it's capitalized" do
77
79
  session.driver.options[:respect_data_method] = true
78
- session.visit "/with_html"
79
- session.click_link "A link with capitalized data-method"
80
- session.html.should include('The requested object was deleted')
80
+ session.visit '/with_html'
81
+ session.click_link 'A link with capitalized data-method'
82
+ expect(session.html).to include('The requested object was deleted')
81
83
  end
82
84
 
83
85
  after do
@@ -85,27 +87,27 @@ describe Capybara::Session do
85
87
  end
86
88
  end
87
89
 
88
- describe "#attach_file" do
89
- context "with multipart form" do
90
- it "should submit an empty form-data section if no file is submitted" do
91
- session.visit("/form")
92
- session.click_button("Upload Empty")
93
- session.html.should include('Successfully ignored empty file field.')
90
+ describe '#attach_file' do
91
+ context 'with multipart form' do
92
+ it 'should submit an empty form-data section if no file is submitted' do
93
+ session.visit('/form')
94
+ session.click_button('Upload Empty')
95
+ expect(session.html).to include('Successfully ignored empty file field.')
94
96
  end
95
97
  end
96
98
  end
97
99
 
98
- context "remote app in a sub-path" do
99
- it "follows relative link correctly" do
100
- session.visit "/subsite/relative_link_to_host"
101
- session.click_link "host"
102
- session.body.should include('request_info2/host')
100
+ context 'remote app in a sub-path' do
101
+ it 'follows relative link correctly' do
102
+ session.visit '/subsite/relative_link_to_host'
103
+ session.click_link 'host'
104
+ expect(session.body).to include('request_info2/host')
103
105
  end
104
106
 
105
- it "follows local link correctly" do
106
- session.visit "/subsite/local_link_to_host"
107
- session.click_link "host"
108
- session.body.should include('request_info2/host')
107
+ it 'follows local link correctly' do
108
+ session.visit '/subsite/local_link_to_host'
109
+ session.click_link 'host'
110
+ expect(session.body).to include('request_info2/host')
109
111
  end
110
112
  end
111
113
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'capybara/spec/spec_helper'
2
4
  require 'capybara/mechanize'
3
5
  require 'capybara/spec/extended_test_app'
@@ -9,9 +11,8 @@ $LOAD_PATH << File.join(PROJECT_ROOT, 'lib')
9
11
  Dir[File.join(PROJECT_ROOT, 'spec', 'support', '**', '*.rb')].each { |file| require(file) }
10
12
 
11
13
  RSpec.configure do |config|
12
- config.filter_run :focus => true unless ENV['CI']
14
+ config.filter_run focus: true unless ENV['CI']
13
15
  config.run_all_when_everything_filtered = true
14
- config.treat_symbols_as_metadata_keys_with_true_values = true if RSpec::Version::STRING =~ /^2\./
15
16
 
16
17
  # Used with DisableExternalTests
17
18
  config.filter_run_excluding :external_test_disabled
@@ -26,8 +27,7 @@ RSpec.configure do |config|
26
27
 
27
28
  Capybara::SpecHelper.configure(config)
28
29
 
29
- config.order = "random"
30
+ config.order = 'random'
30
31
 
31
32
  CAPYBARA_DEFAULT_HOST = Capybara.default_host
32
33
  end
33
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class DisableExternalTests
2
4
  attr_accessor :tests_to_disable
3
5
 
@@ -8,13 +10,12 @@ class DisableExternalTests
8
10
  example_description = to_disable.pop
9
11
 
10
12
  to_disable.each do |description|
11
- example_group = example_group.children.find{ |g| g.description == description }
13
+ example_group = example_group.children.find { |g| g.description == description }
12
14
  end
13
15
 
14
- example = example_group.examples.find{ |e| e.description == example_description }
16
+ example = example_group.examples.find { |e| e.description == example_description }
15
17
 
16
18
  example.metadata[:external_test_disabled] = true unless example.nil?
17
19
  end
18
-
19
20
  end
20
21
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This class works around some weirdness with Capybara's test suite and sinatra's behavior.
2
4
  # We need to make sure that sinatra uses TestApp for at least one request before the Capybara session
3
5
  # specs run. Without this we get errors from sinatra trying to handle requests with TestApp.clone
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RemoteTestUrl
2
4
  def remote_test_url
3
5
  ExtendedTestAppSetup.new.boot.remote_test_url
4
6
  end
5
- end
7
+ end
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-mechanize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeroen van Dijk
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-12 00:00:00.000000000 Z
11
+ date: 2022-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capybara
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.0.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: mechanize
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -25,25 +45,61 @@ dependencies:
25
45
  - !ruby/object:Gem::Version
26
46
  version: 2.7.0
27
47
  - !ruby/object:Gem::Dependency
28
- name: capybara
48
+ name: launchy
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
51
  - - ">="
32
52
  - !ruby/object:Gem::Version
33
- version: 2.4.4
34
- - - "<"
53
+ version: 2.0.4
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
35
59
  - !ruby/object:Gem::Version
36
- version: '4'
37
- type: :runtime
60
+ version: 2.0.4
61
+ - !ruby/object:Gem::Dependency
62
+ name: rake
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
38
69
  prerelease: false
39
70
  version_requirements: !ruby/object:Gem::Requirement
40
71
  requirements:
41
72
  - - ">="
42
73
  - !ruby/object:Gem::Version
43
- version: 2.4.4
44
- - - "<"
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rdoc
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
45
80
  - !ruby/object:Gem::Version
46
- version: '4'
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.5'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.5'
47
103
  description: RackTest driver for Capybara, but with remote request support thanks
48
104
  to mechanize
49
105
  email: jeroen@jeevidee.nl
@@ -71,7 +127,7 @@ files:
71
127
  homepage: https://github.com/jeroenvandijk/capybara-mechanize
72
128
  licenses: []
73
129
  metadata: {}
74
- post_install_message:
130
+ post_install_message:
75
131
  rdoc_options:
76
132
  - "--charset=UTF-8"
77
133
  require_paths:
@@ -80,16 +136,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
136
  requirements:
81
137
  - - ">="
82
138
  - !ruby/object:Gem::Version
83
- version: '0'
139
+ version: 2.6.0
84
140
  required_rubygems_version: !ruby/object:Gem::Requirement
85
141
  requirements:
86
142
  - - ">="
87
143
  - !ruby/object:Gem::Version
88
144
  version: '0'
89
145
  requirements: []
90
- rubyforge_project:
91
- rubygems_version: 2.4.8
92
- signing_key:
146
+ rubygems_version: 3.1.6
147
+ signing_key:
93
148
  specification_version: 4
94
149
  summary: RackTest driver for Capybara with remote request support
95
150
  test_files: []