capybara-typhoeus 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,5 @@
1
+ require "capybara"
2
+
1
3
  module Capybara
2
4
  module Driver
3
5
  autoload :Typhoeus, 'capybara/driver/typhoeus_driver'
@@ -6,4 +8,4 @@ end
6
8
 
7
9
  Capybara.register_driver :typhoeus do |app|
8
10
  Capybara::Driver::Typhoeus.new(app)
9
- end
11
+ end
@@ -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"
@@ -1,7 +1,7 @@
1
1
  require 'bundler/setup'
2
2
  require 'capybara'
3
3
  require 'capybara/typhoeus'
4
- require 'capybara/spec/extended_test_app'
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.3
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.000000000Z
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: &70241745236780 !ruby/object:Gem::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.1
22
+ version: 1.1.2
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70241745236780
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: &70241745235680 !ruby/object:Gem::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.2
38
+ version: 0.3.3
34
39
  type: :runtime
35
40
  prerelease: false
36
- version_requirements: *70241745235680
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: &70241745234580 !ruby/object:Gem::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.0
54
+ version: '1.0'
45
55
  type: :runtime
46
56
  prerelease: false
47
- version_requirements: *70241745234580
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.10
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