mirror of
https://github.com/nov/fb_graph2
synced 2023-03-27 23:22:15 -04:00
more tests
This commit is contained in:
parent
9298dda022
commit
faff7034ba
11 changed files with 342 additions and 1 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -20,3 +20,5 @@ tmp
|
|||
*.o
|
||||
*.a
|
||||
mkmf.log
|
||||
wiki
|
||||
samples
|
||||
|
|
|
@ -23,5 +23,9 @@ module FbGraph2
|
|||
super
|
||||
# TODO: handle custom attributes.
|
||||
end
|
||||
|
||||
def self.app(access_token)
|
||||
new(:app).authenticate access_token
|
||||
end
|
||||
end
|
||||
end
|
|
@ -7,6 +7,12 @@ module FbGraph2
|
|||
Notification.new notification[:id], notification
|
||||
end
|
||||
end
|
||||
|
||||
def notification!(params = {})
|
||||
notification = self.post params, edge: :notifications
|
||||
notification.include? :success
|
||||
end
|
||||
alias_method :notify!, :notification!
|
||||
end
|
||||
end
|
||||
end
|
|
@ -2,7 +2,7 @@ module FbGraph2
|
|||
class Edge
|
||||
module SharedPosts
|
||||
def shared_posts(params = {})
|
||||
posts = self.edge :posts, params
|
||||
posts = self.edge :sharedposts, params
|
||||
posts.collect do |post|
|
||||
Post.new(post[:id], post).authenticate self.access_token
|
||||
end
|
||||
|
|
18
spec/fb_graph2/edge/friend_lists_spec.rb
Normal file
18
spec/fb_graph2/edge/friend_lists_spec.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe FbGraph2::Edge::FriendLists do
|
||||
context 'included in Post' do
|
||||
describe '#friend_lists' do
|
||||
let(:me) { FbGraph2::User.me('token') }
|
||||
it 'should return an Array of FbGraph2::FriendList' do
|
||||
friend_lists = mock_graph :get, 'me/friendlists', 'user/friend_lists', access_token: 'token' do
|
||||
me.friend_lists
|
||||
end
|
||||
friend_lists.should_not be_blank
|
||||
friend_lists.each do |friend_list|
|
||||
friend_list.should be_instance_of FbGraph2::FriendList
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
31
spec/fb_graph2/edge/notifications_spec.rb
Normal file
31
spec/fb_graph2/edge/notifications_spec.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe FbGraph2::Edge::Notifications do
|
||||
context 'included in User' do
|
||||
describe '#notifications' do
|
||||
let(:me) { FbGraph2::User.me('token') }
|
||||
|
||||
it 'should return an Array of FbGraph2::Notification' do
|
||||
notifications = mock_graph :get, 'me/notifications', 'user/notifications', access_token: 'token' do
|
||||
me.notifications
|
||||
end
|
||||
notifications.should_not be_blank
|
||||
notifications.each do |notification|
|
||||
notification.should be_instance_of FbGraph2::Notification
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#notification!' do
|
||||
let(:user) { FbGraph2::User.new('user_id') }
|
||||
|
||||
it 'should return true' do
|
||||
mock_graph :post, 'user_id/notifications', 'success_true', access_token: 'app_token', params: {
|
||||
href: 'href', template: 'template'
|
||||
} do
|
||||
user.authenticate('app_token').notification! href: 'href', template: 'template'
|
||||
end.should be_true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
18
spec/fb_graph2/edge/shared_posts_spec.rb
Normal file
18
spec/fb_graph2/edge/shared_posts_spec.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe FbGraph2::Edge::SharedPosts do
|
||||
context 'included in Post' do
|
||||
describe '#shared_posts' do
|
||||
let(:post) { FbGraph2::Post.new('post_id').authenticate('token') }
|
||||
it 'should return an Array of FbGraph2::Post' do
|
||||
posts = mock_graph :get, 'post_id/sharedposts', 'post/shared_posts', access_token: 'token' do
|
||||
post.shared_posts
|
||||
end
|
||||
posts.should_not be_blank
|
||||
posts.each do |post|
|
||||
post.should be_instance_of FbGraph2::Post
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
50
spec/mock_json/post/shared_posts.json
Normal file
50
spec/mock_json/post/shared_posts.json
Normal file
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"data": [{
|
||||
"id": "689134294485152_695439827187932",
|
||||
"from": {
|
||||
"id": "689134294485152",
|
||||
"name": "Shunya Iriki"
|
||||
},
|
||||
"story": "Shunya Iriki shared a link.",
|
||||
"story_tags": {
|
||||
"0": [{
|
||||
"id": "689134294485152",
|
||||
"name": "Shunya Iriki",
|
||||
"offset": 0,
|
||||
"length": 12,
|
||||
"type": "user"
|
||||
}]
|
||||
},
|
||||
"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCtEdPdezKIoUxo&w=154&h=154&url=http%3A%2F%2Fi.yimg.jp%2Fi%2Fdocs%2Frelease%2Ffbicon.jpg",
|
||||
"link": "http://docs.yahoo.co.jp/docs/info/terms/chapter1.html#cf2nd",
|
||||
"name": "ヤフー株式会社 - サービス利用規約 第1編 基本ガイドライン",
|
||||
"caption": "docs.yahoo.co.jp",
|
||||
"description": "Yahoo! JAPANのサービス利用規約、第1編 基本ガイドラインは当社のサービスをご利用になるすべての方に共通して適用されます。",
|
||||
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif",
|
||||
"actions": [{
|
||||
"name": "Comment",
|
||||
"link": "https://www.facebook.com/100001657627507/posts/695439827187932"
|
||||
}, {
|
||||
"name": "Like",
|
||||
"link": "https://www.facebook.com/100001657627507/posts/695439827187932"
|
||||
}],
|
||||
"privacy": {
|
||||
"value": ""
|
||||
},
|
||||
"type": "link",
|
||||
"status_type": "shared_story",
|
||||
"application": {
|
||||
"name": "Facebook for iPhone",
|
||||
"namespace": "fbiphone",
|
||||
"id": "6628568379"
|
||||
},
|
||||
"created_time": "2014-06-02T12:46:26+0000",
|
||||
"updated_time": "2014-06-02T12:46:26+0000"
|
||||
}],
|
||||
"paging": {
|
||||
"cursors": {
|
||||
"after": "Njk1NDM5ODI3MTg3OTMy",
|
||||
"before": "Njk1NDM5ODI3MTg3OTMy"
|
||||
}
|
||||
}
|
||||
}
|
3
spec/mock_json/success_true.json
Normal file
3
spec/mock_json/success_true.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"success": true
|
||||
}
|
98
spec/mock_json/user/friend_lists.json
Normal file
98
spec/mock_json/user/friend_lists.json
Normal file
|
@ -0,0 +1,98 @@
|
|||
{
|
||||
"data": [{
|
||||
"id": "10152338362087277",
|
||||
"name": "CyberAgent America",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10152338362072277",
|
||||
"name": "Cerego Japan",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10152142419302277",
|
||||
"name": "Capy Inc.",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10151887848997277",
|
||||
"name": "Cerego Japan",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10151870113532277",
|
||||
"name": "Kyoto CtoG.org",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150348660692277",
|
||||
"name": "同志社大学",
|
||||
"list_type": "education"
|
||||
}, {
|
||||
"id": "10150346113542277",
|
||||
"name": "Kawasaki-shi, Kanagawa, Japan Area",
|
||||
"list_type": "current_city"
|
||||
}, {
|
||||
"id": "10150346085662277",
|
||||
"name": "OpenID Foundation",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150346074892277",
|
||||
"name": "OpenID Foundation Japan",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150341935447277",
|
||||
"name": "株式会社ドリコム",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150336745462277",
|
||||
"name": "Kyoto CtoG.org",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150336745457277",
|
||||
"name": "Acquaintances",
|
||||
"list_type": "acquaintances"
|
||||
}, {
|
||||
"id": "10150336744357277",
|
||||
"name": "ドリコム",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150336526382277",
|
||||
"name": "Doshisha University",
|
||||
"list_type": "education"
|
||||
}, {
|
||||
"id": "10150336526227277",
|
||||
"name": "Doshisha High School",
|
||||
"list_type": "education"
|
||||
}, {
|
||||
"id": "10150336526222277",
|
||||
"name": "Cerego Japan",
|
||||
"list_type": "work"
|
||||
}, {
|
||||
"id": "10150336526217277",
|
||||
"name": "Family",
|
||||
"list_type": "family"
|
||||
}, {
|
||||
"id": "10150336526212277",
|
||||
"name": "Close Friends",
|
||||
"list_type": "close_friends"
|
||||
}, {
|
||||
"id": "10150287189437277",
|
||||
"name": "Family",
|
||||
"list_type": "user_created"
|
||||
}, {
|
||||
"id": "494503307276",
|
||||
"name": "OpenStack",
|
||||
"list_type": "user_created"
|
||||
}, {
|
||||
"id": "41968037276",
|
||||
"name": "Doshisha",
|
||||
"list_type": "user_created"
|
||||
}, {
|
||||
"id": "41967672276",
|
||||
"name": "iKnow!",
|
||||
"list_type": "user_created"
|
||||
}, {
|
||||
"id": "41967622276",
|
||||
"name": "Drecom",
|
||||
"list_type": "user_created"
|
||||
}],
|
||||
"paging": {
|
||||
"next": "https://graph.facebook.com/v2.0/579612276/friendlists?limit=5000&offset=5000&__after_id=enc_AeyvnVCKex4_AhqGX7_QdptE11EjyFPx0CGxMGyRHvxS2SbnqjP7fJD8tL2VFjeodZA"
|
||||
}
|
||||
}
|
111
spec/mock_json/user/notifications.json
Normal file
111
spec/mock_json/user/notifications.json
Normal file
|
@ -0,0 +1,111 @@
|
|||
{
|
||||
"data": [{
|
||||
"id": "notif_579612276_360745635",
|
||||
"from": {
|
||||
"id": "10203663293120616",
|
||||
"name": "Tatsuya Kurosaka"
|
||||
},
|
||||
"to": {
|
||||
"id": "579612276",
|
||||
"name": "Nov Matake"
|
||||
},
|
||||
"created_time": "2014-06-03T03:20:28+0000",
|
||||
"updated_time": "2014-06-03T03:54:10+0000",
|
||||
"title": "Tatsuya Kurosaka posted in クロサカさんの仕事部屋.",
|
||||
"link": "http://www.facebook.com/groups/597190250369020/632381620183216/",
|
||||
"application": {
|
||||
"name": "Groups",
|
||||
"id": "2361831622"
|
||||
},
|
||||
"unread": 1,
|
||||
"object": {
|
||||
"name": "クロサカさんの仕事部屋",
|
||||
"id": "597190250369020"
|
||||
}
|
||||
}, {
|
||||
"id": "notif_579612276_360668511",
|
||||
"from": {
|
||||
"id": "824378870925480",
|
||||
"name": "ちゃちゃき まさゆき"
|
||||
},
|
||||
"to": {
|
||||
"id": "579612276",
|
||||
"name": "Nov Matake"
|
||||
},
|
||||
"created_time": "2014-06-02T14:57:39+0000",
|
||||
"updated_time": "2014-06-02T14:57:39+0000",
|
||||
"title": "ちゃちゃき まさゆき posted in DevLOVE Park: \"こんにちは。..\"",
|
||||
"link": "http://www.facebook.com/groups/devlovepark/763062600400231/",
|
||||
"application": {
|
||||
"name": "Groups",
|
||||
"id": "2361831622"
|
||||
},
|
||||
"unread": 1
|
||||
}, {
|
||||
"id": "notif_579612276_360654609",
|
||||
"from": {
|
||||
"id": "689134294485152",
|
||||
"name": "Shunya Iriki"
|
||||
},
|
||||
"to": {
|
||||
"id": "579612276",
|
||||
"name": "Nov Matake"
|
||||
},
|
||||
"created_time": "2014-06-02T12:46:26+0000",
|
||||
"updated_time": "2014-06-02T12:46:26+0000",
|
||||
"title": "Shunya Iriki shared your link.",
|
||||
"link": "http://www.facebook.com/shunya.iriki/posts/695439827187932",
|
||||
"application": {
|
||||
"name": "Links",
|
||||
"id": "2309869772"
|
||||
},
|
||||
"unread": 1,
|
||||
"object": {
|
||||
"id": "689134294485152_695439827187932",
|
||||
"from": {
|
||||
"id": "689134294485152",
|
||||
"name": "Shunya Iriki"
|
||||
},
|
||||
"story": "Shunya Iriki shared a link.",
|
||||
"story_tags": {
|
||||
"0": [{
|
||||
"id": "689134294485152",
|
||||
"name": "Shunya Iriki",
|
||||
"offset": 0,
|
||||
"length": 12,
|
||||
"type": "user"
|
||||
}]
|
||||
},
|
||||
"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCtEdPdezKIoUxo&w=154&h=154&url=http%3A%2F%2Fi.yimg.jp%2Fi%2Fdocs%2Frelease%2Ffbicon.jpg",
|
||||
"link": "http://docs.yahoo.co.jp/docs/info/terms/chapter1.html#cf2nd",
|
||||
"name": "ヤフー株式会社 - サービス利用規約 第1編 基本ガイドライン",
|
||||
"caption": "docs.yahoo.co.jp",
|
||||
"description": "Yahoo! JAPANのサービス利用規約、第1編 基本ガイドラインは当社のサービスをご利用になるすべての方に共通して適用されます。",
|
||||
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif",
|
||||
"actions": [{
|
||||
"name": "Comment",
|
||||
"link": "https://www.facebook.com/100001657627507/posts/695439827187932"
|
||||
}, {
|
||||
"name": "Like",
|
||||
"link": "https://www.facebook.com/100001657627507/posts/695439827187932"
|
||||
}],
|
||||
"privacy": {
|
||||
"value": ""
|
||||
},
|
||||
"type": "link",
|
||||
"status_type": "shared_story",
|
||||
"application": {
|
||||
"name": "Facebook for iPhone",
|
||||
"namespace": "fbiphone",
|
||||
"id": "6628568379"
|
||||
},
|
||||
"created_time": "2014-06-02T12:46:26+0000",
|
||||
"updated_time": "2014-06-02T12:46:26+0000"
|
||||
}
|
||||
}],
|
||||
"paging": {
|
||||
"previous": "https://graph.facebook.com/v2.0/579612276/notifications?limit=5000&since=1401765628&__paging_token=enc_Aeym53-nXWoBenYHHSSltWVXrHRbkZ5EGNZqVaacQApfA_a2VF0iAvQcjVx-jwo_UTLcO4e3kI7LJdGCggqD2OBS",
|
||||
"next": "https://graph.facebook.com/v2.0/579612276/notifications?limit=5000&until=1401236040&__paging_token=enc_AexWonNPHkycgkJiATXUJ_5MzIfU8dVfjvWB0MxLEXkSEAByVh8rT8gqpKb29rj5O2TpyohRzt0iyg-Tcu6U7ImO"
|
||||
},
|
||||
"summary": []
|
||||
}
|
Loading…
Reference in a new issue