capybara-envjs 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,9 @@
1
+ === 0.1.4 / 2010-05-31
2
+
3
+ * Fix URL handling edge cases
4
+ * World is defined on self/main, not Object
5
+ * make sure header lookup is case insensitive
6
+
1
7
  === 0.1.3 / 2010-05-19
2
8
 
3
9
  * alway return headers from doc ... the rack request might not be current
data/Rakefile CHANGED
@@ -9,14 +9,14 @@ Hoe.plugins.delete :rubyforge
9
9
 
10
10
  Hoe.spec 'capybara-envjs' do
11
11
  developer 'Steven Parkes', 'smparkes@smparkes.net'
12
- self.version = "0.1.3"
12
+ self.version = "0.1.4"
13
13
 
14
14
  self.readme_file = 'README.rdoc'
15
15
  self.extra_rdoc_files = Dir['*.rdoc']
16
16
 
17
17
  self.extra_deps = [
18
18
  ['capybara', '>= 0.3.8'],
19
- ['envjs', '>= 0.3.5']
19
+ ['envjs', '>= 0.3.6']
20
20
  ]
21
21
 
22
22
  self.extra_dev_deps = [
@@ -144,7 +144,6 @@ class Capybara::Driver::Envjs < Capybara::Driver::Base
144
144
 
145
145
  def initialize(app)
146
146
 
147
-
148
147
  @app_host = (ENV["CAPYBARA_APP_HOST"] || Capybara.app_host || "http://example.com")
149
148
 
150
149
  @rack_test = @app_host =~ %r{^https?://[^.]*\.?example\.(com|org)}
@@ -183,9 +182,6 @@ class Capybara::Driver::Envjs < Capybara::Driver::Base
183
182
  browser.master["connection"] = @connection = proc do |*args|
184
183
  xhr, responseHandler, data = *args
185
184
  url = xhr.url
186
- if url.index(app_host) == 0
187
- url.slice! 0..(app_host.length-1)
188
- end
189
185
  params = data || {}
190
186
  method = xhr["method"].downcase.to_sym
191
187
  e = env;
@@ -196,12 +192,18 @@ class Capybara::Driver::Envjs < Capybara::Driver::Base
196
192
  e["CONTENT_LENGTH"] ||= params.length
197
193
  end
198
194
  begin
195
+ if url.index(app_host) == 0
196
+ url.slice! 0..(app_host.length-1)
197
+ end
199
198
  # puts "send #{method} #{url} #{params}"
200
199
  send method, url, params, e
201
200
  while response.status == 302
202
201
  params = {}
203
202
  method = :get
204
203
  url = response.location
204
+ if url.index(app_host) == 0
205
+ url.slice! 0..(app_host.length-1)
206
+ end
205
207
  # puts "redirect #{method} #{url} #{params}"
206
208
  send method, url, params, e
207
209
  end
@@ -216,7 +218,12 @@ class Capybara::Driver::Envjs < Capybara::Driver::Base
216
218
  xhr.status = response.status
217
219
  xhr.responseText = response.body
218
220
  xhr.readyState = 4
219
- url = app_host+url
221
+ if url.index(app_host) == 0
222
+ url.slice! 0..(app_host.length-1)
223
+ end
224
+ if url.slice(0..0) == "/"
225
+ url = app_host+url
226
+ end
220
227
  xhr.__url = url
221
228
  responseHandler.call
222
229
  end
@@ -247,7 +254,8 @@ class Capybara::Driver::Envjs < Capybara::Driver::Base
247
254
  @hash = hash
248
255
  end
249
256
  def [] key
250
- @hash[key.downcase]
257
+ pair = @hash.find { |pair| pair[0].downcase == key.downcase }
258
+ pair && pair[1]
251
259
  end
252
260
  end
253
261
 
@@ -1,6 +1,6 @@
1
1
  require 'capybara'
2
2
  require 'capybara/driver/envjs_driver'
3
3
 
4
- if Object.const_defined? :Cucumber and Object.respond_to? :World
4
+ if Object.const_defined? :Cucumber and self.respond_to? :World
5
5
  require 'capybara/envjs/cucumber'
6
6
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 3
9
- version: 0.1.3
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Steven Parkes
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-19 00:00:00 -07:00
17
+ date: 2010-05-31 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -41,8 +41,8 @@ dependencies:
41
41
  segments:
42
42
  - 0
43
43
  - 3
44
- - 5
45
- version: 0.3.5
44
+ - 6
45
+ version: 0.3.6
46
46
  type: :runtime
47
47
  version_requirements: *id002
48
48
  - !ruby/object:Gem::Dependency