dock_test 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
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