chute 0.0.2 → 2.0.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/Gemfile +16 -2
- data/Gemfile.lock +52 -0
- data/LICENSE.txt +20 -0
- data/README.md +46 -0
- data/Rakefile +48 -6
- data/VERSION +1 -0
- data/chute.gemspec +120 -16
- data/lib/chute.rb +7 -20
- data/lib/chute/client.rb +42 -0
- data/lib/chute/configuration.rb +40 -0
- data/lib/chute/connection.rb +64 -0
- data/lib/chute/response.rb +22 -0
- data/lib/chute/v2/albums.rb +60 -0
- data/lib/chute/v2/assets.rb +55 -0
- data/lib/chute/v2/comments.rb +29 -0
- data/lib/chute/v2/flags.rb +21 -0
- data/lib/chute/v2/hearts.rb +21 -0
- data/lib/chute/v2/parcels.rb +21 -0
- data/lib/chute/v2/tags.rb +36 -0
- data/lib/chute/v2/triggers.rb +26 -0
- data/lib/chute/v2/users.rb +18 -0
- data/lib/chute/v2/votes.rb +21 -0
- data/lib/chute/version.rb +7 -1
- data/spec/chute/chute_spec.rb +64 -0
- data/spec/chute/client_spec.rb +82 -0
- data/spec/chute/connection_spec.rb +47 -0
- data/spec/chute/response_spec.rb +16 -0
- data/spec/chute/v2/albums_spec.rb +197 -0
- data/spec/chute/v2/assets_spec.rb +171 -0
- data/spec/chute/v2/comments_spec.rb +88 -0
- data/spec/chute/v2/flags_spec.rb +56 -0
- data/spec/chute/v2/hearts_spec.rb +57 -0
- data/spec/chute/v2/parcels_spec.rb +24 -0
- data/spec/chute/v2/tags_spec.rb +79 -0
- data/spec/chute/v2/trigger_spec.rb +127 -0
- data/spec/chute/v2/users_spec.rb +53 -0
- data/spec/chute/v2/votes_spec.rb +56 -0
- data/spec/fixtures/chute_cassettes/albums/album_create_with_permission_view.yml +69 -0
- data/spec/fixtures/chute_cassettes/albums/albums_add_remove_assets.yml +187 -0
- data/spec/fixtures/chute_cassettes/albums/albums_create.yml +69 -0
- data/spec/fixtures/chute_cassettes/albums/albums_delete.yml +128 -0
- data/spec/fixtures/chute_cassettes/albums/albums_get.yml +135 -0
- data/spec/fixtures/chute_cassettes/albums/albums_list.yml +89 -0
- data/spec/fixtures/chute_cassettes/albums/albums_stats.yml +128 -0
- data/spec/fixtures/chute_cassettes/albums/albums_update.yml +135 -0
- data/spec/fixtures/chute_cassettes/assets/assets_delete.yml +131 -0
- data/spec/fixtures/chute_cassettes/assets/assets_geo.yml +197 -0
- data/spec/fixtures/chute_cassettes/assets/assets_get.yml +138 -0
- data/spec/fixtures/chute_cassettes/assets/assets_import.yml +76 -0
- data/spec/fixtures/chute_cassettes/assets/assets_list.yml +77 -0
- data/spec/fixtures/chute_cassettes/assets/assets_update.yml +138 -0
- data/spec/fixtures/chute_cassettes/comments/comments_create.yml +196 -0
- data/spec/fixtures/chute_cassettes/comments/comments_list.yml +259 -0
- data/spec/fixtures/chute_cassettes/flags/flags_methods.yml +313 -0
- data/spec/fixtures/chute_cassettes/hearts/hearts_methods.yml +254 -0
- data/spec/fixtures/chute_cassettes/tags/tags_assets.yml +311 -0
- data/spec/fixtures/chute_cassettes/triggers/trigger_errors.yml +62 -0
- data/spec/fixtures/chute_cassettes/triggers/triggers_cleanup.yml +184 -0
- data/spec/fixtures/chute_cassettes/triggers/triggers_create.yml +65 -0
- data/spec/fixtures/chute_cassettes/triggers/triggers_delete.yml +124 -0
- data/spec/fixtures/chute_cassettes/triggers/triggers_list.yml +66 -0
- data/spec/fixtures/chute_cassettes/triggers/triggers_update.yml +127 -0
- data/spec/fixtures/chute_cassettes/users/users_get.yml +128 -0
- data/spec/fixtures/chute_cassettes/users/users_me.yml +66 -0
- data/spec/fixtures/chute_cassettes/votes/votes_methods.yml +313 -0
- data/spec/spec_helper.rb +27 -0
- metadata +210 -33
- data/.gitignore +0 -5
- data/README +0 -125
- data/config/chute.rb +0 -0
- data/lib/chute/account.rb +0 -58
- data/lib/chute/app.rb +0 -32
- data/lib/chute/asset.rb +0 -124
- data/lib/chute/bundle.rb +0 -72
- data/lib/chute/chute.rb +0 -203
- data/lib/chute/collection.rb +0 -47
- data/lib/chute/comment.rb +0 -32
- data/lib/chute/exception.rb +0 -7
- data/lib/chute/http_service.rb +0 -114
- data/lib/chute/inbox.rb +0 -41
- data/lib/chute/parcel.rb +0 -45
- data/lib/chute/resource.rb +0 -354
- data/lib/chute/user.rb +0 -113
- data/lib/chute/util.rb +0 -14
- data/test/test_sudoku.rb +0 -7
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chute::Client do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@keys = Chute::Configuration::VALID_CONFIG_KEYS
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'with module configuration' do
|
10
|
+
before do
|
11
|
+
Chute.configure do |config|
|
12
|
+
@keys.each do |key|
|
13
|
+
config.send("#{key}=", key)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
after do
|
19
|
+
Chute.reset
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should inherit module configuration" do
|
23
|
+
api = Chute::Client.new
|
24
|
+
@keys.each do |key|
|
25
|
+
api.send(key).should == key
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'with class configuration' do
|
30
|
+
before do
|
31
|
+
@config = {
|
32
|
+
:api_endpoint => 'api',
|
33
|
+
:auth_endpoint => 'auth',
|
34
|
+
:app_id => 'id',
|
35
|
+
:app_secret => 'secret',
|
36
|
+
:access_token => 'token',
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should override module configuration' do
|
41
|
+
api = Chute::Client.new(@config)
|
42
|
+
@keys.each do |key|
|
43
|
+
api.send(key).should == @config[key]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should override module configuration after' do
|
48
|
+
api = Chute::Client.new
|
49
|
+
|
50
|
+
@config.each do |key, value|
|
51
|
+
api.send("#{key}=", value)
|
52
|
+
end
|
53
|
+
|
54
|
+
@keys.each do |key|
|
55
|
+
api.send("#{key}").should == @config[key]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#as' do
|
64
|
+
it 'should set the token for the duration of the block' do
|
65
|
+
Chute.as 'abc' do
|
66
|
+
Chute.access_token.should == 'abc'
|
67
|
+
end
|
68
|
+
Chute.access_token.should_not == 'abc'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "client request methods" do
|
73
|
+
|
74
|
+
[:get, :post, :put, :delete].each do |req_type|
|
75
|
+
it "should have #{req_type} method defined" do
|
76
|
+
Chute::Client.should respond_to req_type
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chute::Connection do
|
4
|
+
describe "methods" do
|
5
|
+
it "must include httparty methods" do
|
6
|
+
Chute::Connection.should include HTTParty
|
7
|
+
end
|
8
|
+
it "must have the base url set to the Chute API endpoint" do
|
9
|
+
Chute::Connection.base_uri.should == Chute.api_endpoint
|
10
|
+
end
|
11
|
+
|
12
|
+
describe ".request" do
|
13
|
+
it { Chute::Connection.should respond_to(:request).with(2).arguments }
|
14
|
+
it { Chute::Connection.should respond_to(:request).with(3).arguments }
|
15
|
+
it { Chute::Connection.should_not respond_to(:request).with(0).arguments}
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "headers" do
|
21
|
+
|
22
|
+
it "must have the Authorization header" do
|
23
|
+
Chute::Connection.headers.has_key?("Authorization").should == true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "must have Authorization set to Access Token value" do
|
27
|
+
Chute::Connection.headers["Authorization"].should == "OAuth #{Chute.access_token}"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "must have the Content-Type header" do
|
31
|
+
Chute::Connection.headers.has_key?("Content-Type").should == true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "must have the Accepts header" do
|
35
|
+
Chute::Connection.headers.has_key?("Accepts").should == true
|
36
|
+
end
|
37
|
+
|
38
|
+
["Content-Type", "Accepts"].each do |key|
|
39
|
+
it "must have header #{key} set to application/json" do
|
40
|
+
Chute::Connection.headers[key].should == "application/json"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chute::Response do
|
4
|
+
|
5
|
+
it { Chute::Response.should respond_to(:with_code_and_error).with(2).arguments }
|
6
|
+
it { Chute::Response.new.should respond_to(:success?).with(0).arguments }
|
7
|
+
it { Chute::Response.new.should respond_to(:pretty_print).with(0).arguments }
|
8
|
+
|
9
|
+
context '#with_code_and_error' do
|
10
|
+
it 'should work' do
|
11
|
+
obj = Chute::Response.with_code_and_error(500, 'broke')
|
12
|
+
obj.inspect
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,197 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chute::V2::Albums do
|
4
|
+
include_context "init credentials"
|
5
|
+
|
6
|
+
|
7
|
+
describe "methods" do
|
8
|
+
|
9
|
+
describe ".all" do
|
10
|
+
it { Chute::V2::Albums.should respond_to(:all).with(0).arguments }
|
11
|
+
it { Chute::V2::Albums.should respond_to(:all).with(1).arguments }
|
12
|
+
it { Chute::V2::Albums.should respond_to(:all).with(2).arguments }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe ".find" do
|
16
|
+
it { Chute::V2::Albums.should respond_to(:find).with(1).arguments }
|
17
|
+
it { Chute::V2::Albums.should_not respond_to(:find).with(0).arguments }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe ".geo_locate" do
|
21
|
+
it { Chute::V2::Albums.should respond_to(:geo_locate).with(4).arguments }
|
22
|
+
it { Chute::V2::Albums.should_not respond_to(:geo_locate).with(5).arguments }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe ".assets" do
|
26
|
+
it { Chute::V2::Albums.should respond_to(:assets).with(3).arguments }
|
27
|
+
it { Chute::V2::Albums.should_not respond_to(:assets).with(4).arguments }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe ".import" do
|
31
|
+
it { Chute::V2::Albums.should respond_to(:import).with(2).arguments }
|
32
|
+
it { Chute::V2::Albums.should_not respond_to(:import).with(0).arguments }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".create" do
|
36
|
+
it { Chute::V2::Albums.should respond_to(:create).with(1).arguments }
|
37
|
+
it { Chute::V2::Albums.should_not respond_to(:create).with(2).arguments }
|
38
|
+
end
|
39
|
+
|
40
|
+
describe ".update" do
|
41
|
+
it { Chute::V2::Albums.should respond_to(:update).with(2).arguments }
|
42
|
+
it { Chute::V2::Albums.should_not respond_to(:update).with(0).arguments }
|
43
|
+
end
|
44
|
+
|
45
|
+
describe ".delete" do
|
46
|
+
it { Chute::V2::Albums.should respond_to(:delete).with(1).arguments }
|
47
|
+
it { Chute::V2::Albums.should_not respond_to(:delete).with(2).arguments }
|
48
|
+
end
|
49
|
+
|
50
|
+
describe ".stats" do
|
51
|
+
it { Chute::V2::Albums.should respond_to(:stats).with(1).arguments }
|
52
|
+
it { Chute::V2::Albums.should_not respond_to(:stats).with(0).arguments }
|
53
|
+
end
|
54
|
+
|
55
|
+
describe ".add_assets" do
|
56
|
+
it { Chute::V2::Albums.should respond_to(:add_assets).with(2).arguments }
|
57
|
+
it { Chute::V2::Albums.should_not respond_to(:add_assets).with(0).arguments }
|
58
|
+
end
|
59
|
+
describe ".remove_assets" do
|
60
|
+
it { Chute::V2::Albums.should respond_to(:remove_assets).with(2).arguments }
|
61
|
+
it { Chute::V2::Albums.should_not respond_to(:remove_assets).with(0).arguments }
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "requests" do
|
67
|
+
describe "GET Album List" do
|
68
|
+
before do
|
69
|
+
VCR.insert_cassette 'albums/albums_list', :record => :new_episodes
|
70
|
+
end
|
71
|
+
after do
|
72
|
+
VCR.eject_cassette
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should be able to list all albums" do
|
76
|
+
response = Chute::V2::Albums.all
|
77
|
+
response.data.should_not == nil
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should contain pagination" do
|
82
|
+
response = Chute::V2::Albums.all
|
83
|
+
response.pagination.should_not ==nil
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "POST Album Create" do
|
89
|
+
it "should be able to create an album" do
|
90
|
+
VCR.insert_cassette 'albums/albums_create', :record => :new_episodes
|
91
|
+
album = Hash.new
|
92
|
+
album[:name] = "some album #{Time.now.to_s}"
|
93
|
+
album[:moderate_comments] = true
|
94
|
+
response = Chute::V2::Albums.create(album)
|
95
|
+
VCR.eject_cassette
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should respect permission_view' do
|
99
|
+
VCR.insert_cassette 'albums/album_create_with_permission_view', :record => :new_episodes
|
100
|
+
album = Hash.new
|
101
|
+
album[:name] = "some new album #{Time.now.to_s}"
|
102
|
+
album[:permission_view] = 2
|
103
|
+
response = Chute::V2::Albums.create(album)
|
104
|
+
VCR.eject_cassette
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe "GET Album by ID" do
|
109
|
+
before do
|
110
|
+
VCR.insert_cassette 'albums/albums_get', :record => :new_episodes
|
111
|
+
end
|
112
|
+
after do
|
113
|
+
VCR.eject_cassette
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should retrieve album by its id" do
|
117
|
+
id = Chute::V2::Albums.create({:name => "Created Album"}).data.id
|
118
|
+
response = Chute::V2::Albums.find(id)
|
119
|
+
response.data.id.should == id
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "PUT Album Update" do
|
124
|
+
|
125
|
+
before do
|
126
|
+
VCR.insert_cassette 'albums/albums_update', :record => :new_episodes
|
127
|
+
end
|
128
|
+
after do
|
129
|
+
VCR.eject_cassette
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should be able to update an album" do
|
133
|
+
response = Chute::V2::Albums.create({:name => "Created Album"})
|
134
|
+
name = "Updated Album"
|
135
|
+
response = Chute::V2::Albums.update(response.data.id, {:name => name})
|
136
|
+
response.data.name.should == name
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
describe "DELETE Album" do
|
141
|
+
|
142
|
+
before do
|
143
|
+
VCR.insert_cassette 'albums/albums_delete', :record => :new_episodes
|
144
|
+
end
|
145
|
+
after do
|
146
|
+
VCR.eject_cassette
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should be able to delete an album" do
|
150
|
+
response = Chute::V2::Albums.create({:name => "Created Album"})
|
151
|
+
response = Chute::V2::Albums.delete(response.data.id)
|
152
|
+
response.success?.should == true
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "GET Album Stats" do
|
157
|
+
before do
|
158
|
+
VCR.insert_cassette 'albums/albums_stats', :record => :new_episodes
|
159
|
+
end
|
160
|
+
after do
|
161
|
+
VCR.eject_cassette
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should retrieve stats" do
|
165
|
+
response = Chute::V2::Albums.create({:name => "Created Album"})
|
166
|
+
response = Chute::V2::Albums.stats(response.data.id)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe "POST add and remove Assets" do
|
171
|
+
|
172
|
+
let(:id) { Chute::V2::Albums.create({:name => "Created Album"}).data.id }
|
173
|
+
let(:asset_ids) { [4342325, 4342324, 534543] } # Non Existing assets (random)
|
174
|
+
|
175
|
+
before do
|
176
|
+
VCR.insert_cassette 'albums/albums_add_remove_assets', :record => :new_episodes
|
177
|
+
end
|
178
|
+
after do
|
179
|
+
VCR.eject_cassette
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should be able to add existing assets to existing album" do
|
183
|
+
response = Chute::V2::Albums.add_assets(id, [71907823])
|
184
|
+
response.should be_true
|
185
|
+
end
|
186
|
+
|
187
|
+
|
188
|
+
it "should be able to remove existing assets from existing album" do
|
189
|
+
response = Chute::V2::Albums.remove_assets(id, asset_ids)
|
190
|
+
response.should be_true
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
describe Chute::V2::Assets do
|
5
|
+
include_context "init credentials"
|
6
|
+
|
7
|
+
describe "methods" do
|
8
|
+
|
9
|
+
describe ".all" do
|
10
|
+
it { Chute::V2::Assets.should respond_to(:all).with(1).arguments }
|
11
|
+
it { Chute::V2::Assets.should_not respond_to(:all).with(0).arguments }
|
12
|
+
end
|
13
|
+
|
14
|
+
describe ".find" do
|
15
|
+
it { Chute::V2::Assets.should respond_to(:find).with(1).arguments }
|
16
|
+
it { Chute::V2::Assets.should_not respond_to(:find).with(0).arguments }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe ".geo_locate" do
|
20
|
+
it { Chute::V2::Assets.should respond_to(:geo_locate).with(3).arguments }
|
21
|
+
it { Chute::V2::Assets.should_not respond_to(:geo_locate).with(4).arguments }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe ".exif" do
|
25
|
+
it { Chute::V2::Assets.should respond_to(:exif).with(1).arguments }
|
26
|
+
it { Chute::V2::Assets.should_not respond_to(:exif).with(2).arguments }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe ".geo" do
|
30
|
+
it { Chute::V2::Assets.should respond_to(:geo).with(1).arguments }
|
31
|
+
it { Chute::V2::Assets.should_not respond_to(:geo).with(2).arguments }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe ".upload" do
|
35
|
+
pending "Not implemented yet"
|
36
|
+
it { Chute::V2::Assets.should respond_to(:upload).with(1).arguments }
|
37
|
+
it { Chute::V2::Assets.should_not respond_to(:upload).with(2).arguments }
|
38
|
+
end
|
39
|
+
|
40
|
+
describe ".update" do
|
41
|
+
it { Chute::V2::Assets.should respond_to(:update).with(2).arguments }
|
42
|
+
it { Chute::V2::Assets.should respond_to(:update).with(3).arguments }
|
43
|
+
it { Chute::V2::Assets.should_not respond_to(:update).with(0).arguments }
|
44
|
+
end
|
45
|
+
|
46
|
+
describe ".delete" do
|
47
|
+
it { Chute::V2::Assets.should respond_to(:delete).with(1).arguments }
|
48
|
+
it { Chute::V2::Assets.should_not respond_to(:delete).with(2).arguments }
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "requests" do
|
54
|
+
|
55
|
+
before do
|
56
|
+
@asset_urls = ['http://www.wix.com/blog/wp-content/uploads/2012/08/HowToGoBeyondStockPhotoCliches.jpg',
|
57
|
+
'http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2012/11/27/1354010019306/Brad-Pitt-010.jpg',
|
58
|
+
'http://datastore01.rediff.com/h1500-w1500/thumb/52605E5F6D6C65665C60665C696C7371/fuugfaw7icy0hq4j.D.0.Richa-Gangopadhyay-Latest-Hot-Photo.jpg'
|
59
|
+
]
|
60
|
+
end
|
61
|
+
let(:list_assets) { Chute::V2::Assets.all(2327121) } # Test album id
|
62
|
+
|
63
|
+
describe "GET Assets List" do
|
64
|
+
before do
|
65
|
+
VCR.insert_cassette 'assets/assets_list', :record => :new_episodes
|
66
|
+
end
|
67
|
+
after do
|
68
|
+
VCR.eject_cassette
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
it "should be able to list all assets in an album" do
|
74
|
+
response = list_assets
|
75
|
+
response.data.should_not == nil
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "POST Asset Import" do
|
80
|
+
|
81
|
+
before do
|
82
|
+
VCR.insert_cassette 'assets/assets_import', :record => :new_episodes
|
83
|
+
end
|
84
|
+
after do
|
85
|
+
VCR.eject_cassette
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should be able to import assets from urls" do
|
89
|
+
response = Chute::V2::Assets.import(@asset_urls,nil)
|
90
|
+
response.data.map { |a| @asset_urls.include?(a.source.source_url).should==true }
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "GET Asset by ID" do
|
96
|
+
before do
|
97
|
+
VCR.insert_cassette 'assets/assets_get', :record => :new_episodes
|
98
|
+
end
|
99
|
+
after do
|
100
|
+
VCR.eject_cassette
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should retrieve asset by its id" do
|
104
|
+
response = Chute::V2::Assets.import(@asset_urls[0],nil)
|
105
|
+
id = response.data[0].id
|
106
|
+
response = Chute::V2::Assets.find(id)
|
107
|
+
response.data.id.should == id
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "PUT Asset Update" do
|
112
|
+
|
113
|
+
before do
|
114
|
+
VCR.insert_cassette 'assets/assets_update', :record => :new_episodes
|
115
|
+
end
|
116
|
+
after do
|
117
|
+
VCR.eject_cassette
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should be able to update an assets title" do
|
121
|
+
response = Chute::V2::Assets.import(@asset_urls[0],nil)
|
122
|
+
caption = "New Asset Title"
|
123
|
+
response = Chute::V2::Assets.update(response.data[0].id, :caption => caption)
|
124
|
+
response.data.caption.should == caption
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe "DELETE Asset" do
|
129
|
+
|
130
|
+
before do
|
131
|
+
@asset_url = 'http://image.coloring.com/pictures/overlay/cat-and-fancy-mouse.gif'
|
132
|
+
VCR.insert_cassette 'assets/assets_delete', :record => :new_episodes
|
133
|
+
end
|
134
|
+
after do
|
135
|
+
VCR.eject_cassette
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should be able to delete an asset" do
|
139
|
+
response = Chute::V2::Assets.import(@asset_url,nil)
|
140
|
+
response = Chute::V2::Assets.delete(response.data[0].id)
|
141
|
+
response.success?.should == true
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
describe "GET geo for asset" do
|
146
|
+
|
147
|
+
let(:import_assets) { Chute::V2::Assets.import(@asset_urls,nil) }
|
148
|
+
|
149
|
+
before do
|
150
|
+
VCR.insert_cassette 'assets/assets_geo', :record => :new_episodes
|
151
|
+
end
|
152
|
+
after do
|
153
|
+
VCR.eject_cassette
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should fetch geo info for asset" do
|
157
|
+
response = import_assets
|
158
|
+
response = Chute::V2::Assets.geo(response.data[0].id)
|
159
|
+
response.data.should_not == nil
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should be able to find near location with radius" do
|
163
|
+
response = import_assets
|
164
|
+
response = Chute::V2::Assets.geo_locate("-36.88155833","174.70791111", 500)
|
165
|
+
response.data.should_not == nil
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
end
|