capybara-typhoeus 0.2.3 → 0.2.4
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.
- data/lib/capybara/driver/typhoeus_driver.rb +17 -14
- data/lib/capybara/typhoeus.rb +3 -1
- data/spec/session/typhoeus_spec.rb +8 -9
- data/spec/spec_helper.rb +2 -2
- metadata +94 -14
- data/lib/capybara/spec/extended_test_app.rb +0 -17
@@ -13,7 +13,7 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
13
13
|
def client
|
14
14
|
@client ||= Typhoeus::Hydra.new
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def initialize(app, options={})
|
18
18
|
@app = app
|
19
19
|
@options = options
|
@@ -25,7 +25,7 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
25
25
|
reset_cache
|
26
26
|
process :get, url, params
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def get(url, params = {}, headers = {})
|
30
30
|
reset_cache
|
31
31
|
process :get, url, params, headers
|
@@ -60,7 +60,7 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
60
60
|
reset_cache
|
61
61
|
process :request, url, params, headers
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def submit(method, path, attributes)
|
65
65
|
path = request.path if not path or path.empty?
|
66
66
|
process method.to_sym, path, attributes
|
@@ -69,24 +69,24 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
69
69
|
def find(selector)
|
70
70
|
dom.xpath(selector).map { |node| Node.new(self, node) }
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def html
|
74
74
|
@html ||= Nokogiri::HTML body
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
def xml
|
78
78
|
@xml ||= Nokogiri::XML body
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
def json
|
82
82
|
@json ||= Yajl::Parser.parse body
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
def body
|
86
86
|
response.body
|
87
87
|
end
|
88
88
|
alias_method :source, :body
|
89
|
-
|
89
|
+
|
90
90
|
def response_headers
|
91
91
|
response.headers_hash
|
92
92
|
end
|
@@ -94,28 +94,28 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
94
94
|
def status_code
|
95
95
|
response.code
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
def current_url
|
99
99
|
@current_uri.to_s
|
100
100
|
end
|
101
|
-
|
101
|
+
|
102
102
|
def reset!
|
103
103
|
@client = nil
|
104
104
|
@response = nil
|
105
105
|
@current_uri = nil
|
106
106
|
reset_cache
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
def reset_with!
|
110
110
|
@with_headers = {}
|
111
111
|
@with_params = {}
|
112
112
|
@with_options = {}
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
def as
|
116
116
|
@as ||= "application/json"
|
117
117
|
end
|
118
|
-
|
118
|
+
|
119
119
|
def with_headers
|
120
120
|
@with_headers ||= {}
|
121
121
|
end
|
@@ -144,8 +144,11 @@ class Capybara::Driver::Typhoeus < Capybara::Driver::Base
|
|
144
144
|
request = Typhoeus::Request.new @current_uri, with_options.merge(opts)
|
145
145
|
client.queue request
|
146
146
|
client.run
|
147
|
+
# $stdout.puts request.inspect
|
147
148
|
@response = request.response
|
149
|
+
# $stdout.puts response.inspect
|
148
150
|
if @response.timed_out?
|
151
|
+
`open #{@current_uri}`
|
149
152
|
$stderr.puts "#{method.to_s.upcase} #{@current_uri}: time out"
|
150
153
|
elsif @response.code==0
|
151
154
|
$stderr.puts "#{method.to_s.upcase} #{@current_uri}: #{@response.curl_error_message}"
|
@@ -177,4 +180,4 @@ private
|
|
177
180
|
@json = nil
|
178
181
|
end
|
179
182
|
|
180
|
-
end
|
183
|
+
end
|
data/lib/capybara/typhoeus.rb
CHANGED
@@ -10,6 +10,14 @@ describe Capybara::Session do
|
|
10
10
|
@session = TestSessions::Typhoeus
|
11
11
|
end
|
12
12
|
|
13
|
+
after do
|
14
|
+
@session.reset_session!
|
15
|
+
end
|
16
|
+
|
17
|
+
def extract_results(session)
|
18
|
+
YAML.load Nokogiri::HTML(session.body).xpath("//pre[@id='results']").first.text
|
19
|
+
end
|
20
|
+
|
13
21
|
describe '#driver' do
|
14
22
|
it "should be a typhoeus driver" do
|
15
23
|
@session.driver.should be_an_instance_of Capybara::Driver::Typhoeus
|
@@ -22,14 +30,6 @@ describe Capybara::Session do
|
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
25
|
-
def extract_results(session)
|
26
|
-
YAML.load Nokogiri::HTML(session.body).xpath("//pre[@id='results']").first.text
|
27
|
-
end
|
28
|
-
|
29
|
-
after do
|
30
|
-
@session.reset!
|
31
|
-
end
|
32
|
-
|
33
33
|
describe '#app' do
|
34
34
|
it "should remember the application" do
|
35
35
|
@session.app.should == TestApp
|
@@ -67,7 +67,6 @@ describe Capybara::Session do
|
|
67
67
|
it_should_behave_like "find_by_id"
|
68
68
|
it_should_behave_like "has_content"
|
69
69
|
it_should_behave_like "has_css"
|
70
|
-
it_should_behave_like "has_css"
|
71
70
|
it_should_behave_like "has_selector"
|
72
71
|
it_should_behave_like "has_xpath"
|
73
72
|
it_should_behave_like "has_link"
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'bundler/setup'
|
2
2
|
require 'capybara'
|
3
3
|
require 'capybara/typhoeus'
|
4
|
-
require 'capybara/spec/
|
4
|
+
require 'capybara/spec/test_app'
|
5
5
|
require 'capybara/spec/driver'
|
6
6
|
require 'capybara/spec/session'
|
7
7
|
|
@@ -13,4 +13,4 @@ RSpec.configure do |config|
|
|
13
13
|
config.after do
|
14
14
|
Capybara.default_selector = :xpath
|
15
15
|
end
|
16
|
-
end
|
16
|
+
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.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,41 +10,120 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2011-04-22 00:00:00.
|
13
|
+
date: 2011-04-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capybara
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.1.
|
22
|
+
version: 1.1.2
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.1.2
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: typhoeus
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ~>
|
32
37
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.
|
38
|
+
version: 0.3.3
|
34
39
|
type: :runtime
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.3.3
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: yajl-ruby
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ~>
|
43
53
|
- !ruby/object:Gem::Version
|
44
|
-
version: 1.0
|
54
|
+
version: '1.0'
|
45
55
|
type: :runtime
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: rake
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: rspec
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: rack
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
type: :development
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: sinatra
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
48
127
|
description: Typhoeus driver for Capybara, allowing testing of REST APIs
|
49
128
|
email: joseph.halter@thetalentbox.com
|
50
129
|
executables: []
|
@@ -52,7 +131,6 @@ extensions: []
|
|
52
131
|
extra_rdoc_files: []
|
53
132
|
files:
|
54
133
|
- lib/capybara/driver/typhoeus_driver.rb
|
55
|
-
- lib/capybara/spec/extended_test_app.rb
|
56
134
|
- lib/capybara/typhoeus/cucumber.rb
|
57
135
|
- lib/capybara/typhoeus.rb
|
58
136
|
- spec/driver/typhoeus_driver_spec.rb
|
@@ -72,6 +150,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
72
150
|
- - ! '>='
|
73
151
|
- !ruby/object:Gem::Version
|
74
152
|
version: '0'
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
hash: -3419795448248900470
|
75
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
157
|
none: false
|
77
158
|
requirements:
|
@@ -80,9 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
161
|
version: '0'
|
81
162
|
requirements: []
|
82
163
|
rubyforge_project:
|
83
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.24
|
84
165
|
signing_key:
|
85
166
|
specification_version: 3
|
86
167
|
summary: Typhoeus driver for Capybara
|
87
168
|
test_files: []
|
88
|
-
has_rdoc:
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'capybara/spec/test_app'
|
2
|
-
|
3
|
-
class ExtendedTestApp < TestApp
|
4
|
-
set :environment, :production
|
5
|
-
|
6
|
-
get %r{/redirect_to/(.*)} do
|
7
|
-
redirect params[:captures]
|
8
|
-
end
|
9
|
-
|
10
|
-
get '/host' do
|
11
|
-
"current host is #{request.host}"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
if __FILE__ == $0
|
16
|
-
Rack::Handler::Mongrel.run ExtendedTestApp, :Port => 8070
|
17
|
-
end
|