oauth 0.5.0 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +22 -9
  3. data/bin/oauth +8 -2
  4. data/lib/oauth.rb +2 -2
  5. data/lib/oauth/cli.rb +37 -359
  6. data/lib/oauth/cli/authorize_command.rb +71 -0
  7. data/lib/oauth/cli/base_command.rb +208 -0
  8. data/lib/oauth/cli/help_command.rb +22 -0
  9. data/lib/oauth/cli/query_command.rb +25 -0
  10. data/lib/oauth/cli/sign_command.rb +81 -0
  11. data/lib/oauth/cli/version_command.rb +7 -0
  12. data/lib/oauth/client/action_controller_request.rb +1 -1
  13. data/lib/oauth/client/em_http.rb +0 -1
  14. data/lib/oauth/client/helper.rb +8 -2
  15. data/lib/oauth/client/net_http.rb +0 -1
  16. data/lib/oauth/consumer.rb +69 -13
  17. data/lib/oauth/helper.rb +10 -6
  18. data/lib/oauth/request_proxy/action_controller_request.rb +2 -2
  19. data/lib/oauth/request_proxy/action_dispatch_request.rb +7 -0
  20. data/lib/oauth/request_proxy/base.rb +6 -2
  21. data/lib/oauth/tokens/request_token.rb +14 -7
  22. data/lib/oauth/version.rb +1 -1
  23. metadata +93 -96
  24. data/lib/oauth/core_ext.rb +0 -31
  25. data/test/cases/oauth_case.rb +0 -19
  26. data/test/cases/spec/1_0-final/test_construct_request_url.rb +0 -62
  27. data/test/cases/spec/1_0-final/test_normalize_request_parameters.rb +0 -88
  28. data/test/cases/spec/1_0-final/test_parameter_encodings.rb +0 -86
  29. data/test/cases/spec/1_0-final/test_signature_base_strings.rb +0 -77
  30. data/test/integration/consumer_test.rb +0 -307
  31. data/test/test_access_token.rb +0 -26
  32. data/test/test_action_controller_request_proxy.rb +0 -157
  33. data/test/test_consumer.rb +0 -226
  34. data/test/test_curb_request_proxy.rb +0 -77
  35. data/test/test_em_http_client.rb +0 -80
  36. data/test/test_em_http_request_proxy.rb +0 -115
  37. data/test/test_helper.rb +0 -33
  38. data/test/test_hmac_sha1.rb +0 -20
  39. data/test/test_net_http_client.rb +0 -298
  40. data/test/test_net_http_request_proxy.rb +0 -72
  41. data/test/test_oauth_helper.rb +0 -94
  42. data/test/test_rack_request_proxy.rb +0 -40
  43. data/test/test_request_token.rb +0 -56
  44. data/test/test_rest_client_request_proxy.rb +0 -81
  45. data/test/test_rsa_sha1.rb +0 -59
  46. data/test/test_server.rb +0 -41
  47. data/test/test_signature.rb +0 -15
  48. data/test/test_signature_base.rb +0 -32
  49. data/test/test_signature_hmac_sha1.rb +0 -40
  50. data/test/test_signature_plain_text.rb +0 -31
  51. data/test/test_token.rb +0 -14
  52. data/test/test_typhoeus_request_proxy.rb +0 -101
@@ -1,15 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require File.expand_path('../test_helper', __FILE__)
4
-
5
- class TestOauth < Minitest::Test
6
-
7
- def test_parameter_escaping_kcode_invariant
8
- %w(n N e E s S u U).each do |kcode|
9
- assert_equal '%E3%81%82', OAuth::Helper.escape('あ'),
10
- "Failed to correctly escape Japanese under $KCODE = #{kcode}"
11
- assert_equal '%C3%A9', OAuth::Helper.escape('é'),
12
- "Failed to correctly escape e+acute under $KCODE = #{kcode}"
13
- end
14
- end
15
- end
@@ -1,32 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'oauth/signature/base'
3
- require 'net/http'
4
-
5
- class SignatureBaseTest < Minitest::Test
6
-
7
- def test_that_initialize_requires_one_request_argument
8
- assert_raises ArgumentError do
9
- OAuth::Signature::Base.new()
10
- end
11
- end
12
-
13
- def test_that_initialize_requires_a_valid_request_argument
14
- request = nil
15
- assert_raises TypeError do
16
- OAuth::Signature::Base.new(request) { |token|
17
- # just a stub
18
- }
19
- end
20
- end
21
-
22
- def test_that_initialize_succeeds_when_the_request_proxy_is_valid
23
- # this isn't quite valid, but it will do.
24
- raw_request = Net::HTTP::Get.new('/test')
25
- request = OAuth::RequestProxy.proxy(raw_request)
26
-
27
- OAuth::Signature::Base.new(request) { |token|
28
- # just a stub
29
- }
30
- end
31
-
32
- end
@@ -1,40 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'oauth/signature/hmac/sha1'
3
-
4
- class SignatureHMACSHA1Test < Test::Unit::TestCase
5
- def test_that_verify_returns_true_when_the_request_signature_is_right
6
- request = OAuth::RequestProxy::MockRequest.new(
7
- 'method' => 'POST',
8
- 'uri' => 'https://photos.example.net/initialize',
9
- 'parameters' => {
10
- 'oauth_consumer_key' => 'dpf43f3p2l4k3l03',
11
- 'oauth_signature_method' => 'HMAC-SHA1',
12
- 'oauth_timestamp' => '137131200',
13
- 'oauth_nonce' => 'wIjqoS',
14
- 'oauth_callback' => 'http://printer.example.com/ready',
15
- 'oauth_version' => '1.0',
16
- 'oauth_signature' => 'xcHYBV3AbyoDz7L4dV10P3oLCjY='
17
- }
18
- )
19
- assert OAuth::Signature::HMAC::SHA1.new(request, :consumer_secret => 'kd94hf93k423kf44').verify
20
- end
21
-
22
- def test_that_verify_returns_false_when_the_request_signature_is_wrong
23
- # Test a bug in the OAuth::Signature::Base#== method: when the Base64.decode64 method is
24
- # used on the "self" and "other" signature (as in version 0.4.7), the result may be incorrectly "true".
25
- request = OAuth::RequestProxy::MockRequest.new(
26
- 'method' => 'POST',
27
- 'uri' => 'https://photos.example.net/initialize',
28
- 'parameters' => {
29
- 'oauth_consumer_key' => 'dpf43f3p2l4k3l03',
30
- 'oauth_signature_method' => 'HMAC-SHA1',
31
- 'oauth_timestamp' => '137131200',
32
- 'oauth_nonce' => 'wIjqoS',
33
- 'oauth_callback' => 'http://printer.example.com/ready',
34
- 'oauth_version' => '1.0',
35
- 'oauth_signature' => 'xcHYBV3AbyoDz7L4dV10P3oLCjZ='
36
- }
37
- )
38
- assert !OAuth::Signature::HMAC::SHA1.new(request, :consumer_secret => 'kd94hf93k423kf44').verify
39
- end
40
- end
@@ -1,31 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'oauth/signature/plaintext'
3
-
4
- class TestSignaturePlaintext < Minitest::Test
5
- def test_that_plaintext_implements_plaintext
6
- assert OAuth::Signature.available_methods.include?('plaintext')
7
- end
8
-
9
- def test_that_get_request_from_oauth_test_cases_produces_matching_signature
10
- request = Net::HTTP::Get.new('/photos?file=vacation.jpg&size=original&oauth_version=1.0&oauth_consumer_key=dpf43f3p2l4k3l03&oauth_token=nnch734d00sl2jdk&oauth_signature=kd94hf93k423kf44%26&oauth_timestamp=1191242096&oauth_nonce=kllo9940pd9333jh&oauth_signature_method=PLAINTEXT')
11
-
12
- consumer = OAuth::Consumer.new('dpf43f3p2l4k3l03','kd94hf93k423kf44')
13
- token = OAuth::Token.new('nnch734d00sl2jdk', nil)
14
-
15
- assert OAuth::Signature.verify(request, { :consumer => consumer,
16
- :token => token,
17
- :uri => 'http://photos.example.net/photos' } )
18
- end
19
-
20
- def test_that_get_request_from_oauth_test_cases_produces_matching_signature_part_two
21
- request = Net::HTTP::Get.new('/photos?file=vacation.jpg&size=original&oauth_version=1.0&oauth_consumer_key=dpf43f3p2l4k3l03&oauth_token=nnch734d00sl2jdk&oauth_signature=kd94hf93k423kf44%26pfkkdhi9sl3r4s00&oauth_timestamp=1191242096&oauth_nonce=kllo9940pd9333jh&oauth_signature_method=PLAINTEXT')
22
-
23
- consumer = OAuth::Consumer.new('dpf43f3p2l4k3l03','kd94hf93k423kf44')
24
- token = OAuth::Token.new('nnch734d00sl2jdk', 'pfkkdhi9sl3r4s00')
25
-
26
- assert OAuth::Signature.verify(request, { :consumer => consumer,
27
- :token => token,
28
- :uri => 'http://photos.example.net/photos' } )
29
- end
30
-
31
- end
@@ -1,14 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
- require 'oauth/token'
3
-
4
- class TestToken < Minitest::Test
5
-
6
- def setup
7
- end
8
-
9
- def test_token_constructor_produces_valid_token
10
- token = OAuth::Token.new('xyz', '123')
11
- assert_equal 'xyz', token.token
12
- assert_equal '123', token.secret
13
- end
14
- end
@@ -1,101 +0,0 @@
1
- require File.expand_path('../test_helper', __FILE__)
2
-
3
- begin
4
-
5
- require 'oauth/request_proxy/typhoeus_request'
6
- require 'typhoeus'
7
-
8
- class TyphoeusRequestProxyTest < Minitest::Test
9
-
10
- def test_that_proxy_simple_get_request_works
11
- request = ::Typhoeus::Request.new('/test?key=value')
12
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value'})
13
-
14
- expected_parameters = {'key' => ['value']}
15
- assert_equal expected_parameters, request_proxy.parameters_for_signature
16
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
17
- assert_equal 'GET', request_proxy.method
18
- end
19
-
20
- def test_that_proxy_simple_post_request_works_with_arguments
21
- request = Typhoeus::Request.new('/test', :method => :post)
22
- params = {'key' => 'value'}
23
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})
24
-
25
- expected_parameters = {'key' => 'value'}
26
- assert_equal expected_parameters, request_proxy.parameters_for_signature
27
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
28
- assert_equal 'POST', request_proxy.method
29
- end
30
-
31
- def test_that_proxy_simple_post_request_works_with_form_data
32
- request = Typhoeus::Request.new('/test', :method => :post,
33
- :params => {'key' => 'value'},
34
- :headers => {'Content-Type' => 'application/x-www-form-urlencoded'})
35
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})
36
-
37
- expected_parameters = {'key' => ['value']}
38
- assert_equal expected_parameters, request_proxy.parameters_for_signature
39
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
40
- assert_equal 'POST', request_proxy.method
41
- end
42
-
43
- def test_that_proxy_simple_put_request_works_with_arguments
44
- request = Typhoeus::Request.new('/test', :method => :put)
45
- params = {'key' => 'value'}
46
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})
47
-
48
- expected_parameters = {'key' => 'value'}
49
- assert_equal expected_parameters, request_proxy.parameters_for_signature
50
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
51
- assert_equal 'PUT', request_proxy.method
52
- end
53
-
54
- def test_that_proxy_simple_put_request_works_with_form_data
55
- request = Typhoeus::Request.new('/test', :method => :put, :params => {'key' => 'value'})
56
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})
57
-
58
- expected_parameters = {'key' => ['value']}
59
- assert_equal expected_parameters, request_proxy.parameters_for_signature
60
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
61
- assert_equal 'PUT', request_proxy.method
62
- end
63
-
64
- def test_that_proxy_simple_put_request_works_with_arguments
65
- request = Typhoeus::Request.new('/test', :method => :patch)
66
- params = {'key' => 'value'}
67
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test', :parameters => params})
68
-
69
- expected_parameters = {'key' => 'value'}
70
- assert_equal expected_parameters, request_proxy.parameters_for_signature
71
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
72
- assert_equal 'PATCH', request_proxy.method
73
- end
74
-
75
- def test_that_proxy_simple_put_request_works_with_form_data
76
- request = Typhoeus::Request.new('/test', :method => :patch, :params => {'key' => 'value'})
77
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test'})
78
-
79
- expected_parameters = {'key' => ['value']}
80
- assert_equal expected_parameters, request_proxy.parameters_for_signature
81
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
82
- assert_equal 'PATCH', request_proxy.method
83
- end
84
-
85
- def test_that_proxy_post_request_works_with_mixed_parameter_sources
86
- request = Typhoeus::Request.new('/test?key=value',
87
- :method => :post,
88
- :params => {'key2' => 'value2'},
89
- :headers => {'Content-Type' => 'application/x-www-form-urlencoded'})
90
- request_proxy = OAuth::RequestProxy.proxy(request, {:uri => 'http://example.com/test?key=value', :parameters => {'key3' => 'value3'}})
91
-
92
- expected_parameters = {'key' => ['value'], 'key2' => ['value2'], 'key3' => 'value3'}
93
- assert_equal expected_parameters, request_proxy.parameters_for_signature
94
- assert_equal 'http://example.com/test', request_proxy.normalized_uri
95
- assert_equal 'POST', request_proxy.method
96
- end
97
- end
98
-
99
- rescue LoadError => e
100
- warn "! problem loading typhoeus, skipping these tests: #{e}"
101
- end