capybara-json 0.0.3 → 0.1.0
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.md +3 -0
- data/README.md +5 -5
- data/VERSION +1 -1
- data/lib/capybara/httpclient_json/driver.rb +5 -5
- data/spec/capybara/httpclient_json/driver_spec.rb +3 -0
- data/spec/capybara/rack_test_json/driver_spec.rb +3 -0
- data/spec/support/driver_examples.rb +30 -0
- data/spec/support/json_test_app.rb +5 -0
- metadata +18 -18
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -11,16 +11,16 @@ testing web application
|
|
11
11
|
|
12
12
|
## USAGE
|
13
13
|
require 'capybara/json'
|
14
|
-
Capybara.current_driver = :rack_test_json
|
15
|
-
|
16
14
|
include Capybara::Json
|
17
|
-
|
15
|
+
|
16
|
+
Capybara.current_driver = :rack_test_json
|
17
|
+
post '/', { "this is" => "json" } # POST '/'
|
18
18
|
body #=> parsed json response
|
19
19
|
source #=> raw response body
|
20
20
|
|
21
21
|
Capybara.current_driver = :httpclient_json
|
22
|
-
|
23
|
-
post '
|
22
|
+
Capybara.app_host = 'http://example.com'
|
23
|
+
post '/', { "this is" => "json" } # POST 'http://example.com/'
|
24
24
|
body #=> parsed json response
|
25
25
|
source #=> raw response body
|
26
26
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
@@ -66,11 +66,11 @@ class Capybara::HTTPClientJson::Driver < Capybara::Driver::Base
|
|
66
66
|
begin
|
67
67
|
@response = client.__send__(method, @current_url, params, headers, options)
|
68
68
|
rescue HTTPClient::BadResponseError => e
|
69
|
-
|
69
|
+
if e.message == "retry count exceeded"
|
70
|
+
raise Capybara::InfiniteRedirectError
|
71
|
+
else
|
72
|
+
@response = e.res
|
73
|
+
end
|
70
74
|
end
|
71
75
|
end
|
72
|
-
|
73
|
-
def url_for(path)
|
74
|
-
path
|
75
|
-
end
|
76
76
|
end
|
@@ -64,4 +64,34 @@ end
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
+
shared_examples_for 'driver for client error' do
|
68
|
+
it 'should not raise exception' do
|
69
|
+
expect { @driver.get('/errors/400') }.should_not raise_exception
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should make the status code available' do
|
73
|
+
@driver.get('/errors/400')
|
74
|
+
@driver.status_code.should == 400
|
75
|
+
end
|
67
76
|
|
77
|
+
it 'should make the response header available' do
|
78
|
+
@driver.get('/errors/400')
|
79
|
+
@driver.response_headers['Content-Type'].should =~ /^application\/json/
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should make the body available' do
|
83
|
+
@driver.get('/errors/400')
|
84
|
+
@driver.body['status_code'].should == 400
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
shared_examples_for 'driver for server error' do
|
89
|
+
it 'should not raise exception' do
|
90
|
+
expect { @driver.get('/errors/500') }.should_not raise_exception
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should make the status_code available' do
|
94
|
+
@driver.get('/errors/500')
|
95
|
+
@driver.status_code.should == 500
|
96
|
+
end
|
97
|
+
end
|
@@ -54,4 +54,9 @@ class JsonTestApp < TestApp
|
|
54
54
|
envs.merge('params' => params, 'headers' => headers, 'rack.input' => env['rack.input'].string)
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
get '/errors/:status_code' do |status_code|
|
59
|
+
status status_code.to_i
|
60
|
+
{ 'status_code' => status_code.to_i }
|
61
|
+
end
|
57
62
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-json
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capybara
|
16
|
-
requirement: &
|
16
|
+
requirement: &79508610 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *79508610
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httpclient
|
27
|
-
requirement: &
|
27
|
+
requirement: &79508060 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *79508060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: multi_json
|
38
|
-
requirement: &
|
38
|
+
requirement: &79507280 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *79507280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &79506490 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.8.0.rc
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *79506490
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sinatra
|
60
|
-
requirement: &
|
60
|
+
requirement: &79505920 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *79505920
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yajl-ruby
|
71
|
-
requirement: &
|
71
|
+
requirement: &79505530 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *79505530
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: autowatchr
|
82
|
-
requirement: &
|
82
|
+
requirement: &79505310 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *79505310
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rake
|
93
|
-
requirement: &
|
93
|
+
requirement: &79505050 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *79505050
|
102
102
|
description: for testing json-api with capybara
|
103
103
|
email:
|
104
104
|
- okitakunio@gmail.com
|