rest-core 0.2.3 → 0.3.0.pre.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/.travis.yml +8 -4
  2. data/CHANGES.md +20 -0
  3. data/Gemfile +4 -3
  4. data/README.md +8 -8
  5. data/Rakefile +42 -2
  6. data/example/rails2/Gemfile +13 -0
  7. data/example/rails2/README +4 -0
  8. data/example/rails2/Rakefile +11 -0
  9. data/example/rails2/app/controllers/application_controller.rb +119 -0
  10. data/example/rails2/app/views/application/helper.html.erb +1 -0
  11. data/example/rails2/config/boot.rb +130 -0
  12. data/example/rails2/config/environment.rb +15 -0
  13. data/example/rails2/config/environments/development.rb +17 -0
  14. data/example/rails2/config/environments/production.rb +28 -0
  15. data/example/rails2/config/environments/test.rb +30 -0
  16. data/example/rails2/config/initializers/cookie_verification_secret.rb +7 -0
  17. data/example/rails2/config/initializers/new_rails_defaults.rb +21 -0
  18. data/example/rails2/config/initializers/session_store.rb +15 -0
  19. data/example/rails2/config/preinitializer.rb +23 -0
  20. data/example/rails2/config/rest-core.yaml +12 -0
  21. data/example/rails2/config/routes.rb +43 -0
  22. data/example/rails2/log +0 -0
  23. data/example/rails2/test/functional/application_controller_test.rb +183 -0
  24. data/example/rails2/test/test_helper.rb +18 -0
  25. data/example/rails2/test/unit/rails_util_test.rb +44 -0
  26. data/example/rails3/Gemfile +13 -0
  27. data/example/rails3/README +4 -0
  28. data/example/rails3/Rakefile +7 -0
  29. data/example/rails3/app/controllers/application_controller.rb +119 -0
  30. data/example/rails3/app/views/application/helper.html.erb +1 -0
  31. data/example/rails3/config/application.rb +23 -0
  32. data/example/rails3/config/environment.rb +5 -0
  33. data/example/rails3/config/environments/development.rb +26 -0
  34. data/example/rails3/config/environments/production.rb +49 -0
  35. data/example/rails3/config/environments/test.rb +30 -0
  36. data/example/rails3/config/initializers/secret_token.rb +7 -0
  37. data/example/rails3/config/initializers/session_store.rb +8 -0
  38. data/example/rails3/config/rest-core.yaml +12 -0
  39. data/example/rails3/config/routes.rb +5 -0
  40. data/example/rails3/config.ru +4 -0
  41. data/example/rails3/test/functional/application_controller_test.rb +183 -0
  42. data/example/rails3/test/test_helper.rb +18 -0
  43. data/example/rails3/test/unit/rails_util_test.rb +44 -0
  44. data/example/sinatra/config.ru +16 -0
  45. data/lib/rest-core/app/ask.rb +0 -2
  46. data/lib/rest-core/client/facebook/rails_util.rb +342 -0
  47. data/lib/rest-core/client/{rest-graph.rb → facebook.rb} +21 -28
  48. data/lib/rest-core/client/github.rb +1 -1
  49. data/lib/rest-core/client/linkedin.rb +3 -1
  50. data/lib/rest-core/client/twitter.rb +2 -2
  51. data/lib/rest-core/client.rb +2 -2
  52. data/lib/rest-core/client_oauth1.rb +3 -3
  53. data/lib/rest-core/middleware/oauth2_query.rb +3 -3
  54. data/{test/common.rb → lib/rest-core/test.rb} +7 -3
  55. data/lib/rest-core/util/config.rb +22 -17
  56. data/lib/rest-core/util/vendor.rb +31 -0
  57. data/lib/rest-core/version.rb +1 -1
  58. data/lib/rest-core.rb +5 -0
  59. data/rest-core.gemspec +135 -108
  60. data/test/client/facebook/config/rest-core.yaml +8 -0
  61. data/test/{test_api.rb → client/facebook/test_api.rb} +22 -23
  62. data/test/{test_cache.rb → client/facebook/test_cache.rb} +4 -8
  63. data/test/{test_default.rb → client/facebook/test_default.rb} +6 -10
  64. data/test/client/facebook/test_error.rb +65 -0
  65. data/test/{test_handler.rb → client/facebook/test_handler.rb} +12 -15
  66. data/test/{test_load_config.rb → client/facebook/test_load_config.rb} +6 -9
  67. data/test/{test_misc.rb → client/facebook/test_misc.rb} +15 -18
  68. data/test/{test_oauth.rb → client/facebook/test_oauth.rb} +4 -8
  69. data/test/{test_old.rb → client/facebook/test_old.rb} +16 -18
  70. data/test/{test_page.rb → client/facebook/test_page.rb} +5 -9
  71. data/test/{test_parse.rb → client/facebook/test_parse.rb} +13 -16
  72. data/test/client/facebook/test_serialize.rb +42 -0
  73. data/test/client/facebook/test_timeout.rb +22 -0
  74. data/test/test_oauth1_header.rb +1 -5
  75. metadata +99 -58
  76. data/test/config/rest-core.yaml +0 -7
  77. data/test/test_error.rb +0 -66
  78. data/test/test_serialize.rb +0 -44
  79. data/test/test_timeout.rb +0 -25
@@ -1,14 +1,10 @@
1
1
 
2
- if respond_to?(:require_relative, true)
3
- require_relative 'common'
4
- else
5
- require File.dirname(__FILE__) + '/common'
6
- end
2
+ require 'rest-core/test'
7
3
 
8
- describe RestGraph do
4
+ describe RestCore::Facebook do
9
5
 
10
6
  should 'return nil if parse error, but not when call data directly' do
11
- rg = RestGraph.new
7
+ rg = RestCore::Facebook.new
12
8
  rg.parse_cookies!({}).should == nil
13
9
  rg.data .should == {}
14
10
  end
@@ -17,7 +13,7 @@ describe RestGraph do
17
13
  algorithm = 'HMAC-SHA256'
18
14
  user = '{"country"=>"us", "age"=>{"min"=>21}}'
19
15
  data = {'algorithm' => algorithm, 'user' => user}
20
- rg = RestGraph.new(:data => data, :secret => 'secret')
16
+ rg = RestCore::Facebook.new(:data => data, :secret => 'secret')
21
17
  sig = rg.send(:calculate_sig, data)
22
18
  rg.parse_fbs!("\"#{rg.fbs}\"").should == data.merge('sig' => sig)
23
19
  end
@@ -35,7 +31,7 @@ describe RestGraph do
35
31
  "__utma=123; __utmz=456.utmcsr=(d)|utmccn=(d)|utmcmd=(n); " \
36
32
  "fbs_#{app_id}=#{fbs}"
37
33
 
38
- rg = RestGraph.new(:app_id => app_id, :secret => secret)
34
+ rg = RestCore::Facebook.new(:app_id => app_id, :secret => secret)
39
35
  rg.parse_rack_env!('HTTP_COOKIE' => http_cookie).
40
36
  should.kind_of?(token ? Hash : NilClass)
41
37
  rg.access_token.should == token
@@ -59,20 +55,20 @@ describe RestGraph do
59
55
  end
60
56
 
61
57
  should 'not pass if there is no secret, prevent from forgery' do
62
- rg = RestGraph.new
58
+ rg = RestCore::Facebook.new
63
59
  rg.parse_fbs!('"feed=me&sig=bddd192cf27f22c05f61c8bea24fa4b7"').
64
60
  should == nil
65
61
  end
66
62
 
67
63
  should 'parse json correctly' do
68
- rg = RestGraph.new
64
+ rg = RestCore::Facebook.new
69
65
 
70
66
  rg.parse_json!('bad json') .should == nil
71
67
  rg.parse_json!('{"no":"sig"}').should == nil
72
68
  rg.parse_json!('{"feed":"me","sig":"bddd192cf27f22c05f61c8bea24fa4b7"}').
73
69
  should == nil
74
70
 
75
- rg = RestGraph.new(:secret => 'bread')
71
+ rg = RestCore::Facebook.new(:secret => 'bread')
76
72
  rg.parse_json!('{"feed":"me","sig":"20393e7823730308938a86ecf1c88b14"}').
77
73
  should == {'feed' => 'me', 'sig' => "20393e7823730308938a86ecf1c88b14"}
78
74
  rg.data.empty?.should == false
@@ -90,7 +86,7 @@ describe RestGraph do
90
86
  sig = OpenSSL::HMAC.digest('sha256', secret, json_encoded)
91
87
  signed_request = "#{encode[sig]}.#{json_encoded}"
92
88
 
93
- rg = RestGraph.new(:secret => secret)
89
+ rg = RestCore::Facebook.new(:secret => secret)
94
90
  rg.parse_signed_request!(signed_request)
95
91
  rg.data['ooh'].should == 'dir'
96
92
  rg.data['moo'].should == 'bar'
@@ -108,12 +104,13 @@ describe RestGraph do
108
104
  end
109
105
 
110
106
  should 'generate correct fbs with correct sig' do
111
- RestGraph.new(:access_token => 'fake', :secret => 's').fbs.should ==
107
+ RestCore::Facebook.new(:access_token => 'fake', :secret => 's').fbs.
108
+ should.eq \
112
109
  "access_token=fake&sig=#{Digest::MD5.hexdigest('access_token=fakes')}"
113
110
  end
114
111
 
115
112
  should 'parse fbs from facebook response which lacks sig...' do
116
- rg = RestGraph.new(:access_token => 'a', :secret => 'z')
113
+ rg = RestCore::Facebook.new(:access_token => 'a', :secret => 'z')
117
114
  rg.parse_fbs!(rg.fbs) .should.kind_of?(Hash)
118
115
  rg.data.empty?.should == false
119
116
  rg.parse_fbs!(rg.fbs.sub(/sig\=\w+/, 'sig=abc')).should == nil
@@ -121,7 +118,7 @@ describe RestGraph do
121
118
  end
122
119
 
123
120
  should 'generate correct fbs with additional parameters' do
124
- rg = RestGraph.new(:access_token => 'a', :secret => 'z')
121
+ rg = RestCore::Facebook.new(:access_token => 'a', :secret => 'z')
125
122
  rg.data['expires'] = '1234'
126
123
  rg.parse_fbs!(rg.fbs).should.kind_of?(Hash)
127
124
  rg.access_token .should == 'a'
@@ -0,0 +1,42 @@
1
+
2
+ require 'rest-core/test'
3
+
4
+ describe RestCore::Facebook do
5
+ after do
6
+ WebMock.reset!
7
+ RR.verify
8
+ end
9
+
10
+ should 'be serialized with lighten' do
11
+ engines = begin
12
+ require 'psych'
13
+ YAML::ENGINE.yamler = 'psych' # TODO: probably a bug?
14
+ [Psych, YAML, Marshal]
15
+ rescue LoadError
16
+ [YAML, Marshal]
17
+ end
18
+
19
+ # sorry, it is marshal in 1.8 is broken
20
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby' &&
21
+ RUBY_VERSION == '1.8.7'
22
+ engines.pop # REE 1.8.7
23
+ else
24
+ engines.pop # MRI 1.8.7
25
+ end
26
+
27
+ engines.each{ |engine|
28
+ test = lambda{ |obj| engine.load(engine.dump(obj)) }
29
+ rg = RestCore::Facebook.new(:log_handler => lambda{})
30
+ lambda{ test[rg] }.should.raise(TypeError)
31
+ test[rg.lighten].should == rg.lighten
32
+ lambda{ test[rg] }.should.raise(TypeError)
33
+ rg.lighten!
34
+ test[rg.lighten].should == rg
35
+ }
36
+ end
37
+
38
+ should 'lighten takes options to change attributes' do
39
+ RestCore::Facebook.new.lighten(:timeout => 100 ).timeout.should.eq 100
40
+ RestCore::Facebook.new.lighten(:lang => 'zh-TW').lang.should.eq 'zh-TW'
41
+ end
42
+ end
@@ -0,0 +1,22 @@
1
+
2
+ require 'rest-core/test'
3
+
4
+ describe RestCore::Facebook do
5
+ after do
6
+ WebMock.reset!
7
+ RR.verify
8
+ end
9
+
10
+ should 'respect timeout' do
11
+ stub_request(:get, 'https://graph.facebook.com/me').
12
+ to_return(:body => '{}')
13
+ mock.proxy(Timeout).timeout(numeric)
14
+ RestCore::Facebook.new.get('me').should.eq({})
15
+ end
16
+
17
+ should 'override timeout' do
18
+ mock(Timeout).timeout(99){ {RestCore::Facebook::RESPONSE_BODY => true} }
19
+ RestCore::Facebook.new(:timeout => 1).get('me', {}, :timeout => 99).
20
+ should.eq true
21
+ end
22
+ end
@@ -1,9 +1,5 @@
1
1
 
2
- if respond_to?(:require_relative, true)
3
- require_relative 'common'
4
- else
5
- require File.dirname(__FILE__) + '/common'
6
- end
2
+ require 'rest-core/test'
7
3
 
8
4
  describe RestCore::Oauth1Header do
9
5
  before do
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
5
- prerelease:
4
+ version: 0.3.0.pre.0
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Cardinal Blue
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-08-27 00:00:00.000000000Z
13
+ date: 2011-09-02 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
17
- requirement: &2160958860 !ruby/object:Gem::Requirement
17
+ requirement: &2154406600 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,21 +22,21 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2160958860
25
+ version_requirements: *2154406600
26
26
  - !ruby/object:Gem::Dependency
27
- name: rack
28
- requirement: &2160958380 !ruby/object:Gem::Requirement
27
+ name: yajl-ruby
28
+ requirement: &2154405920 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :runtime
34
+ type: :development
35
35
  prerelease: false
36
- version_requirements: *2160958380
36
+ version_requirements: *2154405920
37
37
  - !ruby/object:Gem::Dependency
38
- name: yajl-ruby
39
- requirement: &2160974260 !ruby/object:Gem::Requirement
38
+ name: rack
39
+ requirement: &2154399520 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *2160974260
47
+ version_requirements: *2154399520
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json
50
- requirement: &2160973780 !ruby/object:Gem::Requirement
50
+ requirement: &2154398840 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *2160973780
58
+ version_requirements: *2154398840
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: json_pure
61
- requirement: &2160973300 !ruby/object:Gem::Requirement
61
+ requirement: &2154398100 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *2160973300
69
+ version_requirements: *2154398100
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: ruby-hmac
72
- requirement: &2160972820 !ruby/object:Gem::Requirement
72
+ requirement: &2154397380 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *2160972820
80
+ version_requirements: *2154397380
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: webmock
83
- requirement: &2160972340 !ruby/object:Gem::Requirement
83
+ requirement: &2154396860 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *2160972340
91
+ version_requirements: *2154396860
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: bacon
94
- requirement: &2160971860 !ruby/object:Gem::Requirement
94
+ requirement: &2154396080 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2160971860
102
+ version_requirements: *2154396080
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rr
105
- requirement: &2160971380 !ruby/object:Gem::Requirement
105
+ requirement: &2154395380 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *2160971380
113
+ version_requirements: *2154395380
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: rake
116
- requirement: &2160970900 !ruby/object:Gem::Requirement
116
+ requirement: &2154394440 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *2160970900
124
+ version_requirements: *2154394440
125
125
  description: ! 'A modular Ruby REST client collection/infrastructure.
126
126
 
127
127
 
@@ -168,15 +168,55 @@ files:
168
168
  - example/facebook.rb
169
169
  - example/github.rb
170
170
  - example/linkedin.rb
171
+ - example/rails2/Gemfile
172
+ - example/rails2/README
173
+ - example/rails2/Rakefile
174
+ - example/rails2/app/controllers/application_controller.rb
175
+ - example/rails2/app/views/application/helper.html.erb
176
+ - example/rails2/config/boot.rb
177
+ - example/rails2/config/environment.rb
178
+ - example/rails2/config/environments/development.rb
179
+ - example/rails2/config/environments/production.rb
180
+ - example/rails2/config/environments/test.rb
181
+ - example/rails2/config/initializers/cookie_verification_secret.rb
182
+ - example/rails2/config/initializers/new_rails_defaults.rb
183
+ - example/rails2/config/initializers/session_store.rb
184
+ - example/rails2/config/preinitializer.rb
185
+ - example/rails2/config/rest-core.yaml
186
+ - example/rails2/config/routes.rb
187
+ - example/rails2/log
188
+ - example/rails2/test/functional/application_controller_test.rb
189
+ - example/rails2/test/test_helper.rb
190
+ - example/rails2/test/unit/rails_util_test.rb
191
+ - example/rails3/Gemfile
192
+ - example/rails3/README
193
+ - example/rails3/Rakefile
194
+ - example/rails3/app/controllers/application_controller.rb
195
+ - example/rails3/app/views/application/helper.html.erb
196
+ - example/rails3/config.ru
197
+ - example/rails3/config/application.rb
198
+ - example/rails3/config/environment.rb
199
+ - example/rails3/config/environments/development.rb
200
+ - example/rails3/config/environments/production.rb
201
+ - example/rails3/config/environments/test.rb
202
+ - example/rails3/config/initializers/secret_token.rb
203
+ - example/rails3/config/initializers/session_store.rb
204
+ - example/rails3/config/rest-core.yaml
205
+ - example/rails3/config/routes.rb
206
+ - example/rails3/test/functional/application_controller_test.rb
207
+ - example/rails3/test/test_helper.rb
208
+ - example/rails3/test/unit/rails_util_test.rb
209
+ - example/sinatra/config.ru
171
210
  - example/twitter.rb
172
211
  - lib/rest-core.rb
173
212
  - lib/rest-core/app/ask.rb
174
213
  - lib/rest-core/app/rest-client.rb
175
214
  - lib/rest-core/builder.rb
176
215
  - lib/rest-core/client.rb
216
+ - lib/rest-core/client/facebook.rb
217
+ - lib/rest-core/client/facebook/rails_util.rb
177
218
  - lib/rest-core/client/github.rb
178
219
  - lib/rest-core/client/linkedin.rb
179
- - lib/rest-core/client/rest-graph.rb
180
220
  - lib/rest-core/client/twitter.rb
181
221
  - lib/rest-core/client_oauth1.rb
182
222
  - lib/rest-core/event.rb
@@ -194,8 +234,10 @@ files:
194
234
  - lib/rest-core/middleware/oauth1_header.rb
195
235
  - lib/rest-core/middleware/oauth2_query.rb
196
236
  - lib/rest-core/middleware/timeout.rb
237
+ - lib/rest-core/test.rb
197
238
  - lib/rest-core/util/config.rb
198
239
  - lib/rest-core/util/hmac.rb
240
+ - lib/rest-core/util/vendor.rb
199
241
  - lib/rest-core/version.rb
200
242
  - lib/rest-core/wrapper.rb
201
243
  - pending/test_multi.rb
@@ -203,22 +245,21 @@ files:
203
245
  - rest-core.gemspec
204
246
  - task/.gitignore
205
247
  - task/gemgem.rb
206
- - test/common.rb
207
- - test/config/rest-core.yaml
208
- - test/test_api.rb
209
- - test/test_cache.rb
210
- - test/test_default.rb
211
- - test/test_error.rb
212
- - test/test_handler.rb
213
- - test/test_load_config.rb
214
- - test/test_misc.rb
215
- - test/test_oauth.rb
248
+ - test/client/facebook/config/rest-core.yaml
249
+ - test/client/facebook/test_api.rb
250
+ - test/client/facebook/test_cache.rb
251
+ - test/client/facebook/test_default.rb
252
+ - test/client/facebook/test_error.rb
253
+ - test/client/facebook/test_handler.rb
254
+ - test/client/facebook/test_load_config.rb
255
+ - test/client/facebook/test_misc.rb
256
+ - test/client/facebook/test_oauth.rb
257
+ - test/client/facebook/test_old.rb
258
+ - test/client/facebook/test_page.rb
259
+ - test/client/facebook/test_parse.rb
260
+ - test/client/facebook/test_serialize.rb
261
+ - test/client/facebook/test_timeout.rb
216
262
  - test/test_oauth1_header.rb
217
- - test/test_old.rb
218
- - test/test_page.rb
219
- - test/test_parse.rb
220
- - test/test_serialize.rb
221
- - test/test_timeout.rb
222
263
  homepage: https://github.com/cardinalblue/rest-core
223
264
  licenses: []
224
265
  post_install_message:
@@ -234,27 +275,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
275
  required_rubygems_version: !ruby/object:Gem::Requirement
235
276
  none: false
236
277
  requirements:
237
- - - ! '>='
278
+ - - ! '>'
238
279
  - !ruby/object:Gem::Version
239
- version: '0'
280
+ version: 1.3.1
240
281
  requirements: []
241
282
  rubyforge_project:
242
- rubygems_version: 1.8.9
283
+ rubygems_version: 1.8.10
243
284
  signing_key:
244
285
  specification_version: 3
245
286
  summary: A modular Ruby REST client collection/infrastructure.
246
287
  test_files:
247
- - test/test_api.rb
248
- - test/test_cache.rb
249
- - test/test_default.rb
250
- - test/test_error.rb
251
- - test/test_handler.rb
252
- - test/test_load_config.rb
253
- - test/test_misc.rb
254
- - test/test_oauth.rb
288
+ - test/client/facebook/test_api.rb
289
+ - test/client/facebook/test_cache.rb
290
+ - test/client/facebook/test_default.rb
291
+ - test/client/facebook/test_error.rb
292
+ - test/client/facebook/test_handler.rb
293
+ - test/client/facebook/test_load_config.rb
294
+ - test/client/facebook/test_misc.rb
295
+ - test/client/facebook/test_oauth.rb
296
+ - test/client/facebook/test_old.rb
297
+ - test/client/facebook/test_page.rb
298
+ - test/client/facebook/test_parse.rb
299
+ - test/client/facebook/test_serialize.rb
300
+ - test/client/facebook/test_timeout.rb
255
301
  - test/test_oauth1_header.rb
256
- - test/test_old.rb
257
- - test/test_page.rb
258
- - test/test_parse.rb
259
- - test/test_serialize.rb
260
- - test/test_timeout.rb
@@ -1,7 +0,0 @@
1
-
2
- test:
3
- app_id: 41829
4
- secret: <%= 'r41829'.reverse %>
5
- auto_decode: false
6
- lang: zh-tw
7
- auto_authorize_scope: 'publish_stream'
data/test/test_error.rb DELETED
@@ -1,66 +0,0 @@
1
-
2
- if respond_to?(:require_relative, true)
3
- require_relative 'common'
4
- else
5
- require File.dirname(__FILE__) + '/common'
6
- end
7
-
8
- describe RestGraph::Error do
9
- after do
10
- WebMock.reset!
11
- RR.verify
12
- end
13
-
14
- should 'have the right ancestors' do
15
- RestGraph::Error::AccessToken .should < RestGraph::Error
16
-
17
- RestGraph::Error::InvalidAccessToken.should <
18
- RestGraph::Error::AccessToken
19
-
20
- RestGraph::Error::MissingAccessToken.should <
21
- RestGraph::Error::AccessToken
22
- end
23
-
24
- def error2env hash
25
- {RestCore::RESPONSE_BODY => hash,
26
- RestCore::REQUEST_PATH => '/' ,
27
- RestCore::REQUEST_QUERY => {}}
28
- end
29
-
30
- should 'parse right' do
31
- %w[OAuthInvalidTokenException OAuthException].each{ |type|
32
- RestGraph::Error.call(error2env('error' => {'type' => type})).
33
- should.kind_of?(RestGraph::Error::InvalidAccessToken)
34
- }
35
-
36
- RestGraph::Error.call(error2env('error'=>{'type'=>'QueryParseException',
37
- 'message'=>'An active access token..'})).
38
- should.kind_of?(RestGraph::Error::MissingAccessToken)
39
-
40
- RestGraph::Error.call(error2env('error'=>{'type'=>'QueryParseException',
41
- 'message'=>'Oh active access token..'})).
42
- should.not.kind_of?(RestGraph::Error::MissingAccessToken)
43
-
44
- RestGraph::Error.call(error2env('error_code' => 190)).
45
- should.kind_of?(RestGraph::Error::InvalidAccessToken)
46
-
47
- RestGraph::Error.call(error2env('error_code' => 104)).
48
- should.kind_of?(RestGraph::Error::MissingAccessToken)
49
-
50
- RestGraph::Error.call(error2env('error_code' => 999)).
51
- should.not.kind_of?(RestGraph::Error::AccessToken)
52
-
53
- error = RestGraph::Error.call(error2env(['not a hash']))
54
- error.should.not.kind_of?(RestGraph::Error::AccessToken)
55
- error.should .kind_of?(RestGraph::Error)
56
- end
57
-
58
- should 'nuke cache upon errors' do
59
- stub_request(:get, 'https://graph.facebook.com/me').
60
- to_return(:body => '{"error":"wrong"}').times(2)
61
-
62
- rg = RestGraph.new(:cache => {}, :error_handler => lambda{|env|env})
63
- rg.get('me'); rg.get('me')
64
- rg.cache.values.should == []
65
- end
66
- end
@@ -1,44 +0,0 @@
1
-
2
- if respond_to?(:require_relative, true)
3
- require_relative 'common'
4
- else
5
- require File.dirname(__FILE__) + '/common'
6
- end
7
-
8
- describe RestGraph do
9
- after do
10
- WebMock.reset!
11
- RR.verify
12
- end
13
-
14
- should 'be serialized with lighten' do
15
- engines = if RUBY_VERSION >= '1.9.2'
16
- begin
17
- require 'psych'
18
- YAML::ENGINE.yamler = 'psych' # TODO: probably a bug?
19
- [Marshal, YAML, Psych]
20
- rescue LoadError
21
- [Marshal, YAML]
22
- end
23
- elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
24
- [Marshal]
25
- else
26
- [YAML]
27
- end
28
-
29
- engines.each{ |engine|
30
- test = lambda{ |obj| engine.load(engine.dump(obj)) }
31
- rg = RestGraph.new(:log_handler => lambda{})
32
- lambda{ test[rg] }.should.raise(TypeError)
33
- test[rg.lighten].should == rg.lighten
34
- lambda{ test[rg] }.should.raise(TypeError)
35
- rg.lighten!
36
- test[rg.lighten].should == rg
37
- }
38
- end
39
-
40
- should 'lighten takes options to change attributes' do
41
- RestGraph.new.lighten(:timeout => 100 ).timeout.should == 100
42
- RestGraph.new.lighten(:lang => 'zh-TW').lang .should == 'zh-TW'
43
- end
44
- end
data/test/test_timeout.rb DELETED
@@ -1,25 +0,0 @@
1
-
2
- if respond_to?(:require_relative, true)
3
- require_relative 'common'
4
- else
5
- require File.dirname(__FILE__) + '/common'
6
- end
7
-
8
- describe RestGraph do
9
- after do
10
- WebMock.reset!
11
- RR.verify
12
- end
13
-
14
- should 'respect timeout' do
15
- stub_request(:get, 'https://graph.facebook.com/me').
16
- to_return(:body => '{}')
17
- mock.proxy(Timeout).timeout(numeric)
18
- RestGraph.new.get('me').should == {}
19
- end
20
-
21
- should 'override timeout' do
22
- mock(Timeout).timeout(99){ {RestCore::RESPONSE_BODY => true} }
23
- RestGraph.new(:timeout => 1).get('me', {}, :timeout => 99).should == true
24
- end
25
- end