mirror-api 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.coveralls.yml +1 -0
- data/.rspec +1 -1
- data/README.md +130 -13
- data/lib/mirror-api.rb +0 -1
- data/lib/mirror-api/client.rb +18 -12
- data/lib/mirror-api/errors.rb +10 -0
- data/lib/mirror-api/oauth.rb +8 -6
- data/lib/mirror-api/request.rb +157 -12
- data/lib/mirror-api/request_data.rb +11 -0
- data/lib/mirror-api/resource.rb +15 -4
- data/lib/mirror-api/response_data.rb +15 -0
- data/lib/mirror-api/version.rb +1 -1
- data/spec/client_spec.rb +16 -465
- data/spec/contacts_spec.rb +218 -0
- data/spec/fixtures/subscriptions_item.json +25 -0
- data/spec/fixtures/subscriptions_list.json +30 -0
- data/spec/fixtures/timeline_item.json +7 -7
- data/spec/fixtures/timeline_list.json +15 -0
- data/spec/locations_spec.rb +68 -0
- data/spec/oauth_spec.rb +17 -0
- data/spec/request_data_spec.rb +38 -0
- data/spec/request_spec.rb +66 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/subscriptions_spec.rb +170 -0
- data/spec/timeline_attachments_spec.rb +141 -0
- data/spec/timeline_spec.rb +239 -0
- metadata +26 -3
- data/lib/mirror-api/base.rb +0 -146
data/spec/spec_helper.rb
CHANGED
@@ -16,4 +16,25 @@ def fixture(file, read=false)
|
|
16
16
|
file = File.new(fixture_path + '/' + file)
|
17
17
|
return File.read(file) if read
|
18
18
|
file
|
19
|
+
end
|
20
|
+
|
21
|
+
def json_post_request_headers(token, body)
|
22
|
+
{
|
23
|
+
'Accept'=>'application/json',
|
24
|
+
'Accept-Encoding'=>'gzip, deflate',
|
25
|
+
'Authorization'=>"Bearer #{token}",
|
26
|
+
'Content-Length'=>body.length.to_s,
|
27
|
+
'Content-Type'=>'application/json',
|
28
|
+
'User-Agent'=>'Ruby'
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
def json_get_request_headers(token)
|
33
|
+
{
|
34
|
+
'Accept'=>'application/json',
|
35
|
+
'Accept-Encoding'=>'gzip, deflate',
|
36
|
+
'Authorization'=>"Bearer #{token}",
|
37
|
+
'Content-Type'=>'application/json',
|
38
|
+
'User-Agent'=>'Ruby'
|
39
|
+
}
|
19
40
|
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
|
3
|
+
describe "Subscriptions" do
|
4
|
+
before do
|
5
|
+
@token = "my-token"
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "delete" do
|
9
|
+
context "with valid params" do
|
10
|
+
before do
|
11
|
+
@id = "timeline"
|
12
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/subscriptions/#{@id}").
|
13
|
+
with(headers: json_get_request_headers(@token)).
|
14
|
+
to_return(status: 200,
|
15
|
+
body: {},
|
16
|
+
headers: {})
|
17
|
+
end
|
18
|
+
it "should return true" do
|
19
|
+
@api = Mirror::Api::Client.new(@token)
|
20
|
+
@api.subscriptions.delete(@id).should be_true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context "with invalid params" do
|
25
|
+
before do
|
26
|
+
@id = "blah"
|
27
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/subscriptions/#{@id}").
|
28
|
+
with(headers: json_get_request_headers(@token)).
|
29
|
+
to_return(status: 400,
|
30
|
+
body: {},
|
31
|
+
headers: {})
|
32
|
+
end
|
33
|
+
|
34
|
+
context "without bubbling errors" do
|
35
|
+
it "should return nil" do
|
36
|
+
@api = Mirror::Api::Client.new(@token)
|
37
|
+
subscription = @api.subscriptions.delete(@id)
|
38
|
+
subscription.should == nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "bubbling errors" do
|
43
|
+
it "should raise ex" do
|
44
|
+
@api = Mirror::Api::Client.new(@token, true)
|
45
|
+
expect{@api.subscriptions.delete(@id)}.to raise_error
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "insert" do
|
53
|
+
|
54
|
+
context "with valid params" do
|
55
|
+
before do
|
56
|
+
@body = {collection: "timeline", userToken:"user_1", operation: ["UPDATE"], callbackUrl: "https://yourawesomewebsite.com/callback"}
|
57
|
+
|
58
|
+
stub_request(:post, "https://www.googleapis.com/mirror/v1/subscriptions/").
|
59
|
+
with(body: @body,
|
60
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
61
|
+
to_return(status: 200,
|
62
|
+
body: fixture("subscriptions_item.json", true),
|
63
|
+
headers: {})
|
64
|
+
end
|
65
|
+
it "should return a subscription with .kind == 'mirror#subscription'" do
|
66
|
+
@api = Mirror::Api::Client.new(@token)
|
67
|
+
subscription = @api.subscriptions.insert(@body)
|
68
|
+
subscription.kind.should == 'mirror#subscription'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "with invalid params" do
|
73
|
+
before do
|
74
|
+
@body2 = {:notCoolDude => "Really you thought that was valid?!"}
|
75
|
+
stub_request(:post, "https://www.googleapis.com/mirror/v1/subscriptions/").
|
76
|
+
with(body: @body2,
|
77
|
+
headers: json_post_request_headers(@token, @body2.to_json)).
|
78
|
+
to_return(status: 404,
|
79
|
+
body: {},
|
80
|
+
headers: {})
|
81
|
+
end
|
82
|
+
it "should return nil" do
|
83
|
+
@api = Mirror::Api::Client.new(@token)
|
84
|
+
subscription = @api.subscriptions.insert({not_cool_dude: "Really you thought that was valid?!"})
|
85
|
+
subscription.should == nil
|
86
|
+
end
|
87
|
+
|
88
|
+
context "bubbling errors" do
|
89
|
+
it "should raise ex" do
|
90
|
+
@api = Mirror::Api::Client.new(@token, {:raise_errors => true})
|
91
|
+
expect{@api.subscriptions.insert(@body)}.to raise_error
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "list" do
|
99
|
+
|
100
|
+
context "with valid params" do
|
101
|
+
before do
|
102
|
+
|
103
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/subscriptions/").
|
104
|
+
with(headers: json_get_request_headers(@token)).
|
105
|
+
to_return(status: 200,
|
106
|
+
body: fixture("subscriptions_list.json", true),
|
107
|
+
headers: {})
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should return a list of subscriptions" do
|
111
|
+
@api = Mirror::Api::Client.new(@token)
|
112
|
+
subscriptions = @api.subscriptions.list
|
113
|
+
subscriptions.should_not be_nil
|
114
|
+
subscriptions.items.count.should == 1 # see fixture
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "update" do
|
121
|
+
|
122
|
+
context "with valid params" do
|
123
|
+
before do
|
124
|
+
@id = 'timeline'
|
125
|
+
@body = {collection: 'timeline', callbackUrl: 'https://fullscreen.net/callback', operation:["INSERT", "UPDATE"]}
|
126
|
+
|
127
|
+
stub_request(:put, "https://www.googleapis.com/mirror/v1/subscriptions/#{@id}").
|
128
|
+
with(body: @body,
|
129
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
130
|
+
to_return(status: 200,
|
131
|
+
body: fixture("subscriptions_item.json", true),
|
132
|
+
headers: {})
|
133
|
+
end
|
134
|
+
it "should return a subscription with .kind == 'mirror#subscription'" do
|
135
|
+
@api = Mirror::Api::Client.new(@token)
|
136
|
+
subscription = @api.subscriptions.update(@id, @body)
|
137
|
+
subscription.kind.should == 'mirror#subscription'
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
context "with invalid params" do
|
142
|
+
before do
|
143
|
+
@id = 'timeline'
|
144
|
+
@body = {derp: 'troll'}
|
145
|
+
|
146
|
+
stub_request(:put, "https://www.googleapis.com/mirror/v1/subscriptions/#{@id}").
|
147
|
+
with(body: @body,
|
148
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
149
|
+
to_return(status: 400,
|
150
|
+
body: {},
|
151
|
+
headers: {})
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should return nil" do
|
155
|
+
@api = Mirror::Api::Client.new(@token)
|
156
|
+
subscription = @api.subscriptions.update(@id, @body)
|
157
|
+
subscription.should == nil
|
158
|
+
end
|
159
|
+
|
160
|
+
context "when bubbling errors" do
|
161
|
+
|
162
|
+
it "should raise an exception" do
|
163
|
+
@api = Mirror::Api::Client.new(@token, {:raise_errors => true})
|
164
|
+
expect{@api.subscriptions.update(@id, @body)}.to raise_error
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
|
3
|
+
describe "Timeline Attachments" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@token = "my-token"
|
7
|
+
@api = Mirror::Api::Client.new(@token)
|
8
|
+
end
|
9
|
+
|
10
|
+
context "delete" do
|
11
|
+
context "with valid params" do
|
12
|
+
before do
|
13
|
+
@timeline_id = "1234"
|
14
|
+
@attachment_id = "123123312"
|
15
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments/#{@attachment_id}").
|
16
|
+
with(headers: json_get_request_headers(@token)).
|
17
|
+
to_return(status: 200,
|
18
|
+
body: "",
|
19
|
+
headers: {})
|
20
|
+
end
|
21
|
+
it "should return true" do
|
22
|
+
@api.timeline.delete(@timeline_id, {attachments:{id: @attachment_id}}).should be_true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "with invalid params" do
|
27
|
+
before do
|
28
|
+
@timeline_id = "1234"
|
29
|
+
@attachment_id = "blah"
|
30
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments/#{@attachment_id}").
|
31
|
+
with(headers: json_get_request_headers(@token)).
|
32
|
+
to_return(status: 400,
|
33
|
+
body: "",
|
34
|
+
headers: {})
|
35
|
+
end
|
36
|
+
it "should return nil" do
|
37
|
+
timeline_attachment = @api.timeline.delete(@timeline_id, {attachments:{id: @attachment_id}})
|
38
|
+
timeline_attachment.should == nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "get" do
|
44
|
+
context "with valid params" do
|
45
|
+
before do
|
46
|
+
@timeline_id = "1234"
|
47
|
+
@attachment_id = "123123312"
|
48
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments/#{@attachment_id}").
|
49
|
+
with(headers: json_get_request_headers(@token)).
|
50
|
+
to_return(status: 200,
|
51
|
+
body: fixture("timeline_item_attachments_item.json", true),
|
52
|
+
headers: {})
|
53
|
+
end
|
54
|
+
it "should return timeline_attachment with id '1234'" do
|
55
|
+
timeline_attachment = @api.timeline.get(@timeline_id, {attachments:{id: @attachment_id}})
|
56
|
+
timeline_attachment.id == '1234'
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should return isProcessingContent with boolean false" do
|
60
|
+
timeline_attachment = @api.timeline.get(@timeline_id, {attachments:{id: @attachment_id}})
|
61
|
+
timeline_attachment.is_processing_content == false
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "with invalid params" do
|
66
|
+
before do
|
67
|
+
@timeline_id = "1234"
|
68
|
+
@attachment_id = "blah"
|
69
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments/#{@attachment_id}").
|
70
|
+
with(headers: json_get_request_headers(@token)).
|
71
|
+
to_return(status: 404,
|
72
|
+
body: "",
|
73
|
+
headers: {})
|
74
|
+
end
|
75
|
+
it "should return nil" do
|
76
|
+
timeline_attachment = @api.timeline.get(@timeline_id, {attachments:{id: @attachment_id}})
|
77
|
+
timeline_attachment.should == nil
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
#TODO: Support file upload
|
83
|
+
# context "insert" do
|
84
|
+
# context "with valid params" do
|
85
|
+
# before do
|
86
|
+
# @timeline_id = "1234"
|
87
|
+
# @file = fixture_file_upload('files/fry.png', 'image/png')
|
88
|
+
# @params = {uploadType: 'media'}
|
89
|
+
|
90
|
+
# stub_request(:post, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments?uploadType=media").
|
91
|
+
# with(
|
92
|
+
# headers: json_post_request_headers(@token, @body.to_json)).
|
93
|
+
# to_return(status: 200,
|
94
|
+
# body: fixture("timeline_item_attachments_item.json", true),
|
95
|
+
# headers: {})
|
96
|
+
# end
|
97
|
+
# it "should return timeline_attachment with id '1234'" do
|
98
|
+
# timeline_attachment = @api.timeline.delete(@timeline_id, {attachments:{id: @attachment_id}})
|
99
|
+
# timeline_attachment.id == '1234ß'
|
100
|
+
# end
|
101
|
+
# end
|
102
|
+
|
103
|
+
# context "with invalid params" do
|
104
|
+
# before do
|
105
|
+
# @body = {canIHazContact: "Really you thought that was valid?!"}
|
106
|
+
|
107
|
+
# stub_request(:post, "https://www.googleapis.com/mirror/v1/contacts/").
|
108
|
+
# with(body: @body,
|
109
|
+
# headers: json_post_request_headers(@token, @body.to_json)).
|
110
|
+
# to_return(status: 404,
|
111
|
+
# body: "",
|
112
|
+
# headers: {})
|
113
|
+
# end
|
114
|
+
# it "should return nil" do
|
115
|
+
# contact = @api.contacts.insert(@body)
|
116
|
+
# contact.should == nil
|
117
|
+
# end
|
118
|
+
# end
|
119
|
+
# end
|
120
|
+
|
121
|
+
# TODO correct resource#list method to handle attachments
|
122
|
+
context "list" do
|
123
|
+
context "with valid params" do
|
124
|
+
before do
|
125
|
+
@timeline_id = "1234"
|
126
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/#{@timeline_id}/attachments/").
|
127
|
+
with(headers: json_get_request_headers(@token)).
|
128
|
+
to_return(status: 200,
|
129
|
+
body: fixture("timeline_item_attachments_list.json", true),
|
130
|
+
headers: {})
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should return a list of contacts", :focus => true do
|
134
|
+
attachments = @api.timeline.list(@timeline_id, {attachments: {} })
|
135
|
+
attachments.should_not be_nil
|
136
|
+
attachments.items.count.should == 2 # see fixture
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
end
|
@@ -0,0 +1,239 @@
|
|
1
|
+
require_relative "spec_helper"
|
2
|
+
|
3
|
+
describe "Timeline" do
|
4
|
+
before do
|
5
|
+
@token = "my-token"
|
6
|
+
@api = Mirror::Api::Client.new(@token)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "create" do
|
10
|
+
describe "inserting" do
|
11
|
+
|
12
|
+
context "with valid params" do
|
13
|
+
before do
|
14
|
+
@msg = "Hello world"
|
15
|
+
@body = {text: @msg}
|
16
|
+
|
17
|
+
stub_request(:post, "https://www.googleapis.com/mirror/v1/timeline/").
|
18
|
+
with(body: @body,
|
19
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
20
|
+
to_return(status: 200,
|
21
|
+
body: fixture("timeline_item.json", true),
|
22
|
+
headers: JSON.parse(fixture("timeline_item_response_headers.json", true)))
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should insert plain text items" do
|
26
|
+
item = @api.timeline.create({text: @msg})
|
27
|
+
item.should_not be_nil
|
28
|
+
item.created.should == "2012-09-25T23:28:43.192Z" # see fixture
|
29
|
+
item.text.should == @msg
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should insert plain text items passing request data" do
|
33
|
+
data = Mirror::Api::RequestData.new({text: @msg})
|
34
|
+
item = @api.timeline.create(data)
|
35
|
+
item.should_not be_nil
|
36
|
+
item.created.should == "2012-09-25T23:28:43.192Z" # see fixture
|
37
|
+
item.text.should == @msg
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "with invalid params" do
|
42
|
+
before do
|
43
|
+
@msg = "123"
|
44
|
+
@body = {random: @msg}
|
45
|
+
stub_request(:post, "https://www.googleapis.com/mirror/v1/timeline/").
|
46
|
+
with(body: @body,
|
47
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
48
|
+
to_return(status: 400, body: "",
|
49
|
+
headers: {})
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should not insert the item" do
|
53
|
+
|
54
|
+
item = @api.timeline.create(@body)
|
55
|
+
item.should be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "delete" do
|
64
|
+
context "with valid params" do
|
65
|
+
before do
|
66
|
+
@id = "123123312"
|
67
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
68
|
+
with(headers: json_get_request_headers(@token)).
|
69
|
+
to_return(status: 200,
|
70
|
+
body: "",
|
71
|
+
headers: {})
|
72
|
+
end
|
73
|
+
it "should return true" do
|
74
|
+
@api.timeline.delete(@id).should be_true
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
context "with invalid params" do
|
79
|
+
before do
|
80
|
+
@id = "blah"
|
81
|
+
stub_request(:delete, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
82
|
+
with(headers: json_get_request_headers(@token)).
|
83
|
+
to_return(status: 400,
|
84
|
+
body: "",
|
85
|
+
headers: {})
|
86
|
+
end
|
87
|
+
it "should return nil" do
|
88
|
+
@api.timeline.delete(@id).should == nil
|
89
|
+
end
|
90
|
+
|
91
|
+
it "log the error" do
|
92
|
+
logger = Logger.new(STDOUT)
|
93
|
+
@api.timeline.options[:logger] = logger
|
94
|
+
logger.should_receive(:warn)
|
95
|
+
@api.timeline.delete(@id).should == nil
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "get" do
|
102
|
+
|
103
|
+
context "with valid params" do
|
104
|
+
before do
|
105
|
+
@id = "0987"
|
106
|
+
|
107
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
108
|
+
with(headers: json_get_request_headers(@token)).
|
109
|
+
to_return(status: 200,
|
110
|
+
body: fixture("timeline_item.json", true),
|
111
|
+
headers: {})
|
112
|
+
end
|
113
|
+
it "should return a timeline with .kind == 'mirror#timelineItem'" do
|
114
|
+
timeline_item = @api.timeline.get(@id)
|
115
|
+
timeline_item.kind.should == 'mirror#timelineItem'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context "with invalid params" do
|
120
|
+
before do
|
121
|
+
@id = "bad_id"
|
122
|
+
|
123
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
124
|
+
with(headers: json_get_request_headers(@token)).
|
125
|
+
to_return(status: 404,
|
126
|
+
body: fixture("timeline_item.json", true),
|
127
|
+
headers: {})
|
128
|
+
end
|
129
|
+
it "should return nil" do
|
130
|
+
timeline_item = @api.timeline.get(@id)
|
131
|
+
timeline_item.should == nil
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "list" do
|
138
|
+
|
139
|
+
context "with valid params" do
|
140
|
+
before do
|
141
|
+
|
142
|
+
stub_request(:get, "https://www.googleapis.com/mirror/v1/timeline/").
|
143
|
+
with(headers: json_get_request_headers(@token)).
|
144
|
+
to_return(status: 200,
|
145
|
+
body: fixture("timeline_list.json", true),
|
146
|
+
headers: {})
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should return a list of timelines" do
|
150
|
+
timeline = @api.timeline.list()
|
151
|
+
timeline.should_not be_nil
|
152
|
+
timeline.items.count.should == 1 # see fixture
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
describe "patch" do
|
159
|
+
|
160
|
+
context "with valid params" do
|
161
|
+
before do
|
162
|
+
@id = '1234'
|
163
|
+
@body = {text: "You realize you are a bad friend right?", menu_items:[{action: "REPLY"}]}
|
164
|
+
@body2 = {text: "You realize you are a bad friend right?", menuItems:[{action: "REPLY"}]}
|
165
|
+
|
166
|
+
stub_request(:patch, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
167
|
+
with(body: @body2,
|
168
|
+
headers: json_post_request_headers(@token, @body2.to_json)).
|
169
|
+
to_return(status: 200,
|
170
|
+
body: fixture("timeline_item.json", true),
|
171
|
+
headers: {})
|
172
|
+
end
|
173
|
+
it "should return a timeline item with .kind == 'mirror#timelineItem'" do
|
174
|
+
timeline = @api.timeline.patch(@id, @body)
|
175
|
+
timeline.kind.should == 'mirror#timelineItem'
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
context "with invalid params" do
|
180
|
+
before do
|
181
|
+
@id = '1234'
|
182
|
+
@body = {derp: 'troll'}
|
183
|
+
|
184
|
+
stub_request(:patch, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
185
|
+
with(body: @body,
|
186
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
187
|
+
to_return(status: 400,
|
188
|
+
body: "",
|
189
|
+
headers: {})
|
190
|
+
end
|
191
|
+
it "should return nil" do
|
192
|
+
timeline = @api.timeline.patch(@id, @body)
|
193
|
+
timeline.should == nil
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
|
199
|
+
describe "update" do
|
200
|
+
|
201
|
+
context "with valid params" do
|
202
|
+
before do
|
203
|
+
@id = '1234'
|
204
|
+
@body = {displayName: 'Demo App'}
|
205
|
+
|
206
|
+
stub_request(:put, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
207
|
+
with(body: @body,
|
208
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
209
|
+
to_return(status: 200,
|
210
|
+
body: fixture("timeline_item.json", true),
|
211
|
+
headers: {})
|
212
|
+
end
|
213
|
+
it "should return a timeline item with .kind == 'mirror#timelineItem'" do
|
214
|
+
timeline = @api.timeline.update(@id, @body)
|
215
|
+
timeline.kind.should == 'mirror#timelineItem'
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context "with invalid params" do
|
220
|
+
before do
|
221
|
+
@id = '1234'
|
222
|
+
@body = {derp: 'troll'}
|
223
|
+
|
224
|
+
stub_request(:put, "https://www.googleapis.com/mirror/v1/timeline/#{@id}").
|
225
|
+
with(body: @body,
|
226
|
+
headers: json_post_request_headers(@token, @body.to_json)).
|
227
|
+
to_return(status: 400,
|
228
|
+
body: "",
|
229
|
+
headers: {})
|
230
|
+
end
|
231
|
+
it "should return nil" do
|
232
|
+
timeline = @api.timeline.update(@id, @body)
|
233
|
+
timeline.should == nil
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
end
|
238
|
+
|
239
|
+
end
|