capybara-envjs 0.1.3 → 0.1.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/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