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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98e53964941efbc1e5d27e566659e6b1a1489cb9
4
- data.tar.gz: db52595bff50191a8351c6276975583fce3a1a29
3
+ metadata.gz: 1db8dc8c4606708bfaec803d2367dc774219377d
4
+ data.tar.gz: 8216f0d45bb7496eca95d6667ba8d45c2534cd87
5
5
  SHA512:
6
- metadata.gz: 59849ee9aa8a83a7e7f35fac1de463a1b67dd667796bde0ea4cb827d90276ba9684fbf0989cf5bdeb2f36a26bf0d6fc102b323be90c6299e29b74affee413249
7
- data.tar.gz: ac2ce9471592e6f889a5013f026ae1a0e4bab9052c2f7efef724e24035a248f6a5c8f0ffcb656e00eabbd3fd1ae34d58b318e386423b6819c3a28b951ab43eba
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
@@ -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
- uri = URI.parse(full_url(DockTest.url, path))
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
 
@@ -1,3 +1,3 @@
1
1
  module DockTest
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
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.5
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-07-30 00:00:00.000000000 Z
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