webstub 0.3.4 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +1 -0
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/webstub/protocol.rb +14 -0
- data/lib/webstub/stub.rb +14 -0
- data/lib/webstub/version.rb +1 -1
- data/spec/stub_spec.rb +17 -0
- metadata +4 -5
- data/Gemfile.lock +0 -37
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
language: objective-c
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
WebStub [![Code Climate](https://codeclimate.com/
|
1
|
+
WebStub [![Code Climate](https://codeclimate.com/github/mattgreen/webstub.png)](https://codeclimate.com/github/mattgreen/webstub) [![Travis](https://api.travis-ci.org/mattgreen/webstub.png)](https://travis-ci.org/mattgreen/webstub)
|
2
2
|
======
|
3
3
|
|
4
4
|
What if [WebMock](https://github.com/bblimke/webmock) and [NSURLProtocol](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLProtocol_Class/Reference/Reference.html) had a baby?
|
data/lib/webstub/protocol.rb
CHANGED
@@ -5,6 +5,9 @@ module WebStub
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.canInitWithRequest(request)
|
8
|
+
return false unless spec_mode?
|
9
|
+
return false unless supported?(request)
|
10
|
+
|
8
11
|
if stub_for(request)
|
9
12
|
return true
|
10
13
|
end
|
@@ -106,6 +109,17 @@ module WebStub
|
|
106
109
|
body
|
107
110
|
end
|
108
111
|
end
|
112
|
+
|
113
|
+
def self.spec_mode?
|
114
|
+
RUBYMOTION_ENV == 'test'
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.supported?(request)
|
118
|
+
return false unless request.URL
|
119
|
+
return false unless request.URL.scheme.start_with?("http")
|
120
|
+
|
121
|
+
true
|
122
|
+
end
|
109
123
|
end
|
110
124
|
end
|
111
125
|
|
data/lib/webstub/stub.rb
CHANGED
@@ -24,6 +24,16 @@ module WebStub
|
|
24
24
|
return false
|
25
25
|
end
|
26
26
|
|
27
|
+
if @request_headers
|
28
|
+
headers = options[:headers] || {}
|
29
|
+
|
30
|
+
@request_headers.each do |key, value|
|
31
|
+
if headers[key] != value
|
32
|
+
return false
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
27
37
|
if @request_body
|
28
38
|
if @request_body != options[:body]
|
29
39
|
return false
|
@@ -73,6 +83,10 @@ module WebStub
|
|
73
83
|
end
|
74
84
|
end
|
75
85
|
|
86
|
+
if headers = options[:headers]
|
87
|
+
@request_headers = headers
|
88
|
+
end
|
89
|
+
|
76
90
|
self
|
77
91
|
end
|
78
92
|
|
data/lib/webstub/version.rb
CHANGED
data/spec/stub_spec.rb
CHANGED
@@ -65,6 +65,23 @@ describe WebStub::Stub do
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
describe "headers" do
|
70
|
+
before do
|
71
|
+
@stub = WebStub::Stub.new(:get, "http://www.yahoo.com/search").
|
72
|
+
with(headers: { "Authorization" => "secret" })
|
73
|
+
end
|
74
|
+
|
75
|
+
it "returns true when the headers are included" do
|
76
|
+
@stub.matches?(:get, "http://www.yahoo.com/search",
|
77
|
+
headers: { "X-Extra" => "42", "Authorization" => "secret" }).should.be.true
|
78
|
+
end
|
79
|
+
|
80
|
+
it "returns false when any of the headers are absent" do
|
81
|
+
@stub.matches?(:get, "http://www.yahoo.com/search",
|
82
|
+
headers: { "X-Extra" => "42" }).should.be.false
|
83
|
+
end
|
84
|
+
end
|
68
85
|
end
|
69
86
|
|
70
87
|
describe "#response_body" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webstub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Easily stub out HTTP responses in RubyMotion specs
|
15
15
|
email:
|
@@ -19,8 +19,8 @@ extensions: []
|
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
21
|
- .gitignore
|
22
|
+
- .travis.yml
|
22
23
|
- Gemfile
|
23
|
-
- Gemfile.lock
|
24
24
|
- Guardfile
|
25
25
|
- LICENSE
|
26
26
|
- README.md
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
requirements: []
|
66
66
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.8.
|
67
|
+
rubygems_version: 1.8.23
|
68
68
|
signing_key:
|
69
69
|
specification_version: 3
|
70
70
|
summary: Easily stub out HTTP responses in RubyMotion specs
|
@@ -77,4 +77,3 @@ test_files:
|
|
77
77
|
- spec/spec_helpers_spec.rb
|
78
78
|
- spec/stub_spec.rb
|
79
79
|
- spec/uri_spec.rb
|
80
|
-
has_rdoc:
|
data/Gemfile.lock
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
GIT
|
2
|
-
remote: git://github.com/guard/guard.git
|
3
|
-
revision: 863fa1247e07a0659edebfede61cf16096496c36
|
4
|
-
specs:
|
5
|
-
guard (1.3.2)
|
6
|
-
listen (>= 0.4.2)
|
7
|
-
thor (>= 0.14.6)
|
8
|
-
|
9
|
-
GIT
|
10
|
-
remote: git://github.com/guard/listen.git
|
11
|
-
revision: edff3eb1dfca5e7864460ece2322e85097fb0209
|
12
|
-
specs:
|
13
|
-
listen (0.5.0)
|
14
|
-
|
15
|
-
GEM
|
16
|
-
remote: http://rubygems.org/
|
17
|
-
specs:
|
18
|
-
coolline (0.3.0)
|
19
|
-
guard-motion (0.1.0)
|
20
|
-
guard (>= 1.1.0)
|
21
|
-
rake (>= 0.9)
|
22
|
-
rake (0.9.2.2)
|
23
|
-
rb-fsevent (0.9.1)
|
24
|
-
terminal-notifier-guard (1.5.3)
|
25
|
-
thor (0.16.0)
|
26
|
-
|
27
|
-
PLATFORMS
|
28
|
-
ruby
|
29
|
-
|
30
|
-
DEPENDENCIES
|
31
|
-
coolline
|
32
|
-
guard!
|
33
|
-
guard-motion
|
34
|
-
listen!
|
35
|
-
rake
|
36
|
-
rb-fsevent (~> 0.9.1)
|
37
|
-
terminal-notifier-guard
|