rest-core 0.2.3 → 0.3.0.pre.0

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.
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