palidanx-fb_graph 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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,33 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Links, '#links' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/links?access_token=access_token', 'users/links/matake_private')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should return notes as FbGraph::Link' do
|
10
|
+
links = FbGraph::User.new('matake', :access_token => 'access_token').links
|
11
|
+
links.each do |link|
|
12
|
+
link.should be_instance_of(FbGraph::Link)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe FbGraph::Connections::Links, '#link!' do
|
18
|
+
before do
|
19
|
+
fake_json(:post, 'matake/links', 'users/links/post_with_valid_access_token')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should return generated link' do
|
23
|
+
link = FbGraph::User.new('matake', :access_token => 'valid').link!(
|
24
|
+
:link => 'http://github.com/nov/fb_graph',
|
25
|
+
:message => 'A Ruby wrapper for Facebook Graph API.'
|
26
|
+
)
|
27
|
+
link.identifier.should == 120765121284251
|
28
|
+
link.link.should == 'http://github.com/nov/fb_graph'
|
29
|
+
link.message.should == 'A Ruby wrapper for Facebook Graph API.'
|
30
|
+
link.access_token.should == 'valid'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Maybe, '#maybe' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'smartday/maybe?access_token=access_token', 'events/maybe/smartday_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return maybe users as FbGraph::User' do
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').maybe
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe FbGraph::Connections::Maybe, '#maybe!' do
|
17
|
+
before do
|
18
|
+
fake_json(:post, '12345/maybe', 'events/maybe/post_with_valid_access_token')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should return true' do
|
22
|
+
FbGraph::Event.new('12345', :access_token => 'valid').maybe!.should be_true
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Friends, '#friends' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'emacs/members?access_token=access_token', 'groups/members/emacs_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return members as FbGraph::User' do
|
9
|
+
users = FbGraph::Group.new('emacs', :access_token => 'access_token').members
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Movies, '#movies' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'matake/movies?access_token=access_token', 'users/movies/matake_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return movies pages as FbGraph::Page' do
|
9
|
+
pages = FbGraph::User.new('matake', :access_token => 'access_token').movies
|
10
|
+
pages.each do |page|
|
11
|
+
page.should be_instance_of(FbGraph::Page)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Music, '#music' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'matake/music?access_token=access_token', 'users/music/matake_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return music pages as FbGraph::Page' do
|
9
|
+
pages = FbGraph::User.new('matake', :access_token => 'access_token').music
|
10
|
+
pages.each do |page|
|
11
|
+
page.should be_instance_of(FbGraph::Page)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Noreply, '#noreply' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'smartday/noreply?access_token=access_token', 'events/noreply/smartday_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return noreply users as FbGraph::User' do
|
9
|
+
users = FbGraph::Event.new('smartday', :access_token => 'access_token').noreply
|
10
|
+
users.each do |user|
|
11
|
+
user.should be_instance_of(FbGraph::User)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::User' do
|
4
|
+
describe FbGraph::Connections::Notes, '#notes' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'matake/notes?access_token=access_token', 'users/notes/matake_private')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should return notes as FbGraph::Note' do
|
10
|
+
notes = FbGraph::User.new('matake', :access_token => 'access_token').notes
|
11
|
+
notes.each do |note|
|
12
|
+
note.should be_instance_of(FbGraph::Note)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when included by FbGraph::Page' do
|
19
|
+
describe FbGraph::Connections::Notes, '#note!' do
|
20
|
+
before do
|
21
|
+
fake_json(:post, '12345/notes', 'pages/notes/post_with_valid_access_token')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should return generated note' do
|
25
|
+
note = FbGraph::Page.new('12345', :access_token => 'valid').note!(:subject => 'test', :message => 'hello')
|
26
|
+
note.identifier.should == 396664845100
|
27
|
+
note.subject.should == 'test'
|
28
|
+
note.message.should == 'hello'
|
29
|
+
note.access_token.should == 'valid'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Photos, '#photos' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, '12345/photos?access_token=access_token', 'albums/photos/matake_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return photos as FbGraph::Photo' do
|
9
|
+
photos = FbGraph::Album.new('12345', :access_token => 'access_token').photos
|
10
|
+
photos.each do |photo|
|
11
|
+
photo.should be_instance_of(FbGraph::Photo)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe FbGraph::Connections::Photos, '#photo!' do
|
17
|
+
before do
|
18
|
+
fake_json(:post, '12345/photos', 'albums/photos/post_with_valid_access_token')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should return generated photo' do
|
22
|
+
photo = FbGraph::Album.new('12345', :access_token => 'valid').photo!(
|
23
|
+
:image => Tempfile.new('image_file'),
|
24
|
+
:message => 'Hello, where is photo?'
|
25
|
+
)
|
26
|
+
photo.identifier.should == 401111132276
|
27
|
+
photo.name.should == 'Hello, where is photo?'
|
28
|
+
photo.access_token.should == 'valid'
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Picture, '#picture' do
|
4
|
+
|
5
|
+
context 'when included by FbGraph::User' do
|
6
|
+
it 'should return image url' do
|
7
|
+
FbGraph::User.new('matake').picture.should == File.join(FbGraph::ROOT_URL, 'matake/picture')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should support size option' do
|
11
|
+
[:square, :large].each do |size|
|
12
|
+
FbGraph::User.new('matake').picture(size).should == File.join(FbGraph::ROOT_URL, "matake/picture?type=#{size}")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'when included by FbGraph::Page' do
|
18
|
+
it 'should return image url' do
|
19
|
+
FbGraph::Page.new('platform').picture.should == File.join(FbGraph::ROOT_URL, 'platform/picture')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should support size option' do
|
23
|
+
[:square, :large].each do |size|
|
24
|
+
FbGraph::Page.new('platform').picture(size).should == File.join(FbGraph::ROOT_URL, "platform/picture?type=#{size}")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Posts, '#posts' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'arjun/posts', 'users/posts/arjun_public')
|
7
|
+
fake_json(:get, 'arjun/posts?access_token=access_token', 'users/posts/arjun_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should return public posts the user created as FbGraph::Post' do
|
12
|
+
posts = FbGraph::User.new('arjun').posts
|
13
|
+
posts.first.should == FbGraph::Post.new(
|
14
|
+
'7901103_121392141207495',
|
15
|
+
:from => {
|
16
|
+
:id => '7901103',
|
17
|
+
:name => 'Arjun Banker'
|
18
|
+
},
|
19
|
+
:picture => 'http://external.ak.fbcdn.net/safe_image.php?d=d2cc5beedaa401ba54eccc9014647285&w=130&h=130&url=http%3A%2F%2Fimages.ted.com%2Fimages%2Fted%2F269_389x292.jpg',
|
20
|
+
:link => 'http://www.ted.com/talks/wade_davis_on_endangered_cultures.html',
|
21
|
+
:name => 'Wade Davis on endangered cultures | Video on TED.com',
|
22
|
+
:caption => 'www.ted.com',
|
23
|
+
:description => 'TED Talks With stunning photos and stories, National Geographic Explorer Wade Davis celebrates the extraordinary diversity of the world\'s indigenous cultures, which are disappearing from the planet at an alarming rate.',
|
24
|
+
:icon => 'http://static.ak.fbcdn.net/rsrc.php/z9XZ8/hash/976ulj6z.gif',
|
25
|
+
:created_time => '2010-04-25T04:05:32+0000',
|
26
|
+
:updated_time => '2010-04-25T04:05:32+0000',
|
27
|
+
:likes => 1
|
28
|
+
)
|
29
|
+
posts.each do |post|
|
30
|
+
post.should be_instance_of(FbGraph::Post)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Statuses, '#statuses' do
|
4
|
+
|
5
|
+
context 'when included by FbGraph::User' do
|
6
|
+
before(:all) do
|
7
|
+
fake_json(:get, 'arjun/statuses', 'users/statuses/arjun_public')
|
8
|
+
fake_json(:get, 'arjun/statuses?access_token=access_token', 'users/statuses/arjun_private')
|
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('arjun').statuses
|
15
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when access_token is given' do
|
20
|
+
it 'should return statuses as FbGraph::Status' do
|
21
|
+
statuses = FbGraph::User.new('arjun', :access_token => 'access_token').statuses
|
22
|
+
statuses.first.should == FbGraph::Status.new(
|
23
|
+
'113559395341627',
|
24
|
+
:access_token => 'access_token',
|
25
|
+
:from => {
|
26
|
+
:id => '7901103',
|
27
|
+
:name => 'Arjun Banker'
|
28
|
+
},
|
29
|
+
:message => 'http://www.facebook.com/photo.php?pid=60538827&l=79b44ffb74&id=7901103',
|
30
|
+
:updated_time => '2010-04-21T21:10:16+0000'
|
31
|
+
)
|
32
|
+
statuses.each do |status|
|
33
|
+
status.should be_instance_of(FbGraph::Status)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when included by FbGraph::Page' do
|
40
|
+
before(:all) do
|
41
|
+
fake_json(:get, 'platform/statuses', 'pages/statuses/platform_public')
|
42
|
+
fake_json(:get, 'platform/statuses?access_token=access_token', 'pages/statuses/platform_private')
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when no access_token given' do
|
46
|
+
it 'should raise FbGraph::Unauthorized' do
|
47
|
+
lambda do
|
48
|
+
FbGraph::Page.new('platform').statuses
|
49
|
+
end.should raise_exception(FbGraph::Unauthorized)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context 'when access_token is given' do
|
54
|
+
it 'should return statuses as FbGraph::Status' do
|
55
|
+
statuses = FbGraph::Page.new('platform', :access_token => 'access_token').statuses
|
56
|
+
statuses.first.should == FbGraph::Status.new(
|
57
|
+
'111081598927600',
|
58
|
+
:access_token => 'access_token',
|
59
|
+
:from => {
|
60
|
+
:id => '19292868552',
|
61
|
+
:name => 'Facebook Platform',
|
62
|
+
:category => 'Technology'
|
63
|
+
},
|
64
|
+
:message => 'Here\'s more information on the new social plugins announced at f8 today - http://bit.ly/db8ahS',
|
65
|
+
:updated_time => '2010-04-21T20:17:04+0000'
|
66
|
+
)
|
67
|
+
statuses.each do |status|
|
68
|
+
status.should be_instance_of(FbGraph::Status)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
context 'when included by FbGraph::Application' do
|
4
|
+
describe FbGraph::Connections::Subscriptions, '#subscriptions' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'fb_graph/subscriptions?access_token=access_token', 'applications/subscriptions/fb_graph_private')
|
7
|
+
end
|
8
|
+
|
9
|
+
context 'when access_token is given' do
|
10
|
+
it 'should return liked pages as FbGraph::Page' do
|
11
|
+
subscriptions = FbGraph::Application.new('fb_graph', :access_token => 'access_token').subscriptions
|
12
|
+
subscriptions.each do |subscription|
|
13
|
+
subscription.should be_instance_of(FbGraph::Subscription)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Tagged, '#tagged' do
|
4
|
+
context 'when included by FbGraph::User' do
|
5
|
+
before(:all) do
|
6
|
+
fake_json(:get, 'arjun/tagged', 'users/tagged/arjun_public')
|
7
|
+
fake_json(:get, 'arjun/tagged?access_token=access_token', 'users/tagged/arjun_private')
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when no access_token given' do
|
11
|
+
it 'should return posts the user has been tagged as FbGraph::Post' do
|
12
|
+
posts = FbGraph::User.new('arjun').tagged
|
13
|
+
posts.first.should == FbGraph::Post.new(
|
14
|
+
'7901103_117809521578252',
|
15
|
+
:from => {
|
16
|
+
:id => '1404401889',
|
17
|
+
:name => 'Elli Mooney'
|
18
|
+
},
|
19
|
+
:to => {
|
20
|
+
:data => [{
|
21
|
+
:id => '7901103',
|
22
|
+
:name => 'Arjun Banker'
|
23
|
+
}]
|
24
|
+
},
|
25
|
+
:message => '...uh oh, here comes a privacy issue....',
|
26
|
+
:picture => 'http://external.ak.fbcdn.net/safe_image.php?d=c659c86d415c60c37b2871bfd67f2a97&w=130&h=130&url=http%3A%2F%2Fcdn.venturebeat.com%2Fwp-content%2Fuploads%2F2010%2F04%2Fusethisone.jpg',
|
27
|
+
:link => 'http://venturebeat.com/2010/04/23/blippy-credit-card-citibank/',
|
28
|
+
:name => 'Blippy users’ credit card numbers found on Google | VentureBeat',
|
29
|
+
:caption => 'venturebeat.com',
|
30
|
+
:description => '[Update: Blippy cofounder Philip Kaplan emailed a response. CNET News is reporting that the cards in question were issued by ...',
|
31
|
+
:icon => 'http://static.ak.fbcdn.net/rsrc.php/zB010/hash/9yvl71tw.gif',
|
32
|
+
:created_time => '2010-04-24T08:07:59+0000',
|
33
|
+
:updated_time => '2010-04-24T08:07:59+0000',
|
34
|
+
:likes => 1
|
35
|
+
)
|
36
|
+
posts.each do |post|
|
37
|
+
post.should be_instance_of(FbGraph::Post)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Television, '#television' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'matake/television?access_token=access_token', 'users/television/matake_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return television pages as FbGraph::Page' do
|
9
|
+
pages = FbGraph::User.new('matake', :access_token => 'access_token').television
|
10
|
+
pages.each do |page|
|
11
|
+
page.should be_instance_of(FbGraph::Page)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Connections::Videos, '#videos' do
|
4
|
+
before(:all) do
|
5
|
+
fake_json(:get, 'kirk/videos?access_token=access_token', 'users/videos/kirk_private')
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should return videos as FbGraph::Video' do
|
9
|
+
videos = FbGraph::User.new('kirk', :access_token => 'access_token').videos
|
10
|
+
videos.each do |video|
|
11
|
+
video.should be_instance_of(FbGraph::Video)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../spec_helper')
|
2
|
+
|
3
|
+
describe FbGraph::Education, '.new' do
|
4
|
+
|
5
|
+
it 'should setup all supported attributes' do
|
6
|
+
attributes = {
|
7
|
+
:school => {
|
8
|
+
:id => 110149592341159,
|
9
|
+
:name => "\u540c\u5fd7\u793e\u5927\u5b66"
|
10
|
+
},
|
11
|
+
:degree => {
|
12
|
+
:id => 110616875633830,
|
13
|
+
:name => "Master of Engineering"
|
14
|
+
},
|
15
|
+
:year => {
|
16
|
+
:id => 104926492884272,
|
17
|
+
:name => "2007"
|
18
|
+
},
|
19
|
+
:concentration => [
|
20
|
+
{
|
21
|
+
:id => 112303688789448,
|
22
|
+
:name => "Engineering"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
:id => 102358546472290,
|
26
|
+
:name => "Intelligent Information"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
:id => 108311762535367,
|
30
|
+
:name => "Intelligent Systems Design Laboratory"
|
31
|
+
}
|
32
|
+
] }
|
33
|
+
education = FbGraph::Education.new(attributes)
|
34
|
+
education.school.should == FbGraph::Page.new(
|
35
|
+
110149592341159,
|
36
|
+
:name => "\u540c\u5fd7\u793e\u5927\u5b66"
|
37
|
+
)
|
38
|
+
education.degree.should == FbGraph::Page.new(
|
39
|
+
110616875633830,
|
40
|
+
:name => "Master of Engineering"
|
41
|
+
)
|
42
|
+
education.year.should == FbGraph::Page.new(
|
43
|
+
104926492884272,
|
44
|
+
:name => "2007"
|
45
|
+
)
|
46
|
+
education.concentration.should == [
|
47
|
+
FbGraph::Page.new(
|
48
|
+
112303688789448,
|
49
|
+
:name => "Engineering"
|
50
|
+
),
|
51
|
+
FbGraph::Page.new(
|
52
|
+
102358546472290,
|
53
|
+
:name => "Intelligent Information"
|
54
|
+
),
|
55
|
+
FbGraph::Page.new(
|
56
|
+
108311762535367,
|
57
|
+
:name => "Intelligent Systems Design Laboratory"
|
58
|
+
)
|
59
|
+
]
|
60
|
+
end
|
61
|
+
end
|