koala 1.6.0 → 1.7.0rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,10 +50,30 @@ describe "Koala::Facebook::API" do
50
50
  it "returns the entire response if http_component => :response" do
51
51
  http_component = :response
52
52
  response = mock('Mock KoalaResponse', :body => '', :status => 200)
53
- Koala.stub(:make_request).and_return(response)
53
+ Koala.stub(:make_request).and_return(response)
54
54
  @service.api('anything', {}, 'get', :http_component => http_component).should == response
55
55
  end
56
56
 
57
+ it "turns arrays of non-enumerables into comma-separated arguments" do
58
+ args = [12345, {:foo => [1, 2, "3", :four]}]
59
+ expected = ["/12345", {:foo => "1,2,3,four"}, "get", {}]
60
+ response = mock('Mock KoalaResponse', :body => '', :status => 200)
61
+ Koala.should_receive(:make_request).with(*expected).and_return(response)
62
+ @service.api(*args)
63
+ end
64
+
65
+ it "doesn't turn arrays containing enumerables into comma-separated strings" do
66
+ params = {:foo => [1, 2, ["3"], :four]}
67
+ args = [12345, params]
68
+ # we leave this as is -- the HTTP layer can either handle it appropriately
69
+ # (if appropriate behavior is defined)
70
+ # or raise an exception
71
+ expected = ["/12345", params, "get", {}]
72
+ response = mock('Mock KoalaResponse', :body => '', :status => 200)
73
+ Koala.should_receive(:make_request).with(*expected).and_return(response)
74
+ @service.api(*args)
75
+ end
76
+
57
77
  it "returns the body of the request as JSON if no http_component is given" do
58
78
  response = stub('response', :body => 'body', :status => 200)
59
79
  Koala.stub(:make_request).and_return(response)
@@ -507,7 +507,6 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
507
507
  pictures = @api.batch do |batch_api|
508
508
  batch_api.get_picture('me')
509
509
  end
510
- puts pictures.inspect
511
510
  pictures.first.should =~ /http\:\/\// # works both live & stubbed
512
511
  end
513
512
 
@@ -517,7 +516,34 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
517
516
  batch_api.get_connections(@app_id, 'insights', {}, {"access_token" => @app_api.access_token})
518
517
  end
519
518
  me['id'].should_not be_nil
520
- insights.should be_an(Array)
519
+ insights.should be_an(Koala::Facebook::GraphCollection)
520
+ end
521
+
522
+ it "preserves batch-op specific access tokens in GraphCollection returned from batch" do
523
+ # Provide an alternate token for a batch operation
524
+ @other_access_token_args = { 'access_token' => @app_api.access_token }
525
+
526
+ # make a batch call for insights using another token
527
+ me, insights = @api.batch do |batch_api|
528
+ batch_api.get_object('me')
529
+ batch_api.get_connections(@app_id, 'insights', {}, @other_access_token_args)
530
+ end
531
+
532
+ # The alternate token is returned with the next page parameters
533
+ # The GraphCollection should receive a request for the next_page_params during paging
534
+ insights.should_receive(:next_page_params).and_return([stub("base"), @other_access_token_args.dup])
535
+
536
+ # The alternate access token should pass through to making the request
537
+ # Koala should receive a request during paging using the alternate token
538
+ Koala.should_receive(:make_request).with(
539
+ anything,
540
+ hash_including(@other_access_token_args.dup),
541
+ anything,
542
+ anything
543
+ ).and_return(Koala::HTTPService::Response.new(200, "", ""))
544
+
545
+ # Page the collection
546
+ insights.next_page
521
547
  end
522
548
 
523
549
  it "inserts errors in the appropriate place, without breaking other results" do
@@ -551,37 +577,33 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
551
577
 
552
578
  describe 'with post-processing callback' do
553
579
  let(:me_result) { stub("me result") }
554
- let(:friends_result) { stub("friends result") }
580
+ let(:friends_result) { [stub("friends result")] }
555
581
 
556
- let(:me_callback) { lambda {|data| me_result } }
557
- let(:friends_callback) { lambda {|data| friends_result } }
582
+ let(:me_callback) { lambda {|arg| {"result" => me_result, "args" => arg} } }
583
+ let(:friends_callback) { lambda {|arg| {"result" => friends_result, "args" => arg} } }
558
584
 
559
585
  it 'calls the callback with the appropriate data' do
560
- me_callback.should_receive(:call).with(hash_including(
561
- 'id' => KoalaTest.user1
562
- ))
563
- friends_callback.should_receive(:call).with([
564
- hash_including('id' => KoalaTest.user2)
565
- ])
566
- @api.batch do |batch_api|
586
+ me, friends = @api.batch do |batch_api|
567
587
  batch_api.get_object('me', &me_callback)
568
588
  batch_api.get_connections('me', 'friends', &friends_callback)
569
589
  end
590
+ me["args"].should include("id" => KoalaTest.user1)
591
+ friends["args"].first.should include("id" => KoalaTest.user2)
570
592
  end
571
593
 
572
594
  it 'passes GraphCollections, not raw data' do
573
- friends_callback.should_receive(:call).with(kind_of(Koala::Facebook::API::GraphCollection))
574
- @api.batch do |batch_api|
595
+ me, friends = @api.batch do |batch_api|
575
596
  batch_api.get_object('me')
576
597
  batch_api.get_connections('me', 'friends', &friends_callback)
577
598
  end
599
+ friends["args"].should be_a(Koala::Facebook::API::GraphCollection)
578
600
  end
579
601
 
580
602
  it "returns the result of the callback" do
581
603
  @api.batch do |batch_api|
582
604
  batch_api.get_object('me', &me_callback)
583
605
  batch_api.get_connections('me', 'friends', &friends_callback)
584
- end.should == [me_result, friends_result]
606
+ end.map {|r| r["result"]}.should == [me_result, friends_result]
585
607
  end
586
608
  end
587
609
 
@@ -663,4 +685,4 @@ describe "Koala::Facebook::GraphAPI in batch mode" do
663
685
  end
664
686
  end
665
687
  end
666
- end
688
+ end
@@ -10,27 +10,22 @@ describe 'Koala::Facebook::GraphAPIMethods' do
10
10
  end
11
11
 
12
12
  describe 'post-processing for' do
13
- let(:post_processing) { lambda {} }
13
+ let(:result) { stub("result") }
14
+ let(:post_processing) { lambda {|arg| {"result" => result, "args" => arg} } }
14
15
 
15
16
  # Most API methods have the same signature, we test get_object representatively
16
17
  # and the other methods which do some post-processing locally
17
18
  context '#get_object' do
18
19
  it 'returns result of block' do
19
- result = {"id" => 1, "name" => 1, "updated_time" => 1}
20
- @api.stub(:api).and_return(result)
21
- post_processing.should_receive(:call).
22
- with(result).and_return('new result')
23
- @api.get_object('koppel', &post_processing).should == 'new result'
20
+ @api.stub(:api).and_return(stub("other results"))
21
+ @api.get_object('koppel', &post_processing)["result"].should == result
24
22
  end
25
23
  end
26
24
 
27
25
  context '#get_picture' do
28
26
  it 'returns result of block' do
29
- result = "http://facebook.com/"
30
- @api.stub(:api).and_return("Location" => result)
31
- post_processing.should_receive(:call).
32
- with(result).and_return('new result')
33
- @api.get_picture('lukeshepard', &post_processing).should == 'new result'
27
+ @api.stub(:api).and_return("Location" => stub("other result"))
28
+ @api.get_picture('lukeshepard', &post_processing)["result"].should == result
34
29
  end
35
30
  end
36
31
 
@@ -45,12 +40,11 @@ describe 'Koala::Facebook::GraphAPIMethods' do
45
40
  it 'is called with resolved response' do
46
41
  resolved_result = {
47
42
  'query1' => [{'id' => 123}],
48
- 'query2' => [{'id'=>456}]
43
+ 'query2' => [{'id' => 456}]
49
44
  }
50
- post_processing.should_receive(:call).
51
- with(resolved_result).and_return('id'=>'123', 'id'=>'456')
52
- @api.fql_multiquery({}, &post_processing).should ==
53
- {'id'=>'123', 'id'=>'456'}
45
+ response = @api.fql_multiquery({}, &post_processing)
46
+ response["args"].should == resolved_result
47
+ response["result"].should == result
54
48
  end
55
49
  end
56
50
 
@@ -58,10 +52,9 @@ describe 'Koala::Facebook::GraphAPIMethods' do
58
52
  it 'returns result of block' do
59
53
  token = Koala::MockHTTPService::APP_ACCESS_TOKEN
60
54
  @api.stub(:api).and_return("access_token" => token)
61
- post_processing.should_receive(:call).
62
- with(token).and_return('base64-encoded access token')
63
- @api.get_page_access_token('facebook', &post_processing).should ==
64
- 'base64-encoded access token'
55
+ response = @api.get_page_access_token('facebook', &post_processing)
56
+ response["args"].should == token
57
+ response["result"].should == result
65
58
  end
66
59
  end
67
60
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Koala::HTTPService" do
3
+ describe Koala::HTTPService do
4
4
  it "has a faraday_middleware accessor" do
5
5
  Koala::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware)
6
6
  Koala::HTTPService.methods.map(&:to_sym).should include(:faraday_middleware=)
@@ -45,15 +45,43 @@ describe "Koala::HTTPService" do
45
45
  end
46
46
  end
47
47
 
48
+ describe Koala::HTTPService::DEFAULT_SERVERS do
49
+ let(:defaults) { Koala::HTTPService::DEFAULT_SERVERS }
50
+
51
+ it "defines the graph server" do
52
+ defaults[:graph_server].should == "graph.facebook.com"
53
+ end
54
+
55
+ it "defines the rest server" do
56
+ defaults[:rest_server].should == "api.facebook.com"
57
+ end
58
+
59
+ it "defines the dialog host" do
60
+ defaults[:dialog_host].should == "www.facebook.com"
61
+ end
62
+
63
+ it "defines the path replacement regular expression" do
64
+ defaults[:host_path_matcher].should == /\.facebook/
65
+ end
66
+
67
+ it "defines the video server replacement for uploads" do
68
+ defaults[:video_replace].should == "-video.facebook"
69
+ end
70
+
71
+ it "defines the beta tier replacement" do
72
+ defaults[:beta_replace].should == ".beta.facebook"
73
+ end
74
+ end
75
+
48
76
  describe "server" do
49
77
  describe "with no options" do
50
78
  it "returns the REST server if options[:rest_api]" do
51
- Koala::HTTPService.server(:rest_api => true).should =~ Regexp.new(Koala::Facebook::REST_SERVER)
79
+ Koala::HTTPService.server(:rest_api => true).should =~ Regexp.new(Koala.config.rest_server)
52
80
  end
53
81
 
54
82
  it "returns the graph server if !options[:rest_api]" do
55
- Koala::HTTPService.server(:rest_api => false).should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER)
56
- Koala::HTTPService.server({}).should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER)
83
+ Koala::HTTPService.server(:rest_api => false).should =~ Regexp.new(Koala.config.graph_server)
84
+ Koala::HTTPService.server({}).should =~ Regexp.new(Koala.config.graph_server)
57
85
  end
58
86
  end
59
87
 
@@ -64,12 +92,12 @@ describe "Koala::HTTPService" do
64
92
 
65
93
  it "returns the beta REST server if options[:rest_api]" do
66
94
  server = Koala::HTTPService.server(@options.merge(:rest_api => true))
67
- server.should =~ Regexp.new(Koala::Facebook::REST_SERVER.gsub(/\.facebook/, ".beta.facebook"))
95
+ server.should =~ Regexp.new(Koala.config.rest_server.gsub(/\.facebook/, ".beta.facebook"))
68
96
  end
69
97
 
70
98
  it "returns the beta rest server if !options[:rest_api]" do
71
99
  server = Koala::HTTPService.server(@options)
72
- server.should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER.gsub(/\.facebook/, ".beta.facebook"))
100
+ server.should =~ Regexp.new(Koala.config.graph_server.gsub(/\.facebook/, ".beta.facebook"))
73
101
  end
74
102
  end
75
103
 
@@ -80,12 +108,12 @@ describe "Koala::HTTPService" do
80
108
 
81
109
  it "returns the REST video server if options[:rest_api]" do
82
110
  server = Koala::HTTPService.server(@options.merge(:rest_api => true))
83
- server.should =~ Regexp.new(Koala::Facebook::REST_SERVER.gsub(/\.facebook/, "-video.facebook"))
111
+ server.should =~ Regexp.new(Koala.config.rest_server.gsub(/\.facebook/, "-video.facebook"))
84
112
  end
85
113
 
86
114
  it "returns the graph video server if !options[:rest_api]" do
87
115
  server = Koala::HTTPService.server(@options)
88
- server.should =~ Regexp.new(Koala::Facebook::GRAPH_SERVER.gsub(/\.facebook/, "-video.facebook"))
116
+ server.should =~ Regexp.new(Koala.config.graph_server.gsub(/\.facebook/, "-video.facebook"))
89
117
  end
90
118
  end
91
119
  end
@@ -212,8 +240,10 @@ describe "Koala::HTTPService" do
212
240
  end
213
241
 
214
242
  it "uses the default builder block if HTTPService.faraday_middleware block is not defined" do
243
+ block = Proc.new {}
244
+ stub_const("Koala::HTTPService::DEFAULT_MIDDLEWARE", block)
215
245
  Koala::HTTPService.stub(:faraday_middleware).and_return(nil)
216
- Faraday.should_receive(:new).with(anything, anything, &Koala::HTTPService::DEFAULT_MIDDLEWARE).and_return(@mock_connection)
246
+ Faraday.should_receive(:new).with(anything, anything, &block).and_return(@mock_connection)
217
247
  Koala::HTTPService.make_request("anything", {}, "get")
218
248
  end
219
249
 
@@ -1,38 +1,22 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Koala do
4
-
5
-
6
4
  it "has an http_service accessor" do
7
5
  Koala.should respond_to(:http_service)
8
6
  Koala.should respond_to(:http_service=)
9
7
  end
10
-
8
+
11
9
  describe "constants" do
12
10
  it "has a version" do
13
11
  Koala.const_defined?("VERSION").should be_true
14
12
  end
15
-
16
- describe Koala::Facebook do
17
- it "defines GRAPH_SERVER" do
18
- Koala::Facebook::GRAPH_SERVER.should == "graph.facebook.com"
19
- end
20
-
21
- it "defines REST_SERVER" do
22
- Koala::Facebook::REST_SERVER.should == "api.facebook.com"
23
- end
24
-
25
- it "defines DIALOG_HOST" do
26
- Koala::Facebook::DIALOG_HOST.should == "www.facebook.com"
27
- end
28
- end
29
13
  end
30
-
14
+
31
15
  context "for deprecated services" do
32
16
  before :each do
33
17
  @service = Koala.http_service
34
18
  end
35
-
19
+
36
20
  after :each do
37
21
  Koala.http_service = @service
38
22
  end
@@ -42,7 +26,7 @@ describe Koala do
42
26
  mock_service.should_receive(:deprecated_interface)
43
27
  Koala.http_service = mock_service
44
28
  end
45
-
29
+
46
30
  it "does not set the service if it's deprecated" do
47
31
  mock_service = stub("http service")
48
32
  mock_service.stub(:deprecated_interface)
@@ -63,10 +47,38 @@ describe Koala do
63
47
  args = {:a => 2}
64
48
  verb = "get"
65
49
  options = {:c => :d}
66
-
50
+
67
51
  Koala.http_service.should_receive(:make_request).with(path, args, verb, options)
68
52
  Koala.make_request(path, args, verb, options)
69
53
  end
70
54
  end
71
55
 
72
- end
56
+ describe ".configure" do
57
+ it "yields a configurable object" do
58
+ expect {
59
+ Koala.configure {|c| c.foo = "bar"}
60
+ }.not_to raise_exception
61
+ end
62
+
63
+ it "caches the config (singleton)" do
64
+ c = Koala.config
65
+ expect(c.object_id).to eq(Koala.config.object_id)
66
+ end
67
+ end
68
+
69
+ describe ".config" do
70
+ it "exposes the basic configuration" do
71
+ Koala::HTTPService::DEFAULT_SERVERS.each_pair do |k, v|
72
+ expect(Koala.config.send(k)).to eq(v)
73
+ end
74
+ end
75
+
76
+ it "exposes the values configured" do
77
+ Koala.configure do |config|
78
+ config.graph_server = "some-new.graph_server.com"
79
+ end
80
+ Koala.config.graph_server.should == "some-new.graph_server.com"
81
+ end
82
+ end
83
+
84
+ end
@@ -148,7 +148,6 @@ describe "Koala::Facebook::OAuth" do
148
148
 
149
149
  it "returns all the cookie components from valid cookie string" do
150
150
  cookie_data = KoalaTest.oauth_test_data["valid_cookies"]
151
- puts cookie_data.inspect
152
151
  parsing_results = @oauth.get_user_info_from_cookies(cookie_data)
153
152
  number_of_components = cookie_data["fbs_#{@app_id.to_s}"].scan(/\=/).length
154
153
  parsing_results.length.should == number_of_components
@@ -190,7 +189,7 @@ describe "Koala::Facebook::OAuth" do
190
189
  end
191
190
 
192
191
  it "does not uses get_user_info_from_cookies to parse the cookies" do
193
- @oauth.should_not_receive(:get_user_info_from_cookies).with(@cookie).and_return({})
192
+ @oauth.should_not_receive(:get_user_info_from_cookies).with(@cookie)
194
193
  @oauth.get_user_from_cookies(@cookie)
195
194
  end
196
195
 
@@ -205,6 +204,11 @@ describe "Koala::Facebook::OAuth" do
205
204
  result = @oauth.get_user_from_cookies(bad_cookie_hash)
206
205
  result.should be_nil
207
206
  end
207
+
208
+ it "is deprecated" do
209
+ Koala::Utils.should_receive(:deprecate)
210
+ @oauth.get_user_from_cookies({})
211
+ end
208
212
  end
209
213
 
210
214
  describe "for unsigned cookies" do
@@ -237,37 +241,37 @@ describe "Koala::Facebook::OAuth" do
237
241
  describe "#url_for_oauth_code" do
238
242
  it "generates a properly formatted OAuth code URL with the default values" do
239
243
  url = @oauth.url_for_oauth_code
240
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&redirect_uri=#{CGI.escape @callback_url}")
244
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&redirect_uri=#{CGI.escape @callback_url}")
241
245
  end
242
246
 
243
247
  it "generates a properly formatted OAuth code URL when a callback is given" do
244
248
  callback = "foo.com"
245
249
  url = @oauth.url_for_oauth_code(:callback => callback)
246
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&redirect_uri=#{callback}")
250
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&redirect_uri=#{callback}")
247
251
  end
248
252
 
249
253
  it "generates a properly formatted OAuth code URL when permissions are requested as a string" do
250
254
  permissions = "publish_stream,read_stream"
251
255
  url = @oauth.url_for_oauth_code(:permissions => permissions)
252
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&scope=#{CGI.escape permissions}&redirect_uri=#{CGI.escape @callback_url}")
256
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&scope=#{CGI.escape permissions}&redirect_uri=#{CGI.escape @callback_url}")
253
257
  end
254
258
 
255
259
  it "generates a properly formatted OAuth code URL when permissions are requested as a string" do
256
260
  permissions = ["publish_stream", "read_stream"]
257
261
  url = @oauth.url_for_oauth_code(:permissions => permissions)
258
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&scope=#{CGI.escape permissions.join(",")}&redirect_uri=#{CGI.escape @callback_url}")
262
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&scope=#{CGI.escape permissions.join(",")}&redirect_uri=#{CGI.escape @callback_url}")
259
263
  end
260
264
 
261
265
  it "generates a properly formatted OAuth code URL when both permissions and callback are provided" do
262
266
  permissions = "publish_stream,read_stream"
263
267
  callback = "foo.com"
264
268
  url = @oauth.url_for_oauth_code(:callback => callback, :permissions => permissions)
265
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&scope=#{CGI.escape permissions}&redirect_uri=#{CGI.escape callback}")
269
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&scope=#{CGI.escape permissions}&redirect_uri=#{CGI.escape callback}")
266
270
  end
267
271
 
268
272
  it "generates a properly formatted OAuth code URL when a display is given as a string" do
269
273
  url = @oauth.url_for_oauth_code(:display => "page")
270
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/authorize?client_id=#{@app_id}&display=page&redirect_uri=#{CGI.escape @callback_url}")
274
+ url.should match_url("https://#{Koala.config.dialog_host}/dialog/oauth?client_id=#{@app_id}&display=page&redirect_uri=#{CGI.escape @callback_url}")
271
275
  end
272
276
 
273
277
  it "raises an exception if no callback is given in initialization or the call" do
@@ -295,13 +299,13 @@ describe "Koala::Facebook::OAuth" do
295
299
 
296
300
  it "generates a properly formatted OAuth token URL when provided a code" do
297
301
  url = @oauth.url_for_access_token(@code)
298
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/access_token?client_id=#{@app_id}&code=#{@code}&client_secret=#{@secret}&redirect_uri=#{CGI.escape @callback_url}")
302
+ url.should match_url("https://#{Koala.config.graph_server}/oauth/access_token?client_id=#{@app_id}&code=#{@code}&client_secret=#{@secret}&redirect_uri=#{CGI.escape @callback_url}")
299
303
  end
300
304
 
301
305
  it "generates a properly formatted OAuth token URL when provided a callback" do
302
306
  callback = "foo.com"
303
307
  url = @oauth.url_for_access_token(@code, :callback => callback)
304
- url.should match_url("https://#{Koala::Facebook::GRAPH_SERVER}/oauth/access_token?client_id=#{@app_id}&code=#{@code}&client_secret=#{@secret}&redirect_uri=#{CGI.escape callback}")
308
+ url.should match_url("https://#{Koala.config.graph_server}/oauth/access_token?client_id=#{@app_id}&code=#{@code}&client_secret=#{@secret}&redirect_uri=#{CGI.escape callback}")
305
309
  end
306
310
 
307
311
  it "includes any additional options as URL parameters, appropriately escaped" do
@@ -319,7 +323,7 @@ describe "Koala::Facebook::OAuth" do
319
323
  describe "#url_for_dialog" do
320
324
  it "builds the base properly" do
321
325
  dialog_type = "my_dialog_type"
322
- @oauth.url_for_dialog(dialog_type).should =~ /^http:\/\/#{Koala::Facebook::DIALOG_HOST}\/dialog\/#{dialog_type}/
326
+ @oauth.url_for_dialog(dialog_type).should =~ /^http:\/\/#{Koala.config.dialog_host}\/dialog\/#{dialog_type}/
323
327
  end
324
328
 
325
329
  it "adds the app_id/client_id to the url" do
@@ -541,7 +545,7 @@ describe "Koala::Facebook::OAuth" do
541
545
  end
542
546
 
543
547
  it "fetches a proper token string from Facebook when asked for the app token" do
544
- result = @oauth.send(:fetch_token_string, {:type => 'client_cred'}, true)
548
+ result = @oauth.send(:fetch_token_string, {:grant_type => 'client_credentials'}, true)
545
549
  result.should =~ /^access_token/
546
550
  end
547
551
  end