palidanx-fb_graph 1.0.4
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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +308 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/assets/fb_graph.ai +1726 -6
- data/assets/fb_graph.png +0 -0
- data/fb_graph.gemspec +327 -0
- data/lib/fb_graph.rb +75 -0
- data/lib/fb_graph/album.rb +133 -0
- data/lib/fb_graph/application.rb +57 -0
- data/lib/fb_graph/auth.rb +52 -0
- data/lib/fb_graph/auth/cookie.rb +43 -0
- data/lib/fb_graph/checkin.rb +44 -0
- data/lib/fb_graph/collection.rb +44 -0
- data/lib/fb_graph/comment.rb +20 -0
- data/lib/fb_graph/comparison.rb +9 -0
- data/lib/fb_graph/connection.rb +30 -0
- data/lib/fb_graph/connections.rb +3 -0
- data/lib/fb_graph/connections/accounts.rb +58 -0
- data/lib/fb_graph/connections/activities.rb +14 -0
- data/lib/fb_graph/connections/albums.rb +96 -0
- data/lib/fb_graph/connections/attending.rb +18 -0
- data/lib/fb_graph/connections/books.rb +14 -0
- data/lib/fb_graph/connections/checkins.rb +22 -0
- data/lib/fb_graph/connections/comments.rb +39 -0
- data/lib/fb_graph/connections/declined.rb +18 -0
- data/lib/fb_graph/connections/events.rb +21 -0
- data/lib/fb_graph/connections/feed.rb +90 -0
- data/lib/fb_graph/connections/friends.rb +14 -0
- data/lib/fb_graph/connections/groups.rb +14 -0
- data/lib/fb_graph/connections/home.rb +14 -0
- data/lib/fb_graph/connections/insights.rb +13 -0
- data/lib/fb_graph/connections/interests.rb +14 -0
- data/lib/fb_graph/connections/invited.rb +14 -0
- data/lib/fb_graph/connections/likes.rb +16 -0
- data/lib/fb_graph/connections/links.rb +21 -0
- data/lib/fb_graph/connections/maybe.rb +18 -0
- data/lib/fb_graph/connections/members.rb +14 -0
- data/lib/fb_graph/connections/movies.rb +14 -0
- data/lib/fb_graph/connections/music.rb +14 -0
- data/lib/fb_graph/connections/noreply.rb +14 -0
- data/lib/fb_graph/connections/notes.rb +21 -0
- data/lib/fb_graph/connections/photos.rb +21 -0
- data/lib/fb_graph/connections/picture.rb +14 -0
- data/lib/fb_graph/connections/posts.rb +14 -0
- data/lib/fb_graph/connections/statuses.rb +14 -0
- data/lib/fb_graph/connections/subscriptions.rb +53 -0
- data/lib/fb_graph/connections/tagged.rb +14 -0
- data/lib/fb_graph/connections/television.rb +14 -0
- data/lib/fb_graph/connections/videos.rb +14 -0
- data/lib/fb_graph/education.rb +25 -0
- data/lib/fb_graph/event.rb +47 -0
- data/lib/fb_graph/group.rb +27 -0
- data/lib/fb_graph/insight.rb +14 -0
- data/lib/fb_graph/link.rb +28 -0
- data/lib/fb_graph/node.rb +121 -0
- data/lib/fb_graph/note.rb +28 -0
- data/lib/fb_graph/page.rb +41 -0
- data/lib/fb_graph/photo.rb +41 -0
- data/lib/fb_graph/post.rb +50 -0
- data/lib/fb_graph/searchable.rb +25 -0
- data/lib/fb_graph/searchable/result.rb +31 -0
- data/lib/fb_graph/status.rb +23 -0
- data/lib/fb_graph/subscription.rb +14 -0
- data/lib/fb_graph/tag.rb +16 -0
- data/lib/fb_graph/user.rb +89 -0
- data/lib/fb_graph/venue.rb +17 -0
- data/lib/fb_graph/video.rb +28 -0
- data/lib/fb_graph/work.rb +35 -0
- data/spec/fake_json/albums/photos/matake_private.json +97 -0
- data/spec/fake_json/albums/photos/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/applications/subscriptions/fb_graph_private.json +12 -0
- data/spec/fake_json/checkins/search_private.json +54 -0
- data/spec/fake_json/checkins/search_public.json +6 -0
- data/spec/fake_json/events/attending/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/attending/smartday_private.json +44 -0
- data/spec/fake_json/events/declined/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/declined/smartday_private.json +720 -0
- data/spec/fake_json/events/invited/smartday_private.json +7092 -0
- data/spec/fake_json/events/maybe/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/events/maybe/smartday_private.json +956 -0
- data/spec/fake_json/events/noreply/smartday_private.json +896 -0
- data/spec/fake_json/groups/members/emacs_private.json +1996 -0
- data/spec/fake_json/pages/checkins/gowalla_private.json +113 -0
- data/spec/fake_json/pages/checkins/gowalla_public.json +6 -0
- data/spec/fake_json/pages/notes/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/pages/platform_private.json +13 -0
- data/spec/fake_json/pages/platform_public.json +13 -0
- data/spec/fake_json/pages/statuses/platform_private.json +258 -0
- data/spec/fake_json/pages/statuses/platform_public.json +6 -0
- data/spec/fake_json/posts/comments/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/posts/comments/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/posts/comments/post_without_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/posts/likes/post_without_access_token.json +1 -0
- data/spec/fake_json/posts/platform_private.json +97 -0
- data/spec/fake_json/posts/platform_public.json +52 -0
- data/spec/fake_json/users/accounts/matake_private.json +14 -0
- data/spec/fake_json/users/accounts/matake_private_with_manage_pages_permission.json +16 -0
- data/spec/fake_json/users/accounts/matake_public.json +6 -0
- data/spec/fake_json/users/activities/arjun_private.json +24 -0
- data/spec/fake_json/users/activities/arjun_public.json +6 -0
- data/spec/fake_json/users/albums/matake_private.json +36 -0
- data/spec/fake_json/users/albums/matake_public.json +6 -0
- data/spec/fake_json/users/albums/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/arjun_private.json +109 -0
- data/spec/fake_json/users/arjun_public.json +12 -0
- data/spec/fake_json/users/books/matake_private.json +9 -0
- data/spec/fake_json/users/books/matake_public.json +6 -0
- data/spec/fake_json/users/checkins/mattt_private.json +389 -0
- data/spec/fake_json/users/checkins/mattt_public.json +6 -0
- data/spec/fake_json/users/events/matake_private.json +71 -0
- data/spec/fake_json/users/events/matake_public.json +6 -0
- data/spec/fake_json/users/events/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/feed/arjun_private.json +520 -0
- data/spec/fake_json/users/feed/arjun_public.json +520 -0
- data/spec/fake_json/users/feed/post_with_invalid_access_token.json +1 -0
- data/spec/fake_json/users/feed/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/feed/post_without_access_token.json +1 -0
- data/spec/fake_json/users/friends/arjun_private.json +6 -0
- data/spec/fake_json/users/friends/arjun_public.json +6 -0
- data/spec/fake_json/users/friends/me_private.json +524 -0
- data/spec/fake_json/users/friends/me_public.json +6 -0
- data/spec/fake_json/users/groups/matake_private.json +48 -0
- data/spec/fake_json/users/groups/matake_public.json +6 -0
- data/spec/fake_json/users/home/arjun_private.json +6 -0
- data/spec/fake_json/users/home/arjun_public.json +6 -0
- data/spec/fake_json/users/home/me_private.json +460 -0
- data/spec/fake_json/users/home/me_private_next.json +382 -0
- data/spec/fake_json/users/home/me_private_previous.json +36 -0
- data/spec/fake_json/users/home/me_public.json +6 -0
- data/spec/fake_json/users/interests/matake_private.json +14 -0
- data/spec/fake_json/users/likes/arjun_private.json +1394 -0
- data/spec/fake_json/users/likes/arjun_public.json +6 -0
- data/spec/fake_json/users/links/matake_private.json +221 -0
- data/spec/fake_json/users/links/post_with_valid_access_token.json +1 -0
- data/spec/fake_json/users/me_private.json +128 -0
- data/spec/fake_json/users/me_public.json +6 -0
- data/spec/fake_json/users/movies/matake_private.json +9 -0
- data/spec/fake_json/users/music/matake_private.json +34 -0
- data/spec/fake_json/users/notes/matake_private.json +308 -0
- data/spec/fake_json/users/posts/arjun_private.json +386 -0
- data/spec/fake_json/users/posts/arjun_public.json +386 -0
- data/spec/fake_json/users/statuses/arjun_private.json +233 -0
- data/spec/fake_json/users/statuses/arjun_public.json +6 -0
- data/spec/fake_json/users/tagged/arjun_private.json +308 -0
- data/spec/fake_json/users/tagged/arjun_public.json +308 -0
- data/spec/fake_json/users/television/matake_private.json +9 -0
- data/spec/fake_json/users/videos/kirk_private.json +41 -0
- data/spec/fb_graph/album_spec.rb +61 -0
- data/spec/fb_graph/application_spec.rb +23 -0
- data/spec/fb_graph/auth_spec.rb +35 -0
- data/spec/fb_graph/checkin_spec.rb +29 -0
- data/spec/fb_graph/collection_spec.rb +45 -0
- data/spec/fb_graph/comment_spec.rb +31 -0
- data/spec/fb_graph/connection_spec.rb +38 -0
- data/spec/fb_graph/connections/accounts_spec.rb +47 -0
- data/spec/fb_graph/connections/activities_spec.rb +34 -0
- data/spec/fb_graph/connections/albums_spec.rb +60 -0
- data/spec/fb_graph/connections/attending_spec.rb +24 -0
- data/spec/fb_graph/connections/books_spec.rb +33 -0
- data/spec/fb_graph/connections/checkins_spec.rb +109 -0
- data/spec/fb_graph/connections/comments_spec.rb +85 -0
- data/spec/fb_graph/connections/declined_spec.rb +24 -0
- data/spec/fb_graph/connections/events_spec.rb +53 -0
- data/spec/fb_graph/connections/feed_spec.rb +102 -0
- data/spec/fb_graph/connections/friends_spec.rb +50 -0
- data/spec/fb_graph/connections/groups_spec.rb +32 -0
- data/spec/fb_graph/connections/home_spec.rb +58 -0
- data/spec/fb_graph/connections/interests_spec.rb +14 -0
- data/spec/fb_graph/connections/invited_spec.rb +14 -0
- data/spec/fb_graph/connections/likes_spec.rb +33 -0
- data/spec/fb_graph/connections/links_spec.rb +33 -0
- data/spec/fb_graph/connections/maybe_spec.rb +24 -0
- data/spec/fb_graph/connections/members_spec.rb +14 -0
- data/spec/fb_graph/connections/movies_spec.rb +14 -0
- data/spec/fb_graph/connections/music_spec.rb +14 -0
- data/spec/fb_graph/connections/noreply_spec.rb +14 -0
- data/spec/fb_graph/connections/notes_spec.rb +32 -0
- data/spec/fb_graph/connections/photos_spec.rb +30 -0
- data/spec/fb_graph/connections/picture_spec.rb +29 -0
- data/spec/fb_graph/connections/posts_spec.rb +35 -0
- data/spec/fb_graph/connections/statuses_spec.rb +74 -0
- data/spec/fb_graph/connections/subscriptions_spec.rb +18 -0
- data/spec/fb_graph/connections/tagged_spec.rb +42 -0
- data/spec/fb_graph/connections/television_spec.rb +14 -0
- data/spec/fb_graph/connections/videos_spec.rb +14 -0
- data/spec/fb_graph/education_spec.rb +61 -0
- data/spec/fb_graph/event_spec.rb +50 -0
- data/spec/fb_graph/group_spec.rb +46 -0
- data/spec/fb_graph/insight_spec.rb +17 -0
- data/spec/fb_graph/link_spec.rb +43 -0
- data/spec/fb_graph/node_spec.rb +13 -0
- data/spec/fb_graph/note_spec.rb +37 -0
- data/spec/fb_graph/page_spec.rb +56 -0
- data/spec/fb_graph/photo_spec.rb +60 -0
- data/spec/fb_graph/post_spec.rb +71 -0
- data/spec/fb_graph/status_spec.rb +31 -0
- data/spec/fb_graph/subscription_spec.rb +5 -0
- data/spec/fb_graph/tag_spec.rb +20 -0
- data/spec/fb_graph/user_spec.rb +139 -0
- data/spec/fb_graph/venue_spec.rb +23 -0
- data/spec/fb_graph/video_spec.rb +37 -0
- data/spec/fb_graph/work_spec.rb +67 -0
- data/spec/helpers/fake_json_helper.rb +11 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +18 -0
- metadata +414 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Checkin, '.new' do
|
|
4
|
+
# TODO
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
describe FbGraph::Checkin, '.search' do
|
|
8
|
+
before(:all) do
|
|
9
|
+
fake_json(:get, 'search?type=checkin', 'checkins/search_public')
|
|
10
|
+
fake_json(:get, 'search?type=checkin&access_token=access_token', 'checkins/search_private')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context 'when no access_token given' do
|
|
14
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
15
|
+
lambda do
|
|
16
|
+
FbGraph::Checkin.search
|
|
17
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
context 'when access_token is given' do
|
|
22
|
+
it 'should return checkins as FbGraph::Checkin' do
|
|
23
|
+
checkins = FbGraph::Checkin.search(:access_token => 'access_token')
|
|
24
|
+
checkins.each do |checkin|
|
|
25
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Collection, '.new' do
|
|
4
|
+
before(:all) do
|
|
5
|
+
fake_json(:get, 'platform/statuses?access_token=access_token', 'pages/statuses/platform_private')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should return an array with pagination info' do
|
|
9
|
+
collection = FbGraph::Page.new('platform', :access_token => 'access_token').statuses.collection
|
|
10
|
+
collection.should be_kind_of(Array)
|
|
11
|
+
collection.previous.should be_kind_of(Hash)
|
|
12
|
+
collection.next.should be_kind_of(Hash)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'should allow blank data' do
|
|
16
|
+
patterns = [
|
|
17
|
+
FbGraph::Collection.new,
|
|
18
|
+
FbGraph::Collection.new({}),
|
|
19
|
+
FbGraph::Collection.new({:count => 5}),
|
|
20
|
+
FbGraph::Collection.new(nil)
|
|
21
|
+
]
|
|
22
|
+
patterns.each do |collection|
|
|
23
|
+
collection.should be_kind_of(Array)
|
|
24
|
+
collection.previous.should be_kind_of(Hash)
|
|
25
|
+
collection.next.should be_kind_of(Hash)
|
|
26
|
+
collection.should be_blank
|
|
27
|
+
collection.previous.should be_blank
|
|
28
|
+
collection.next.should be_blank
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'should fetch count as total_count' do
|
|
33
|
+
collection = FbGraph::Collection.new({:count => 5})
|
|
34
|
+
collection.total_count.should == 5
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'should accept Array' do
|
|
38
|
+
collection = FbGraph::Collection.new([1, 2, 3])
|
|
39
|
+
collection.total_count.should == 3
|
|
40
|
+
collection.should == [1, 2, 3]
|
|
41
|
+
collection.previous.should be_blank
|
|
42
|
+
collection.next.should be_blank
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Comment, '.new' do
|
|
4
|
+
|
|
5
|
+
it 'should setup all supported attributes' do
|
|
6
|
+
attributes = {
|
|
7
|
+
:id => '12345',
|
|
8
|
+
:from => {
|
|
9
|
+
:id => '23456',
|
|
10
|
+
:name => 'nov matake'
|
|
11
|
+
},
|
|
12
|
+
:message => 'hello',
|
|
13
|
+
:created_time => '2010-01-02T15:37:40+0000'
|
|
14
|
+
}
|
|
15
|
+
comment = FbGraph::Comment.new(attributes.delete(:id), attributes)
|
|
16
|
+
comment.identifier.should == '12345'
|
|
17
|
+
comment.from.should == FbGraph::User.new('23456', :name => 'nov matake')
|
|
18
|
+
comment.message.should == 'hello'
|
|
19
|
+
comment.created_time.should == Time.parse('2010-01-02T15:37:40+0000')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'should support page as from' do
|
|
23
|
+
page_comment = FbGraph::Comment.new('12345', :from => {
|
|
24
|
+
:id => '23456',
|
|
25
|
+
:name => 'Smart.fm',
|
|
26
|
+
:category => 'Web Site'
|
|
27
|
+
})
|
|
28
|
+
page_comment.from.should == FbGraph::Page.new('23456', :name => 'Smart.fm', :category => 'Web Site')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Connection, '.new' do
|
|
4
|
+
before(:all) do
|
|
5
|
+
fake_json(:get, 'platform/statuses?access_token=access_token', 'pages/statuses/platform_private')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should return an array with connection info' do
|
|
9
|
+
page = FbGraph::Page.new('platform', :access_token => 'access_token')
|
|
10
|
+
statuses = page.statuses
|
|
11
|
+
statuses.should be_kind_of(Array)
|
|
12
|
+
statuses.collection.should be_kind_of(FbGraph::Collection)
|
|
13
|
+
statuses.owner.should == page
|
|
14
|
+
statuses.connection.should == :statuses
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe FbGraph::Connection do
|
|
19
|
+
before(:all) do
|
|
20
|
+
fake_json(:get, 'me/home?access_token=access_token', 'users/home/me_private')
|
|
21
|
+
fake_json(:get, 'me/home?limit=25&since=2010-04-27T13%3A06%3A14%2B0000&access_token=access_token', 'users/home/me_private_previous')
|
|
22
|
+
fake_json(:get, 'me/home?limit=25&access_token=access_token&until=2010-04-27T11%3A07%3A48%2B0000', 'users/home/me_private_next')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'should be useful for pagenation' do
|
|
26
|
+
me = FbGraph::User.new('me', :access_token => 'access_token')
|
|
27
|
+
posts = me.home
|
|
28
|
+
posts.first.created_time.should == Time.parse('2010-04-27T13:06:14+0000')
|
|
29
|
+
posts.last.created_time.should == Time.parse('2010-04-27T11:07:48+0000')
|
|
30
|
+
previous_posts = posts.previous
|
|
31
|
+
previous_posts.first.created_time.should == Time.parse('2010-04-27T13:23:08+0000')
|
|
32
|
+
previous_posts.last.created_time.should == Time.parse('2010-04-27T13:10:56+0000')
|
|
33
|
+
next_posts = posts.next
|
|
34
|
+
next_posts.first.created_time.should == Time.parse('2010-04-27T11:06:29+0000')
|
|
35
|
+
next_posts.last.created_time.should == Time.parse('2010-04-27T09:44:28+0000')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
context 'when included by FbGraph::User' do
|
|
4
|
+
describe FbGraph::Connections::Accounts, '#accounts' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
fake_json(:get, 'matake/accounts', 'users/accounts/matake_public')
|
|
7
|
+
fake_json(:get, 'matake/accounts?access_token=access_token', 'users/accounts/matake_private')
|
|
8
|
+
fake_json(:get, 'matake/accounts?access_token=access_token_with_manage_pages_permission', 'users/accounts/matake_private_with_manage_pages_permission')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
context 'when no access_token given' do
|
|
12
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
13
|
+
lambda do
|
|
14
|
+
FbGraph::User.new('matake').accounts
|
|
15
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
context 'when access_token is given' do
|
|
20
|
+
it 'should return accounts as FbGraph::Page' do
|
|
21
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token').accounts
|
|
22
|
+
accounts.class.should == FbGraph::Connection
|
|
23
|
+
accounts.first.should == FbGraph::Page.new(
|
|
24
|
+
'140478125968442',
|
|
25
|
+
:access_token => 'access_token',
|
|
26
|
+
:name => 'OAuth.jp',
|
|
27
|
+
:category => 'Technology'
|
|
28
|
+
)
|
|
29
|
+
accounts.each do |account|
|
|
30
|
+
account.should be_instance_of(FbGraph::Page)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
context 'when manage_pages permission given' do
|
|
35
|
+
it 'should has special access_token behalf of the page' do
|
|
36
|
+
accounts = FbGraph::User.new('matake', :access_token => 'access_token_with_manage_pages_permission').accounts
|
|
37
|
+
accounts.first.should == FbGraph::Page.new(
|
|
38
|
+
'140478125968442',
|
|
39
|
+
:access_token => 'access_token_for_oauth_jp',
|
|
40
|
+
:name => 'OAuth.jp',
|
|
41
|
+
:category => 'Technology'
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
context 'when included by FbGraph::User' do
|
|
4
|
+
describe FbGraph::Connections::Activities, '#activities' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
fake_json(:get, 'arjun/activities', 'users/activities/arjun_public')
|
|
7
|
+
fake_json(:get, 'arjun/activities?access_token=access_token', 'users/activities/arjun_private')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context 'when no access_token given' do
|
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
12
|
+
lambda do
|
|
13
|
+
FbGraph::User.new('arjun').activities
|
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context 'when access_token is given' do
|
|
19
|
+
it 'should return activities as FbGraph::Page' do
|
|
20
|
+
activities = FbGraph::User.new('arjun', :access_token => 'access_token').activities
|
|
21
|
+
activities.class.should == FbGraph::Connection
|
|
22
|
+
activities.first.should == FbGraph::Page.new(
|
|
23
|
+
'378209722137',
|
|
24
|
+
:access_token => 'access_token',
|
|
25
|
+
:name => 'Doing Things at the Last Minute',
|
|
26
|
+
:category => '活動'
|
|
27
|
+
)
|
|
28
|
+
activities.each do |activity|
|
|
29
|
+
activity.should be_instance_of(FbGraph::Page)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
context 'when included by FbGraph::User' do
|
|
4
|
+
describe FbGraph::Connections::Albums, '#albums' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
fake_json(:get, 'matake/albums', 'users/albums/matake_public')
|
|
7
|
+
fake_json(:get, 'matake/albums?access_token=access_token', 'users/albums/matake_private')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context 'when no access_token given' do
|
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
12
|
+
lambda do
|
|
13
|
+
FbGraph::User.new('matake').albums
|
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context 'when access_token is given' do
|
|
19
|
+
it 'should return albums as FbGraph::Album' do
|
|
20
|
+
albums = FbGraph::User.new('matake', :access_token => 'access_token').albums
|
|
21
|
+
albums.first.should == FbGraph::Album.new(
|
|
22
|
+
'19351532276',
|
|
23
|
+
:access_token => 'access_token',
|
|
24
|
+
:from => {
|
|
25
|
+
:id => '579612276',
|
|
26
|
+
:name => 'Nov Matake'
|
|
27
|
+
},
|
|
28
|
+
:name => 'モバイルアップロード',
|
|
29
|
+
:description => 'hello facebookers!',
|
|
30
|
+
:link => 'http://www.facebook.com/album.php?aid=25463&id=579612276',
|
|
31
|
+
:location => 'NYC',
|
|
32
|
+
:count => 3,
|
|
33
|
+
:privacy => 'everyone',
|
|
34
|
+
:created_time => '2008-07-27T11:38:15+0000',
|
|
35
|
+
:updated_time => '2009-02-07T16:09:53+0000'
|
|
36
|
+
)
|
|
37
|
+
albums.each do |album|
|
|
38
|
+
album.should be_instance_of(FbGraph::Album)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
describe FbGraph::Connections::Albums, '#album!' do
|
|
45
|
+
before do
|
|
46
|
+
fake_json(:post, 'matake/albums', 'users/albums/post_with_valid_access_token')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'should return generated album' do
|
|
50
|
+
album = FbGraph::User.new('matake', :access_token => 'valid').album!(
|
|
51
|
+
:name => 'FbGraph test',
|
|
52
|
+
:message => 'test test test'
|
|
53
|
+
)
|
|
54
|
+
album.identifier.should == 401096332276
|
|
55
|
+
album.access_token.should == 'valid'
|
|
56
|
+
album.name.should == 'FbGraph test'
|
|
57
|
+
album.description.should == 'test test test'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Connections::Attending, '#attending' do
|
|
4
|
+
before(:all) do
|
|
5
|
+
fake_json(:get, 'smartday/attending?access_token=access_token', 'events/attending/smartday_private')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should return attending users as FbGraph::User' do
|
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').attending
|
|
10
|
+
users.each do |user|
|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe FbGraph::Connections::Attending, '#attending!' do
|
|
17
|
+
before do
|
|
18
|
+
fake_json(:post, '12345/attending', 'events/attending/post_with_valid_access_token')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should return true' do
|
|
22
|
+
FbGraph::Event.new('12345', :access_token => 'valid').attending!.should be_true
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe FbGraph::Connections::Books, '#books' do
|
|
4
|
+
context 'when included by FbGraph::User' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
fake_json(:get, 'matake/books', 'users/books/matake_public')
|
|
7
|
+
fake_json(:get, 'matake/books?access_token=access_token', 'users/books/matake_private')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context 'when no access_token given' do
|
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
12
|
+
lambda do
|
|
13
|
+
FbGraph::User.new('matake').books
|
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context 'when access_token is given' do
|
|
19
|
+
it 'should return books as FbGraph::Page' do
|
|
20
|
+
books = FbGraph::User.new('matake', :access_token => 'access_token').books
|
|
21
|
+
books.first.should == FbGraph::Page.new(
|
|
22
|
+
'102253616477130',
|
|
23
|
+
:access_token => 'access_token',
|
|
24
|
+
:name => 'Momo Michael Ende',
|
|
25
|
+
:category => 'Unknown'
|
|
26
|
+
)
|
|
27
|
+
books.each do |book|
|
|
28
|
+
book.should be_instance_of(FbGraph::Page)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
|
2
|
+
|
|
3
|
+
context 'when included by FbGraph::User' do
|
|
4
|
+
describe FbGraph::Connections::Checkins, '#checkins' do
|
|
5
|
+
before(:all) do
|
|
6
|
+
fake_json(:get, 'mattt/checkins', 'users/checkins/mattt_public')
|
|
7
|
+
fake_json(:get, 'mattt/checkins?access_token=access_token', 'users/checkins/mattt_private')
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context 'when no access_token given' do
|
|
11
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
12
|
+
lambda do
|
|
13
|
+
FbGraph::User.new('mattt').checkins
|
|
14
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context 'when access_token is given' do
|
|
19
|
+
it 'should return checkins as FbGraph::Checkin' do
|
|
20
|
+
checkins = FbGraph::User.new('mattt', :access_token => 'access_token').checkins
|
|
21
|
+
checkins.first.should == FbGraph::Checkin.new(
|
|
22
|
+
'696876187499',
|
|
23
|
+
:access_token => 'access_token',
|
|
24
|
+
:from => {
|
|
25
|
+
:id => '12820552',
|
|
26
|
+
:name => 'Roger Pincombe'
|
|
27
|
+
},
|
|
28
|
+
:tags => {
|
|
29
|
+
:data => [{
|
|
30
|
+
:id => '4810308',
|
|
31
|
+
:name => 'Mattt Thompson'
|
|
32
|
+
}]
|
|
33
|
+
},
|
|
34
|
+
:message => 'Checking out Austin, TX',
|
|
35
|
+
:place => {
|
|
36
|
+
:id => '120454134658381',
|
|
37
|
+
:name => 'Gowalla HQ',
|
|
38
|
+
:location => {
|
|
39
|
+
:latitude => 30.26876,
|
|
40
|
+
:longitude => -97.74962
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
:application => {
|
|
44
|
+
:id => '6628568379',
|
|
45
|
+
:name => 'Facebook for iPhone'
|
|
46
|
+
},
|
|
47
|
+
:created_time => '2010-09-08T00:09:25+0000'
|
|
48
|
+
)
|
|
49
|
+
checkins.each do |checkin|
|
|
50
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
context 'when included by FbGraph::Page' do
|
|
58
|
+
describe FbGraph::Connections::Checkins, '#checkins' do
|
|
59
|
+
before(:all) do
|
|
60
|
+
fake_json(:get, 'gowalla/checkins', 'pages/checkins/gowalla_public')
|
|
61
|
+
fake_json(:get, 'gowalla/checkins?access_token=access_token', 'pages/checkins/gowalla_private')
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
context 'when no access_token given' do
|
|
65
|
+
it 'should raise FbGraph::Unauthorized' do
|
|
66
|
+
lambda do
|
|
67
|
+
FbGraph::Page.new('gowalla').checkins
|
|
68
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
context 'when access_token is given' do
|
|
73
|
+
it 'should return checkins as FbGraph::Checkin' do
|
|
74
|
+
checkins = FbGraph::Page.new('gowalla', :access_token => 'access_token').checkins
|
|
75
|
+
checkins.first.should == FbGraph::Checkin.new(
|
|
76
|
+
'696876187499',
|
|
77
|
+
:access_token => 'access_token',
|
|
78
|
+
:from => {
|
|
79
|
+
:id => '12820552',
|
|
80
|
+
:name => 'Roger Pincombe'
|
|
81
|
+
},
|
|
82
|
+
:tags => {
|
|
83
|
+
:data => [{
|
|
84
|
+
:id => '4810308',
|
|
85
|
+
:name => 'Mattt Thompson'
|
|
86
|
+
}]
|
|
87
|
+
},
|
|
88
|
+
:message => 'Checking out Austin, TX',
|
|
89
|
+
:place => {
|
|
90
|
+
:id => '120454134658381',
|
|
91
|
+
:name => 'Gowalla HQ',
|
|
92
|
+
:location => {
|
|
93
|
+
:latitude => 30.26876,
|
|
94
|
+
:longitude => -97.74962
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
:application => {
|
|
98
|
+
:id => '6628568379',
|
|
99
|
+
:name => 'Facebook for iPhone'
|
|
100
|
+
},
|
|
101
|
+
:created_time => '2010-09-08T00:09:25+0000'
|
|
102
|
+
)
|
|
103
|
+
checkins.each do |checkin|
|
|
104
|
+
checkin.should be_instance_of(FbGraph::Checkin)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|