dock_test 0.1.5 → 0.1.6
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.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/dock_test.gemspec +1 -0
- data/lib/dock_test/dsl.rb +8 -0
- data/lib/dock_test/methods.rb +18 -2
- data/lib/dock_test/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1db8dc8c4606708bfaec803d2367dc774219377d
|
4
|
+
data.tar.gz: 8216f0d45bb7496eca95d6667ba8d45c2534cd87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c5cd37ff01452292ca600fca61c711365a5c062054c3ccfc501eefe86edf53b06b3f30786c7f75d6e38043a8997d3145ae5d37a8ba1f7792c8e12b9937fef68
|
7
|
+
data.tar.gz: bc33ef1499b6de74a14da4cbfc7fd12f618be94ae66cd018aa59979a74be148f43c251f8ee3d4d9e3f5d0274f9bae69c896264917d46775552123712ea768073
|
data/README.md
CHANGED
@@ -15,6 +15,8 @@ Different from the popular [Rack::Test], DockTest focuses on just on service app
|
|
15
15
|
4. focuses on service applications to strip out sessions, cookies, javascript, file uploads, and other browser-related features.
|
16
16
|
5. provides custom assertions that are specific to api responses, including schema validation.
|
17
17
|
6. same methods as [Rack::Test] for easy test reuse.
|
18
|
+
7. support for OAuth requests
|
19
|
+
8. support for displaying equivalent curl command using `OUTPUT_CURL` environment variable.
|
18
20
|
|
19
21
|
### Sample Application
|
20
22
|
|
data/dock_test.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_dependency 'multi_json'
|
21
21
|
spec.add_dependency 'rack'
|
22
22
|
spec.add_dependency 'json-schema'
|
23
|
+
spec.add_dependency 'oauth'
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
25
|
spec.add_development_dependency "rake"
|
25
26
|
end
|
data/lib/dock_test/dsl.rb
CHANGED
@@ -24,6 +24,14 @@ module DockTest
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
# oauth settings
|
28
|
+
attr_accessor :oauth_consumer_key, :oauth_consumer_secret
|
29
|
+
|
30
|
+
# if the current dock_test environment requires oauth
|
31
|
+
def oauth?
|
32
|
+
oauth_consumer_key && oauth_consumer_secret
|
33
|
+
end
|
34
|
+
|
27
35
|
def port
|
28
36
|
URI.parse(@url).port
|
29
37
|
end
|
data/lib/dock_test/methods.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'oauth'
|
2
|
+
|
1
3
|
module DockTest
|
2
4
|
module Methods
|
3
5
|
|
@@ -10,7 +12,8 @@ module DockTest
|
|
10
12
|
skip_test_to_avoid_side_efforts
|
11
13
|
end
|
12
14
|
|
13
|
-
|
15
|
+
request_url = full_url(DockTest.url, path)
|
16
|
+
uri = URI.parse(request_url)
|
14
17
|
|
15
18
|
if DockTest.localhost?
|
16
19
|
uri.port = DockTest.port
|
@@ -38,7 +41,20 @@ module DockTest
|
|
38
41
|
end
|
39
42
|
|
40
43
|
# execute the request
|
41
|
-
@last_response = Net::HTTP.start(uri.hostname, uri.port) do |http|
|
44
|
+
@last_response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => (uri.scheme == 'https')) do |http|
|
45
|
+
|
46
|
+
# processing oauth signing
|
47
|
+
if DockTest.oauth?
|
48
|
+
oauth_consumer = OAuth::Consumer.new(DockTest.oauth_consumer_key, DockTest.oauth_consumer_secret, site: request_url)
|
49
|
+
access_token = OAuth::AccessToken.new(oauth_consumer)
|
50
|
+
oauth_consumer.sign!(@last_request, access_token)
|
51
|
+
end
|
52
|
+
|
53
|
+
if ENV['OUTPUT_CURL']
|
54
|
+
headers_string = @last_request.to_hash.map {|key, vals| vals.map {|val| [key, val]}.flatten}.map {|x| "-H '#{x[0].capitalize}: #{x[1]}'"}.join(' ')
|
55
|
+
puts "curl -X #{@last_request.method.upcase} -d '#{@last_request.body}' #{headers_string} #{request_url}"
|
56
|
+
end
|
57
|
+
|
42
58
|
http.request(@last_request)
|
43
59
|
end
|
44
60
|
|
data/lib/dock_test/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dock_test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Xu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
version: '0'
|
53
53
|
prerelease: false
|
54
54
|
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: oauth
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
version_requirements: !ruby/object:Gem::Requirement
|