capybara-typhoeus 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: '0820c824e03cd68ee1a99f9a9ec626319dd02246'
4
- data.tar.gz: 1700cbb56c739ee026784f45559d24aad3dcfb11
2
+ SHA256:
3
+ metadata.gz: 55d6e90d7b65fd3c7183b989c74e6532103382b684bda3b647e52d1dbfe04368
4
+ data.tar.gz: b1e22d5b2c32f7ac8ae85b6d13f05b8b16ab9ef2cc574368ba305824b14db16b
5
5
  SHA512:
6
- metadata.gz: 5380f190381ab811f26cc83e978577b7d7a1da61d8834605a042a95aaf9514d6a25a6e2bca0c6904cf2f60497917a2bcecda99af33884be0abfa280bdb1cfdd4
7
- data.tar.gz: e88365a2211cfd6b0ab886bfa460058f24afc9f4da37aae0daacd9527687569206dd742530b64e22e022ec8e76311b25a0cc1673413761f589efaf23f455c383
6
+ metadata.gz: 82ae5e119a7996fac56c8d24ac5551cd35aa466232e3f58a02cd4f1eec732ebafb096cd8134be1f37ae8cb1fcad0f1997279e8941f30e071288da16c682a371d
7
+ data.tar.gz: 4df5e80af597d8c6d90443cff1e705cc6aa51c394dee07b4c646d2a34b01f32a21029c2a5039a8f12d878095a715b1d5858d48fe90cb9b25f4823ecc166833b4
@@ -4,6 +4,8 @@ module Typhoeus
4
4
  [301, 302, 303, 307].include? code
5
5
  end
6
6
 
7
+ alias_method :status, :code
8
+
7
9
  def [](key)
8
10
  headers[key]
9
11
  end
@@ -12,7 +14,14 @@ end
12
14
 
13
15
  class Capybara::Typhoeus::Browser < Capybara::RackTest::Browser
14
16
 
17
+ LastRequest = Struct.new(:method, :url, :params, :headers) do
18
+ def path
19
+ URI.parse(url).path
20
+ end
21
+ end
22
+
15
23
  attr_accessor :request_body
24
+ attr_reader :last_request
16
25
  attr_reader :last_response
17
26
 
18
27
  def reset_cache!
@@ -21,6 +30,11 @@ class Capybara::Typhoeus::Browser < Capybara::RackTest::Browser
21
30
  super
22
31
  end
23
32
 
33
+ def refresh
34
+ reset_cache!
35
+ send(last_request.method, last_request.url, last_request.params, last_request.headers)
36
+ end
37
+
24
38
  def current_url
25
39
  last_response ? last_response.effective_url : ""
26
40
  end
@@ -54,6 +68,7 @@ class Capybara::Typhoeus::Browser < Capybara::RackTest::Browser
54
68
 
55
69
  [:get, :post, :put, :delete, :head, :patch, :request].each do |method|
56
70
  define_method(method) do |url, params={}, headers={}, &block|
71
+ @last_request = LastRequest.new(method, url, params, headers)
57
72
  uri = URI.parse url
58
73
  opts = driver.with_options
59
74
  opts[:method] = method
@@ -4,24 +4,59 @@ Capybara.register_driver :typhoeus_with_custom_timeout do |app|
4
4
  Capybara::Typhoeus::Driver.new app, timeout: 1
5
5
  end
6
6
 
7
- Capybara::SpecHelper.run_specs Capybara::Typhoeus::Session.new(:typhoeus, TestApp), "Typhoeus", capybara_skip: [
8
- :js,
9
- :screenshot,
10
- :frames,
11
- :windows,
12
- :server,
13
- :hover,
14
- :modals,
15
- :about_scheme,
16
- :send_keys,
7
+ module TestSessions
8
+ TyphoeusTest = Capybara::Session.new(:typhoeus, TestApp)
9
+ TyphoeusTestCustomTimeout = Capybara::Session.new(:typhoeus_with_custom_timeout, TestApp)
10
+ end
11
+
12
+ skipped_tests = %i[
13
+ js
14
+ modals
15
+ screenshot
16
+ frames
17
+ windows
18
+ send_keys
19
+ server
20
+ hover
21
+ about_scheme
22
+ download
23
+ css
24
+ scroll
17
25
  ]
26
+ Capybara::SpecHelper.run_specs TestSessions::TyphoeusTest, 'Typhoeus', capybara_skip: skipped_tests do |example|
27
+ case example.metadata[:full_description]
28
+ when /#attach_file/
29
+ skip "Typhoeus driver doesn't support #attach_file"
30
+ when /#check/
31
+ skip "Typhoeus driver doesn't support #check"
32
+ when /#uncheck/
33
+ skip "Typhoeus driver doesn't support #uncheck"
34
+ when /#click/
35
+ skip "Typhoeus driver doesn't support #click"
36
+ when /#select/
37
+ skip "Typhoeus driver doesn't support #select"
38
+ when /#unselect/
39
+ skip "Typhoeus driver doesn't support #unselect"
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
18
44
 
19
- describe Capybara::Typhoeus::Session do
45
+ RSpec.describe Capybara::Typhoeus::Session do
20
46
 
21
47
  context "with typhoeus driver" do
22
- it "should use Capybara::Typhoeus::Session" do
23
- Capybara.current_driver = :typhoeus
24
- Capybara.current_session.should be_instance_of described_class
48
+ let(:session) { TestSessions::TyphoeusTest }
49
+
50
+ describe '#driver' do
51
+ it 'should be a rack test driver' do
52
+ expect(session.driver).to be_an_instance_of(Capybara::Typhoeus::Driver)
53
+ end
54
+ end
55
+
56
+ describe '#mode' do
57
+ it 'should remember the mode' do
58
+ expect( session.mode ).to eq(:typhoeus)
59
+ end
25
60
  end
26
61
 
27
62
  context "basic authentication" do
@@ -38,14 +73,14 @@ describe Capybara::Typhoeus::Session do
38
73
  it "allow access with right credentials" do
39
74
  subject.authenticate_with "admin", "secret"
40
75
  subject.get "/"
41
- subject.status_code.should be 200
42
- subject.source.should == "Success!"
76
+ expect( subject.status_code ).to be 200
77
+ expect( subject.source ).to eq "Success!"
43
78
  end
44
79
 
45
80
  it "deny access with wrong credentials" do
46
81
  subject.authenticate_with "admin", "admin"
47
82
  subject.get "/"
48
- subject.status_code.should be 401
83
+ expect( subject.status_code ).to be 401
49
84
  end
50
85
  end
51
86
 
@@ -54,12 +89,12 @@ describe Capybara::Typhoeus::Session do
54
89
 
55
90
  context "default" do
56
91
  it "is 3 seconds" do
57
- subject.timeout.should == 3
92
+ expect( subject.timeout ).to eq 3
58
93
  end
59
94
 
60
95
  it "is used during request" do
61
96
  subject.get "/slow_response"
62
- subject.should_not be_timed_out
97
+ expect( subject ).not_to be_timed_out
63
98
  end
64
99
  end
65
100
 
@@ -67,12 +102,12 @@ describe Capybara::Typhoeus::Session do
67
102
  subject{ described_class.new :typhoeus_with_custom_timeout, TestApp }
68
103
 
69
104
  it "is stored in options" do
70
- subject.timeout.should == 1
105
+ expect( subject.timeout ).to eq 1
71
106
  end
72
107
 
73
108
  it "is used during request" do
74
109
  subject.get "/slow_response"
75
- subject.should be_timed_out
110
+ expect( subject ).to be_timed_out
76
111
  end
77
112
  end
78
113
  end
@@ -81,15 +116,17 @@ describe Capybara::Typhoeus::Session do
81
116
  subject{ described_class.new :typhoeus, TestApp }
82
117
 
83
118
  it "with empty url" do
84
- subject.host_url("").should =~ /\A#{Regexp.escape("http://127.0.0.1")}:\d+\z/
119
+ expect( subject.host_url("") ).to match /\A#{Regexp.escape("http://127.0.0.1")}:\d+\z/
85
120
  end
86
121
 
87
122
  it "with relative url" do
88
- subject.host_url("/demo/test").should =~ /\A#{Regexp.escape("http://127.0.0.1")}:\d+\/demo\/test\z/
123
+ expect( subject.host_url("/demo/test") ).to match /\A#{Regexp.escape("http://127.0.0.1")}:\d+\/demo\/test\z/
89
124
  end
90
125
 
91
126
  it "with absolute url" do
92
- subject.host_url("http://www.example.com:443/demo/test").should == "http://www.example.com:443/demo/test"
127
+ expect(
128
+ subject.host_url("http://www.example.com:443/demo/test")
129
+ ).to eq "http://www.example.com:443/demo/test"
93
130
  end
94
131
  end
95
132
 
@@ -102,20 +139,20 @@ describe Capybara::Typhoeus::Session do
102
139
  end
103
140
 
104
141
  it "body is nil be default" do
105
- subject.request_body.should be_nil
142
+ expect( subject.request_body ).to be_nil
106
143
  subject.post "/"
107
- subject.status_code.should be 200
108
- subject.source.should == ""
144
+ expect( subject.status_code ).to be 200
145
+ expect( subject.source ).to eq ""
109
146
  end
110
147
 
111
148
  it "I can send data by setting the body" do
112
149
  body = "**raw file content**"
113
150
  subject.request_body = body
114
- subject.request_body.should == body
151
+ expect( subject.request_body ).to eq body
115
152
  subject.post "/"
116
- subject.status_code.should be 200
117
- subject.source.should == body
118
- subject.request_body.should be_nil
153
+ expect( subject.status_code ).to be 200
154
+ expect( subject.source ).to eq body
155
+ expect( subject.request_body ).to be_nil
119
156
  end
120
157
  end
121
158
  end
@@ -3,27 +3,6 @@ require "capybara/typhoeus"
3
3
  require "capybara/spec/spec_helper"
4
4
  require 'pry'
5
5
 
6
- module Capybara
7
- module SpecHelper
8
- class << self
9
- alias_method :run_specs_without_skip, :run_specs
10
- def run_specs(session, name, options={})
11
- skip = [
12
- "#attach_file",
13
- "#check",
14
- "#click_button",
15
- "#click_link",
16
- "#select",
17
- "#uncheck",
18
- "#unselect",
19
- ]
20
- @specs.reject!{|spec| skip.include? spec.first}
21
- run_specs_without_skip session, name, options
22
- end
23
- end
24
- end
25
- end
26
-
27
6
  RSpec.configure do |config|
28
7
  Capybara::SpecHelper.configure config
29
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-typhoeus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph HALTER
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-11-20 00:00:00.000000000 Z
12
+ date: 2019-04-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capybara
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 2.8.0
20
+ version: '3.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 2.8.0
27
+ version: '3.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: typhoeus
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +95,20 @@ dependencies:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: puma
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
98
112
  description: Typhoeus driver for Capybara, allowing testing of REST APIs
99
113
  email:
100
114
  - jonathan.tron@metrilio.com
@@ -135,11 +149,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
149
  - !ruby/object:Gem::Version
136
150
  version: '0'
137
151
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.5.2
152
+ rubygems_version: 3.0.3
140
153
  signing_key:
141
154
  specification_version: 4
142
155
  summary: Typhoeus driver for Capybara
143
156
  test_files:
144
- - spec/session/typhoeus_spec.rb
145
157
  - spec/spec_helper.rb
158
+ - spec/session/typhoeus_spec.rb