helix 0.0.2.7.pre → 0.0.2.8.pre

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.
@@ -5,7 +5,8 @@ describe Helix::Image do
5
5
  let(:klass) { Helix::Image }
6
6
 
7
7
  subject { klass }
8
- its(:ancestors) { should include(Helix::Base) }
8
+ mods = [ Helix::Base, Helix::Media ]
9
+ mods.each { |mod| its(:ancestors) { should include(mod) } }
9
10
  its(:guid_name) { should eq('image_id') }
10
11
  its(:resource_label_sym) { should be(:image) }
11
12
  its(:plural_resource_label) { should eq('images') }
@@ -3,20 +3,25 @@ require 'helix'
3
3
 
4
4
  describe Helix::Library do
5
5
 
6
- let(:klass) { Helix::Library }
7
- subject { klass }
8
- its(:guid_name) { should eq('library_id') }
9
- its(:resource_label_sym) { should be(:library) }
10
- its(:plural_resource_label) { should eq('libraries') }
6
+ let(:klass) { Helix::Library }
7
+ subject { klass }
8
+
9
+ mods = [ Helix::Base, Helix::RESTful ]
10
+ mods.each { |mod| its(:ancestors) { should include(mod) } }
11
+ its(:ancestors) { should_not include(Helix::Media) }
12
+
13
+ its(:guid_name) { should eq('library_id') }
14
+ its(:resource_label_sym) { should be(:library) }
15
+ its(:plural_resource_label) { should eq('libraries') }
11
16
  [:find, :create, :all, :find_all, :where].each do |crud_call|
12
17
  it { should respond_to(crud_call) }
13
18
  end
14
19
 
15
20
  describe ".known_attributes" do
16
21
  let(:meth) { :known_attributes }
17
- let(:expected_attrs) { [ :player_profile,
18
- :ingest_profile,
19
- :secure_stream_callback_url,
22
+ let(:expected_attrs) { [ :player_profile,
23
+ :ingest_profile,
24
+ :secure_stream_callback_url,
20
25
  :hooks_attributes] }
21
26
  it "should equal expected_attrs" do
22
27
  expect(klass.send(meth)).to eq(expected_attrs)
@@ -33,4 +38,4 @@ describe Helix::Library do
33
38
  it { should respond_to(crud_call) }
34
39
  end
35
40
  end
36
- end
41
+ end
@@ -7,6 +7,9 @@ describe Helix::Media do
7
7
 
8
8
  subject { klass }
9
9
 
10
+ mods = [ Helix::RESTful, Helix::Uploadable ]
11
+ mods.each { |mod| its(:ancestors) { should include(mod) } }
12
+
10
13
  describe ".create" do
11
14
  let(:meth) { :create }
12
15
  let(:mock_config) { mock(Helix::Config) }
@@ -17,29 +20,37 @@ describe Helix::Media do
17
20
  let(:resp_json) { "JSON" }
18
21
  let(:params) { { signature: "some_sig" } }
19
22
  let(:expected) { { attributes: { attribute: :value }, config: mock_config } }
20
- before(:each) do
21
- klass.stub(:plural_resource_label) { :klasses }
22
- klass.stub(:resource_label_sym) { klass_sym }
23
- mock_config.stub(:build_url).with(action: :create_many, resource_label: :klasses) { :url }
24
- mock_config.stub(:signature).with(:update) { "some_sig" }
25
- Helix::Config.stub(:instance) { mock_config }
26
- end
27
- it "should get an ingest signature" do
28
- mock_config.should_receive(:build_url).with(resource_label: :klasses,
29
- content_type: :xml)
30
- RestClient.stub(:post).with(:url, params) { resp_json }
31
- Hash.should_receive(:from_xml).with(resp_json) { resp_value }
32
- klass.stub(:new).with(expected)
33
- mock_config.should_receive(:signature).with(:update) { "some_sig" }
34
- klass.send(meth)
23
+ context "when a Helix:Config instance is absent" do
24
+ before(:each) do Helix::Config.stub(:instance) { nil } end
25
+ it "should raise a NoConfigurationLoaded exception" do
26
+ lambda { klass.send(meth) }.should raise_error(Helix::NoConfigurationLoaded)
27
+ end
35
28
  end
36
- it "should do an HTTP post call, parse response and call new" do
37
- mock_config.should_receive(:build_url).with(resource_label: :klasses,
38
- content_type: :xml)
39
- RestClient.should_receive(:post).with(:url, params) { resp_json }
40
- Hash.should_receive(:from_xml).with(resp_json) { resp_value }
41
- klass.should_receive(:new).with(expected)
42
- klass.send(meth)
29
+ context "when a Helix:Config instance is present" do
30
+ before(:each) do
31
+ klass.stub(:plural_resource_label) { :klasses }
32
+ klass.stub(:resource_label_sym) { klass_sym }
33
+ mock_config.stub(:build_url).with(content_type: :xml, resource_label: :klasses) { :url }
34
+ mock_config.stub(:signature).with(:update) { "some_sig" }
35
+ Helix::Config.stub(:instance) { mock_config }
36
+ end
37
+ it "should get an ingest signature" do
38
+ mock_config.should_receive(:build_url).with(resource_label: :klasses,
39
+ content_type: :xml)
40
+ RestClient.stub(:post).with(:url, params) { resp_json }
41
+ Hash.should_receive(:from_xml).with(resp_json) { resp_value }
42
+ klass.stub(:new).with(expected)
43
+ mock_config.should_receive(:signature).with(:update) { "some_sig" }
44
+ klass.send(meth)
45
+ end
46
+ it "should do an HTTP post call, parse response and call new" do
47
+ mock_config.should_receive(:build_url).with(resource_label: :klasses,
48
+ content_type: :xml)
49
+ RestClient.should_receive(:post).with(:url, params) { resp_json }
50
+ Hash.should_receive(:from_xml).with(resp_json) { resp_value }
51
+ klass.should_receive(:new).with(expected)
52
+ klass.send(meth)
53
+ end
43
54
  end
44
55
  end
45
56
 
@@ -49,30 +60,56 @@ describe Helix::Media do
49
60
  let(:mock_obj) { mock(klass, :load => :output_of_load) }
50
61
  subject { klass.method(meth) }
51
62
  its(:arity) { should eq(1) }
52
- before(:each) do Helix::Config.stub(:instance) { mock_config } end
53
- context "when given a Helix::Config instance and a guid" do
54
- let(:guid_name) { :the_guid_name }
55
- let(:mock_attrs) { mock(Object, :[]= => :output_of_setting_val) }
56
- before(:each) do
57
- klass.stub(:attributes) { mock_attrs }
58
- klass.stub(:guid_name) { guid_name }
59
- klass.stub(:new) { mock_obj }
60
- end
61
- context "and the guid is nil" do
62
- it "should raise an ArgumentError complaining about a nil guid" do
63
- msg = 'find requires a non-nil guid argument - received a nil argument.'
64
- lambda { klass.send(meth, nil) }.should raise_error(ArgumentError, msg)
63
+ context "when a Helix:Config instance is absent" do
64
+ before(:each) do Helix::Config.stub(:instance) { nil } end
65
+ context "and given a guid" do
66
+ let(:guid_name) { :the_guid_name }
67
+ let(:mock_attrs) { mock(Object, :[]= => :output_of_setting_val) }
68
+ before(:each) do
69
+ klass.stub(:attributes) { mock_attrs }
70
+ klass.stub(:guid_name) { guid_name }
71
+ klass.stub(:new) { mock_obj }
72
+ end
73
+ context "and the guid is nil" do
74
+ it "should raise an ArgumentError complaining about a nil guid" do
75
+ msg = 'find requires a non-nil guid argument - received a nil argument.'
76
+ lambda { klass.send(meth, nil) }.should raise_error(ArgumentError, msg)
77
+ end
78
+ end
79
+ context "and the guid is non-nil" do
80
+ let(:guid) { :a_guid }
81
+ it "should raise a NoConfigurationLoaded exception" do
82
+ lambda { klass.send(meth, guid) }.should raise_error(Helix::NoConfigurationLoaded)
83
+ end
65
84
  end
66
85
  end
67
- context "and the guid is non-nil" do
68
- let(:guid) { :a_guid }
69
- it "should instantiate with {attributes: guid_name => the_guid, config: config}" do
70
- klass.should_receive(:new).with({attributes: {guid_name => guid}, config: mock_config})
71
- klass.send(meth, guid)
86
+ end
87
+ context "when a Helix::Config instance is present" do
88
+ before(:each) do Helix::Config.stub(:instance) { mock_config } end
89
+ context "and given a guid" do
90
+ let(:guid_name) { :the_guid_name }
91
+ let(:mock_attrs) { mock(Object, :[]= => :output_of_setting_val) }
92
+ before(:each) do
93
+ klass.stub(:attributes) { mock_attrs }
94
+ klass.stub(:guid_name) { guid_name }
95
+ klass.stub(:new) { mock_obj }
96
+ end
97
+ context "and the guid is nil" do
98
+ it "should raise an ArgumentError complaining about a nil guid" do
99
+ msg = 'find requires a non-nil guid argument - received a nil argument.'
100
+ lambda { klass.send(meth, nil) }.should raise_error(ArgumentError, msg)
101
+ end
72
102
  end
73
- it "should load" do
74
- mock_obj.should_receive(:load)
75
- klass.send(meth, guid)
103
+ context "and the guid is non-nil" do
104
+ let(:guid) { :a_guid }
105
+ it "should instantiate with {attributes: guid_name => the_guid, config: config}" do
106
+ klass.should_receive(:new).with({attributes: {guid_name => guid}, config: mock_config})
107
+ klass.send(meth, guid)
108
+ end
109
+ it "should load" do
110
+ mock_obj.should_receive(:load)
111
+ klass.send(meth, guid)
112
+ end
76
113
  end
77
114
  end
78
115
  end
@@ -20,5 +20,5 @@ describe Helix::Tag do
20
20
  its(:resource_label_sym) { should be(:tag) }
21
21
  it { should_not respond_to(:destroy) }
22
22
  it { should_not respond_to(:update) }
23
- end
23
+ end
24
24
  end
@@ -3,17 +3,21 @@ require 'helix'
3
3
 
4
4
  describe Helix::Track do
5
5
 
6
- let(:klass) { Helix::Track }
7
- subject { klass }
8
- its(:guid_name) { should eq('track_id') }
9
- its(:resource_label_sym) { should be(:track) }
10
- its(:plural_resource_label) { should eq('tracks') }
6
+ let(:klass) { Helix::Track }
7
+ subject { klass }
8
+ mods = [ Helix::Base, Helix::DurationedMedia, Helix::Media ]
9
+ mods.each { |mod| its(:ancestors) { should include(mod) } }
10
+ its(:guid_name) { should eq('track_id') }
11
+ its(:resource_label_sym) { should be(:track) }
12
+ its(:plural_resource_label) { should eq('tracks') }
11
13
  [:find, :create, :all, :find_all, :where].each do |crud_call|
12
14
  it { should respond_to(crud_call) }
13
15
  end
14
16
 
15
17
  describe "Constants"
16
18
 
19
+ ### INSTANCE METHODS
20
+
17
21
  describe "an instance" do
18
22
  let(:obj) { klass.new({'track_id' => 'some_track_guid'}) }
19
23
  subject { obj }
@@ -22,4 +26,112 @@ describe Helix::Track do
22
26
  it { should respond_to(crud_call) }
23
27
  end
24
28
  end
29
+
30
+ ### CLASS METHODS
31
+
32
+ describe ".upload" do
33
+ let(:meth) { :upload }
34
+ let(:mock_config) { mock(Helix::Config) }
35
+ subject { klass.method(meth) }
36
+ its(:arity) { should eq(1) }
37
+ let(:file_hash) { { file: :some_file } }
38
+ let(:multipart_hash) { { multipart: true } }
39
+ it "should call upload_server_name and RestClient.post with params" do
40
+ klass.should_receive(:upload_server_name) { :some_server_url }
41
+ File.should_receive(:new).with(:some_file.to_s, "rb") { :some_file }
42
+ RestClient.should_receive(:post).with(:some_server_url,
43
+ file_hash,
44
+ multipart_hash)
45
+ klass.should_receive(:http_close)
46
+ klass.send(meth, :some_file)
47
+ end
48
+ end
49
+
50
+ describe ".upload_server_name" do
51
+ let(:meth) { :upload_server_name }
52
+ let(:mock_config) { mock(Helix::Config) }
53
+ subject { klass.method(meth) }
54
+ its(:arity) { should eq(0) }
55
+ let(:url_opts) { { resource_label: "upload_sessions",
56
+ guid: :some_sig,
57
+ action: :http_open,
58
+ content_type: "" } }
59
+ before { Helix::Config.stub(:instance) { mock_config } }
60
+ it "should call RestClient.get with correct url building" do
61
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
62
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
63
+ RestClient.should_receive(:get).with(:url)
64
+ klass.send(meth)
65
+ end
66
+ end
67
+
68
+ describe ".http_close" do
69
+ let(:meth) { :http_close }
70
+ let(:mock_config) { mock(Helix::Config) }
71
+ subject { klass.method(meth) }
72
+ its(:arity) { should eq(0) }
73
+ let(:url_opts) { { resource_label: "upload_sessions",
74
+ guid: :some_sig,
75
+ action: :http_close,
76
+ content_type: "" } }
77
+ before { Helix::Config.stub(:instance) { mock_config } }
78
+ it "should call RestClient.get with correct url building" do
79
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
80
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
81
+ RestClient.should_receive(:get).with(:url)
82
+ klass.send(meth)
83
+ end
84
+ end
85
+
86
+ describe ".upload_get" do
87
+ let(:meth) { :upload_get }
88
+ let(:mock_config) { mock(Helix::Config) }
89
+ subject { klass.method(meth) }
90
+ its(:arity) { should eq(1) }
91
+ let(:url_opts) { { resource_label: "upload_sessions",
92
+ guid: :some_sig,
93
+ action: :upload_get,
94
+ content_type: "" } }
95
+ before { Helix::Config.stub(:instance) { mock_config } }
96
+ it "should call RestClient.get with correct url building" do
97
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
98
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
99
+ RestClient.should_receive(:get).with(:url)
100
+ klass.send(meth, :upload_get)
101
+ end
102
+ end
103
+
104
+ describe ".http_open" do
105
+ let(:meth) { :http_open }
106
+ let(:mock_config) { mock(Helix::Config) }
107
+ subject { klass.method(meth) }
108
+ its(:arity) { should eq(0) }
109
+ it "should call upload_server_name" do
110
+ klass.should_receive(:upload_server_name)
111
+ klass.send(meth)
112
+ end
113
+ end
114
+
115
+ describe ".upload_open" do
116
+ let(:meth) { :upload_open }
117
+ let(:mock_config) { mock(Helix::Config) }
118
+ subject { klass.method(meth) }
119
+ its(:arity) { should eq(0) }
120
+ it "should call upload_server_name" do
121
+ klass.should_receive(:upload_server_name)
122
+ klass.send(meth)
123
+ end
124
+ end
125
+
126
+ describe ".upload_close" do
127
+ let(:meth) { :upload_close }
128
+ let(:mock_config) { mock(Helix::Config) }
129
+ subject { klass.method(meth) }
130
+ its(:arity) { should eq(0) }
131
+ it "should call upload_server_name" do
132
+ klass.should_receive(:http_close)
133
+ klass.send(meth)
134
+ end
135
+ end
136
+
25
137
  end
@@ -7,11 +7,13 @@ describe Helix::Video do
7
7
  { list: { entry: values[:url_params] || {} } }.to_xml(root: :add)
8
8
  end
9
9
 
10
- let(:klass) { Helix::Video }
11
- subject { klass }
12
- its(:guid_name) { should eq('video_id') }
13
- its(:resource_label_sym) { should be(:video) }
14
- its(:plural_resource_label) { should eq('videos') }
10
+ let(:klass) { Helix::Video }
11
+ subject { klass }
12
+ mods = [ Helix::Base, Helix::DurationedMedia, Helix::Media ]
13
+ mods.each { |mod| its(:ancestors) { should include(mod) } }
14
+ its(:guid_name) { should eq('video_id') }
15
+ its(:resource_label_sym) { should be(:video) }
16
+ its(:plural_resource_label) { should eq('videos') }
15
17
  [:find, :create, :all, :find_all, :where].each do |crud_call|
16
18
  it { should respond_to(crud_call) }
17
19
  end
@@ -94,11 +96,84 @@ describe Helix::Video do
94
96
  its(:arity) { should eq(-1) }
95
97
  it "should call self.class.get_stillframe" do
96
98
  obj.stub(:guid) { :some_guid }
97
- klass.should_receive(:get_stillframe)
99
+ klass.should_receive(:stillframe_for)
98
100
  obj.send(meth)
99
101
  end
100
102
  end
101
103
 
104
+ describe "serialization" do
105
+ let(:mock_attributes) {
106
+ {
107
+ "created_at"=>"2013-04-09 16:33:58 UTC",
108
+ "description"=>"description of updated via rest-client",
109
+ "hidden"=>false,
110
+ "publisher_name"=>"kbaird@twistage.com",
111
+ "title"=>"updated via rest-client",
112
+ "video_id"=>"ece0d3fd03bf0",
113
+ "status"=>"available",
114
+ "contributor"=>"kbaird@twistage.com",
115
+ "site_name"=>"11701",
116
+ "library_name"=>"11701",
117
+ "main_asset_url"=>"http://service-staging.twistage.com/videos/ece0d3fd03bf0/assets/438894/file.flv",
118
+ "source_asset_url"=>"http://service-staging.twistage.com/videos/ece0d3fd03bf0/assets/438893/file.mp4",
119
+ "hits_count"=>0,
120
+ "plays_count"=>0,
121
+ "duration"=>255.791,
122
+ "total_size"=>158410133,
123
+ "availability"=>"available",
124
+ "main_asset_id"=>438894,
125
+ "progress"=>100,
126
+ "artist"=>"",
127
+ "genre"=>"",
128
+ "assets"=>[
129
+ {"id"=>438893, "size"=>140035687, "status_code"=>30, "acodec"=>"er aac ld", "audio_bitrate"=>128, "container"=>"mp4",
130
+ "download_url"=>"http://service-staging.twistage.com/videos/ece0d3fd03bf0/assets/438893/file.mp4", "duration"=>255.84,
131
+ "frame_rate"=>25.0, "hresolution"=>1280, "is_main_asset"=>false, "vcodec"=>"avc1", "video_bitrate"=>4247,
132
+ "video_format_name"=>"source", "vresolution"=>720, "status"=>"complete", "detailed_status"=>nil},
133
+ {"id"=>438894, "size"=>18374446, "status_code"=>30, "acodec"=>"mp3", "audio_bitrate"=>67, "container"=>"flv",
134
+ "download_url"=>"http://service-staging.twistage.com/videos/ece0d3fd03bf0/assets/438894/file.flv", "duration"=>255.791,
135
+ "frame_rate"=>25.0039099155, "hresolution"=>480, "is_main_asset"=>true, "vcodec"=>"h263", "video_bitrate"=>487,
136
+ "video_format_name"=>"flash-low", "vresolution"=>270, "status"=>"complete", "detailed_status"=>nil}
137
+ ],
138
+ "screenshots"=>[
139
+ {"frame"=>141.4, "content_type"=>"image/jpeg", "width"=>1280, "height"=>720, "size"=>260548,
140
+ "url"=>"http://service-staging.twistage.com:80/videos/ece0d3fd03bf0/screenshots/original.jpg"}
141
+ ],
142
+ "tags"=>[],
143
+ "custom_fields"=>[{"name"=>"blaaagghhh", "value"=>""}, {"name"=>"videoCF", "value"=>""}]
144
+ }
145
+ }
146
+ before(:each) do obj.instance_variable_set(:@attributes, mock_attributes) end
147
+
148
+ describe "#to_json" do
149
+ let(:meth) { :to_json }
150
+ context "arity" do
151
+ subject { obj.method(meth) }
152
+ its(:arity) { should eq(0) }
153
+ end
154
+ subject { obj.send(meth) }
155
+ it { should eq({video: mock_attributes}.to_json) }
156
+ end
157
+
158
+ describe "#to_xml" do
159
+ let(:meth) { :to_xml }
160
+ context "arity" do
161
+ subject { obj.method(meth) }
162
+ its(:arity) { should eq(0) }
163
+ end
164
+ subject { obj.send(meth) }
165
+ let(:modified_attributes) {
166
+ custom_fields = mock_attributes['custom_fields']
167
+ new_cfs = custom_fields.inject({}) do |memo,cf|
168
+ memo.merge(cf['name'] => cf['value'])
169
+ end
170
+ mock_attributes.merge('custom_fields' => new_cfs)
171
+ }
172
+ it { should eq(modified_attributes.to_xml(root: :video)) }
173
+ end
174
+
175
+ end
176
+
102
177
  [:destroy, :update].each do |crud_call|
103
178
  it { should respond_to(crud_call) }
104
179
  end
@@ -107,6 +182,111 @@ describe Helix::Video do
107
182
 
108
183
  ### CLASS METHODS
109
184
 
185
+ describe ".upload" do
186
+ let(:meth) { :upload }
187
+ let(:mock_config) { mock(Helix::Config) }
188
+ subject { klass.method(meth) }
189
+ its(:arity) { should eq(1) }
190
+ let(:file_hash) { { file: :some_file } }
191
+ let(:multipart_hash) { { multipart: true } }
192
+ it "should call upload_server_name and RestClient.post with params" do
193
+ klass.should_receive(:upload_server_name) { :some_server_url }
194
+ File.should_receive(:new).with(:some_file.to_s, "rb") { :some_file }
195
+ RestClient.should_receive(:post).with(:some_server_url,
196
+ file_hash,
197
+ multipart_hash)
198
+ klass.should_receive(:http_close)
199
+ klass.send(meth, :some_file)
200
+ end
201
+ end
202
+
203
+ describe ".upload_server_name" do
204
+ let(:meth) { :upload_server_name }
205
+ let(:mock_config) { mock(Helix::Config) }
206
+ subject { klass.method(meth) }
207
+ its(:arity) { should eq(0) }
208
+ let(:url_opts) { { resource_label: "upload_sessions",
209
+ guid: :some_sig,
210
+ action: :http_open,
211
+ content_type: "" } }
212
+ before { Helix::Config.stub(:instance) { mock_config } }
213
+ it "should call RestClient.get with correct url building" do
214
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
215
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
216
+ RestClient.should_receive(:get).with(:url)
217
+ klass.send(meth)
218
+ end
219
+ end
220
+
221
+ describe ".http_close" do
222
+ let(:meth) { :http_close }
223
+ let(:mock_config) { mock(Helix::Config) }
224
+ subject { klass.method(meth) }
225
+ its(:arity) { should eq(0) }
226
+ let(:url_opts) { { resource_label: "upload_sessions",
227
+ guid: :some_sig,
228
+ action: :http_close,
229
+ content_type: "" } }
230
+ before { Helix::Config.stub(:instance) { mock_config } }
231
+ it "should call RestClient.get with correct url building" do
232
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
233
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
234
+ RestClient.should_receive(:get).with(:url)
235
+ klass.send(meth)
236
+ end
237
+ end
238
+
239
+ describe ".upload_get" do
240
+ let(:meth) { :upload_get }
241
+ let(:mock_config) { mock(Helix::Config) }
242
+ subject { klass.method(meth) }
243
+ its(:arity) { should eq(1) }
244
+ let(:url_opts) { { resource_label: "upload_sessions",
245
+ guid: :some_sig,
246
+ action: :upload_get,
247
+ content_type: "" } }
248
+ before { Helix::Config.stub(:instance) { mock_config } }
249
+ it "should call RestClient.get with correct url building" do
250
+ mock_config.should_receive(:build_url).with(url_opts) { :url }
251
+ mock_config.should_receive(:signature).with(:ingest) { :some_sig }
252
+ RestClient.should_receive(:get).with(:url)
253
+ klass.send(meth, :upload_get)
254
+ end
255
+ end
256
+
257
+ describe ".http_open" do
258
+ let(:meth) { :http_open }
259
+ let(:mock_config) { mock(Helix::Config) }
260
+ subject { klass.method(meth) }
261
+ its(:arity) { should eq(0) }
262
+ it "should call upload_server_name" do
263
+ klass.should_receive(:upload_server_name)
264
+ klass.send(meth)
265
+ end
266
+ end
267
+
268
+ describe ".upload_open" do
269
+ let(:meth) { :upload_open }
270
+ let(:mock_config) { mock(Helix::Config) }
271
+ subject { klass.method(meth) }
272
+ its(:arity) { should eq(0) }
273
+ it "should call upload_server_name" do
274
+ klass.should_receive(:upload_server_name)
275
+ klass.send(meth)
276
+ end
277
+ end
278
+
279
+ describe ".upload_close" do
280
+ let(:meth) { :upload_close }
281
+ let(:mock_config) { mock(Helix::Config) }
282
+ subject { klass.method(meth) }
283
+ its(:arity) { should eq(0) }
284
+ it "should call upload_server_name" do
285
+ klass.should_receive(:http_close)
286
+ klass.send(meth)
287
+ end
288
+ end
289
+
110
290
  describe ".slice" do
111
291
  let(:meth) { :slice }
112
292
  let(:mock_config) { mock(Helix::Config) }
@@ -131,8 +311,8 @@ describe Helix::Video do
131
311
  end
132
312
  end
133
313
 
134
- describe ".get_stillframe" do
135
- let(:meth) { :get_stillframe }
314
+ describe ".stillframe_for" do
315
+ let(:meth) { :stillframe_for }
136
316
  let(:mock_config) { mock(Helix::Config) }
137
317
  subject { klass.method(meth) }
138
318
  its(:arity) { should eq(-2) }