webstub 0.3.4 → 0.3.7
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/.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 [](https://codeclimate.com/github/mattgreen/webstub) [](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
|