uencode 0.0.3 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,532 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe UEncode::Medium do
4
- let(:medium) { UEncode::Medium.new }
5
-
6
- before :each do
7
- medium.configure_video do |c|
8
- c.bitrate = 10000
9
- c.codec = "mp4"
10
- c.cbr = false
11
- c.crop = nil
12
- c.deinterlace = true
13
- c.framerate = UEncode::FrameRate.new :numerator => 1000, :denominator => 1001
14
- c.height = 500
15
- c.keyframe_interval = 0
16
- c.maxbitrate = 10000
17
- c.par = nil
18
- c.profile = "baseline"
19
- c.passes = 1
20
- c.stretch = false
21
- c.width = 400
22
- end
23
-
24
- medium.configure_audio do |c|
25
- c.codec = "aac"
26
- c.bitrate = 15000
27
- c.channels = 2
28
- c.samplerate = 10000
29
- end
30
- end
31
-
32
- describe "#configure_video" do
33
- let(:medium) { UEncode::Medium.new }
34
- let(:config) { YAML::load_file("spec/fixtures/configuration.yaml") }
35
- let(:video_config) { config["video"] }
36
- let(:audio_config) { config["audio"] }
37
-
38
- it { medium.video.bitrate.should == 10000 }
39
- it { medium.video.codec.should == "mp4" }
40
- it { medium.video.cbr.should == false }
41
- it { medium.video.crop.should be_nil }
42
- it { medium.video.deinterlace.should == true }
43
- it { medium.video.framerate.numerator.should == 1000 }
44
- it { medium.video.height.should == 500 }
45
- it { medium.video.keyframe_interval.should == 0 }
46
- it { medium.video.maxbitrate.should == 10000 }
47
- it { medium.video.par.should be_nil }
48
- it { medium.video.profile.should == "baseline" }
49
- it { medium.video.passes.should == 1 }
50
- it { medium.video.stretch.should == false }
51
- it { medium.video.width.should == 400 }
52
-
53
- context "from a hash (video parameters)" do
54
- subject { medium.video_config }
55
-
56
- before { medium.configure config }
57
-
58
- its(:bitrate) { should == video_config["bitrate"] }
59
- its(:codec) { should == video_config["codec"] }
60
- its(:cbr) { should == video_config["cbr"] }
61
- its(:crop) { should == video_config["crop"] }
62
- its(:deinterlace) { should == video_config["deinterlace"] }
63
- its(:framerate) { should == UEncode::FrameRate.new(video_config["framerate"]) }
64
- its(:height) { should == video_config["height"] }
65
- its(:keyframe_interval) { should == video_config["keyframe_interval"] }
66
- its(:maxbitrate) { should == video_config["maxbitrate"] }
67
- its(:par) { should == UEncode::Par.new(video_config["par"]) }
68
- its(:profile) { should == video_config["profile"] }
69
- its(:passes) { should == video_config["passes"] }
70
- its(:stretch) { should == video_config["stretch"] }
71
- its(:width) { should == video_config["width"] }
72
- end
73
-
74
- context "from a hash (audio parameters)" do
75
- before { medium.configure config }
76
- subject { medium.audio_config }
77
-
78
- its(:codec) { should == audio_config["codec"] }
79
- its(:bitrate) { should == audio_config["bitrate"] }
80
- its(:channels) { should == audio_config["channels"] }
81
- its(:samplerate) { should == audio_config["samplerate"] }
82
- end
83
- end
84
-
85
- describe "#configure_audio" do
86
- let(:medium) { UEncode::Medium.new }
87
-
88
- it { medium.audio.codec.should == "aac" }
89
- it { medium.audio.bitrate.should == 15000 }
90
- it { medium.audio.channels.should == 2 }
91
- it { medium.audio.samplerate.should == 10000 }
92
- end
93
-
94
- context "video config default values" do
95
- let(:medium_without_configuration) { described_class.new }
96
-
97
- it { medium_without_configuration.video.cbr.should == false }
98
- it { medium_without_configuration.video.deinterlace.should == false }
99
- it { medium_without_configuration.video.profile.should == "main" }
100
- it { medium_without_configuration.video.passes.should == 1 }
101
- it { medium_without_configuration.video.stretch.should == false }
102
- end
103
-
104
- describe "#to_xml" do
105
- let(:xml) { Nokogiri::XML medium.to_xml }
106
-
107
- before :each do
108
- medium.configure_video do |c|
109
- c.crop = UEncode::Crop.new :width => 125, :height => 150, :x => 100, :y => 200
110
- c.par = UEncode::Par.new :numerator => 10, :denominator => 11
111
- end
112
- end
113
-
114
- it "has a root element named 'media'" do
115
- xml.root.name.should == 'medium'
116
- end
117
-
118
- it "has the correct video configs" do
119
- config = xml.xpath("//video")
120
- config.xpath("//video/bitrate").text.should == "10000"
121
- config.xpath("//video/codec").text.should == "mp4"
122
- config.xpath("//cbr").text.should == "false"
123
- config.xpath("//crop/width").text.should == "125"
124
- config.xpath("//crop/height").text.should == "150"
125
- config.xpath("//crop/x").text.should == "100"
126
- config.xpath("//crop/y").text.should == "200"
127
- config.xpath("//deinterlace").text.should == "true"
128
- config.xpath("//framerate/numerator").text.should == "1000"
129
- config.xpath("//framerate/denominator").text.should == "1001"
130
- config.xpath("//video/height").text.should == "500"
131
- config.xpath("//keyframe_interval").text.should == "0"
132
- config.xpath("//maxbitrate").text.should == "10000"
133
- config.xpath("//par/numerator").text.should == "10"
134
- config.xpath("//par/denominator").text.should == "11"
135
- config.xpath("//profile").text.should == "baseline"
136
- config.xpath("//passes").text.should == "1"
137
- config.xpath("//video/width").text.should == "400"
138
- end
139
-
140
- it "does not include the cbr video config when it's null" do
141
- medium.configure_video { |c| c.cbr = nil }
142
- Nokogiri::XML(medium.to_xml).xpath("//video/cbr").should be_empty
143
- end
144
-
145
- it "does not include the crop video config when it's null" do
146
- medium.configure_video { |c| c.crop = nil }
147
- Nokogiri::XML(medium.to_xml).xpath("//video/crop").should be_empty
148
- end
149
-
150
- it "does not include the deinterlace video config when it's null" do
151
- medium.configure_video { |c| c.deinterlace = nil }
152
- Nokogiri::XML(medium.to_xml).xpath("//video/deinterlace").should be_empty
153
- end
154
-
155
- it "does not include the framerate video config when it's null" do
156
- medium.configure_video { |c| c.framerate = nil }
157
- Nokogiri::XML(medium.to_xml).xpath("//video/framerate").should be_empty
158
- end
159
-
160
- it "does not include the height video config when it's null" do
161
- medium.configure_video { |c| c.height = nil }
162
- Nokogiri::XML(medium.to_xml).xpath("//video/height").should be_empty
163
- end
164
-
165
- it "does not include the keyframe_interval video config when it's null" do
166
- medium.configure_video { |c| c.keyframe_interval = nil }
167
- Nokogiri::XML(medium.to_xml).xpath("//video/keyframe_interval").should be_empty
168
- end
169
-
170
- it "does not include the maxbitrate video config when it's null" do
171
- medium.configure_video { |c| c.maxbitrate = nil }
172
- Nokogiri::XML(medium.to_xml).xpath("//video/maxbitrate").should be_empty
173
- end
174
-
175
- it "does not include the par video config when it's null" do
176
- medium.configure_video { |c| c.par = nil }
177
- Nokogiri::XML(medium.to_xml).xpath("//video/par").should be_empty
178
- end
179
-
180
- it "does not include the profile video config when it's null" do
181
- medium.configure_video { |c| c.profile = nil }
182
- Nokogiri::XML(medium.to_xml).xpath("//video/profile").should be_empty
183
- end
184
-
185
- it "does not include the passes video config when it's null" do
186
- medium.configure_video { |c| c.passes = nil }
187
- Nokogiri::XML(medium.to_xml).xpath("//video/passes").should be_empty
188
- end
189
-
190
- it "does not include the stretch video config when it's null" do
191
- medium.configure_video { |c| c.stretch = nil }
192
- Nokogiri::XML(medium.to_xml).xpath("//video/stretch").should be_empty
193
- end
194
-
195
- it "does not include the width video config when it's null" do
196
- medium.configure_video { |c| c.width = nil }
197
- Nokogiri::XML(medium.to_xml).xpath("//video/width").should be_empty
198
- end
199
-
200
- it "does not include the stretch video config when it's false" do
201
- medium.configure_video { |c| c.stretch = false }
202
- Nokogiri::XML(medium.to_xml) .xpath("//video/stretch").should be_empty
203
- end
204
-
205
- it "has the correct audio configs" do
206
- xml.xpath("//audio/codec").text.should == "aac"
207
- xml.xpath("//audio/bitrate").text.should == "15000"
208
- xml.xpath("//audio/channels").text.should == "2"
209
- xml.xpath("//audio/samplerate").text.should == "10000"
210
- end
211
-
212
- it "does not include the bitrate audio config when it's null" do
213
- medium.configure_audio { |c| c.bitrate = nil }
214
- Nokogiri::XML(medium.to_xml).xpath("//audio/bitrate").should be_empty
215
- end
216
-
217
- it "does not include the channels audio config when it's null" do
218
- medium.configure_audio { |c| c.channels = nil }
219
- Nokogiri::XML(medium.to_xml).xpath("//audio/channels").should be_empty
220
- end
221
-
222
- it "does not include the samplerate audio config when it's null" do
223
- medium.configure_audio { |c| c.samplerate = nil }
224
- Nokogiri::XML(medium.to_xml).xpath("//audio/samplerate").should be_empty
225
- end
226
- end
227
- end
228
-
229
- describe UEncode::VideoOutput do
230
- subject { described_class.new :destination => "http://foobar.com/bla.avi", :container => "mpeg4" }
231
-
232
- its(:destination) { should == "http://foobar.com/bla.avi" }
233
- its(:container) { should == "mpeg4" }
234
-
235
-
236
- describe "#to_xml" do
237
- let(:video_output) { described_class.new :destination => "http://foo.com/bar.mp4", :container => "mpeg4" }
238
- let(:xml) { Nokogiri::XML video_output.to_xml }
239
-
240
-
241
- it "has a root element named 'output'" do
242
- xml.root.name.should == 'output'
243
- end
244
-
245
- it "has the correct destination value" do
246
- xml.xpath("//output/video/destination").text.should == "http://foo.com/bar.mp4"
247
- end
248
-
249
- it "has the correct container value" do
250
- xml.xpath("//output/video/container").text.should == "mpeg4"
251
- end
252
- end
253
- end
254
-
255
- describe UEncode::CaptureOutput do
256
- subject { described_class.new({
257
- :destination => "http://whatever.com/foo.jpg",
258
- :rate => "at 20s",
259
- :stretch => false
260
- }) }
261
-
262
- its(:destination) { should == "http://whatever.com/foo.jpg" }
263
- its(:rate) { should == "at 20s" }
264
- its(:stretch) { should == false }
265
-
266
- context "default values" do
267
- let(:capture) { described_class.new :rate => "every 10s" }
268
-
269
- it { capture.stretch.should == false }
270
- end
271
-
272
- describe "#to_xml" do
273
- let(:crop) { UEncode::Crop.new :width => 125, :height => 140, :x => 100, :y => 200 }
274
- let(:size) { UEncode::Size.new :width => 400, :height => 500 }
275
- let(:xml) {
276
- Nokogiri::XML described_class.new(
277
- :destination => "http://foo.com/bla.mp4",
278
- :stretch => false,
279
- :rate => 'every 10s',
280
- :crop => crop,
281
- :size => size
282
- ).to_xml
283
- }
284
-
285
- it "has a root element named capture" do
286
- xml.root.name.should == 'output'
287
- end
288
-
289
- it "has the correct value for the rate attribute" do
290
- xml.xpath("//output/capture/rate").text.should == "every 10s"
291
- end
292
-
293
- it "has the correct value for the destination attribute" do
294
- xml.xpath("//output/capture/destination").text.should == "http://foo.com/bla.mp4"
295
- end
296
-
297
- it "has the correct value for the crop attribute" do
298
- xml.xpath("//output/capture/crop/width").text.should == "125"
299
- xml.xpath("//output/capture/crop/height").text.should == "140"
300
- end
301
-
302
- it "has the correct value for the size attribute" do
303
- xml.xpath("//output/capture/size/width").text.should == "400"
304
- xml.xpath("//output/capture/size/height").text.should == "500"
305
- end
306
- end
307
- end
308
-
309
- describe UEncode::Crop do
310
- subject { described_class.new :width => 100, :height => 200, :x => 100, :y => 150 }
311
-
312
- its(:width) { should == 100 }
313
- its(:height) { should == 200 }
314
- its(:x) { should == 100 }
315
- its(:y) { should = 150 }
316
-
317
- describe "#to_xml" do
318
- let(:xml) { Nokogiri::XML described_class.new(:width => 100, :height => 200, :x => 100, :y => 150).to_xml }
319
-
320
- it "has a root element named 'crop'" do
321
- xml.root.name.should == 'crop'
322
- end
323
-
324
- it "has the correct value for the width attribute" do
325
- xml.xpath("//width").text.should == "100"
326
- end
327
-
328
- it "has the correct value for the height attribute" do
329
- xml.xpath("//height").text.should == "200"
330
- end
331
-
332
- it "has the correct value for the x attribute" do
333
- xml.xpath("//x").text.should == "100"
334
- end
335
-
336
- it "has the correct value for the y attribute" do
337
- xml.xpath("//y").text.should == "150"
338
- end
339
- end
340
- end
341
-
342
- shared_examples_for "an element that represents a rate number" do
343
- subject { described_class.new :numerator => numerator, :denominator => denominator }
344
-
345
- its(:numerator) { should == numerator }
346
- its(:denominator) { should == denominator }
347
-
348
- describe "#to_xml" do
349
- let(:xml) { Nokogiri::XML described_class.new(:numerator => numerator, :denominator => denominator).to_xml }
350
-
351
- it "has a root element named '#{name}'" do
352
- xml.root.name.should == name
353
- end
354
-
355
- it "has the correct value for the numerator attribute" do
356
- xml.xpath("//numerator").text.should == numerator.to_s
357
- end
358
-
359
- it "has the correct value for the denominator attribute" do
360
- xml.xpath("//denominator").text.should == denominator.to_s
361
- end
362
- end
363
- end
364
-
365
- describe UEncode::VideoConfig do
366
- let(:config) { described_class.new }
367
-
368
- context "receiving a hash as the framerate" do
369
- before { config.framerate = {:numerator => 123, :denominator => 345} }
370
-
371
- it "converts it to a UEncode::FrameRate" do
372
- config.framerate.should be_an_instance_of(UEncode::FrameRate)
373
- end
374
-
375
- it "the framerate has the correct numerator" do
376
- config.framerate.numerator.should == 123
377
- end
378
-
379
- it "the framerate has the correct denominator" do
380
- config.framerate.denominator.should == 345
381
- end
382
- end
383
- end
384
-
385
- describe UEncode::FrameRate do
386
- let(:name) { "framerate" }
387
- let(:numerator) { 1000 }
388
- let(:denominator) { 1001 }
389
-
390
- it_should_behave_like "an element that represents a rate number"
391
- end
392
-
393
- describe UEncode::Par do
394
- let(:name) { "par" }
395
- let(:numerator) { 10 }
396
- let(:denominator) { 11 }
397
-
398
- it_should_behave_like "an element that represents a rate number"
399
- end
400
-
401
- describe UEncode::Size do
402
- subject { described_class.new :width => 100, :height => 200 }
403
-
404
- its(:height) { should == 200 }
405
- its(:width) { should == 100 }
406
-
407
- describe "#to_xml" do
408
- let(:xml) { Nokogiri::XML described_class.new(:width => 200, :height => 250).to_xml }
409
-
410
- it "has a root element named 'size'" do
411
- xml.root.name.should == 'size'
412
- end
413
-
414
- it "has the correct value for the width attribute" do
415
- xml.xpath("//width").text.should == "200"
416
- end
417
-
418
- it "has the correct value for the height attribute" do
419
- xml.xpath("//height").text.should == "250"
420
- end
421
- end
422
- end
423
-
424
- describe UEncode::Job do
425
- subject { described_class.new :source => "http://foo.com/bar.avi", :userdata => "some text", :notify => "http://my_url.com" }
426
-
427
- its(:source) { should == "http://foo.com/bar.avi" }
428
- its(:userdata) { should == "some text" }
429
- its(:notify) { should == "http://my_url.com" }
430
- its(:items) { should == [] }
431
-
432
- describe "#<<" do
433
- it "adds new elements to items" do
434
- subject << "foo"
435
- subject.items.should == ["foo"]
436
- end
437
- end
438
-
439
- it "is enumerable" do
440
- subject << "foo"
441
- subject << "bar"
442
- subject.map { |item| item }.should == ["foo", "bar"]
443
- end
444
-
445
- describe "#to_xml" do
446
- let(:job) { UEncode::Job.new({
447
- :customerkey => "0123456789",
448
- :source => "http://whatever.com/foo.avi",
449
- :userdata => "some text",
450
- :notify => "http://notify.me/meh"
451
- })}
452
-
453
- let(:xml) { Nokogiri::XML job.to_xml }
454
-
455
- before :each do
456
- video1 = UEncode::Medium.new
457
- video1.configure_video do |c|
458
- c.bitrate = 1000
459
- c.codec = 'mp4'
460
- end
461
- video1.configure_audio do |c|
462
- c.codec = 'aac'
463
- end
464
- video2 = UEncode::Medium.new
465
- video2.configure_video do |c|
466
- c.bitrate = 1500
467
- c.codec = 'mpeg2'
468
- end
469
- video2.configure_audio do |c|
470
- c.codec = 'passthru'
471
- end
472
- job << video1
473
- job << video2
474
-
475
- job.configure_video_output do |c|
476
- c.destination = "http://whatever.com/foo1.mp4"
477
- c.container = "mpeg4"
478
- end
479
-
480
- capture1 = UEncode::CaptureOutput.new :destination => "http://whatever.com/foo.zip", :rate => "every 30s"
481
- job.add_capture capture1
482
- capture2 = UEncode::CaptureOutput.new :destination => "http://whatever.com/bar.zip", :rate => "every 10s"
483
- job.add_capture capture2
484
- end
485
-
486
- it "has a root element named 'job'" do
487
- xml.root.name.should == 'job'
488
- end
489
-
490
- it "has the correct customer key value" do
491
- xml.xpath("//job/customerkey").text.should == "1q2w3e4r5t"
492
- end
493
-
494
- it "has the correct source attribute" do
495
- xml.xpath("//job/source").text.should == "http://whatever.com/foo.avi"
496
- end
497
-
498
- it "has the correct user data value" do
499
- xml.xpath("//job/userdata").text.should == 'some text'
500
- end
501
-
502
- it "has the correct notify value" do
503
- xml.xpath("//job/notify").text.should == "http://notify.me/meh"
504
- end
505
-
506
- it "does not include the userdata attribute when it's null" do
507
- job.instance_variable_set :@userdata, nil
508
- xml.xpath("//job/userdata").should be_empty
509
- end
510
-
511
- it "does not include the notify attribute when it's null" do
512
- job.instance_variable_set :@notify, nil
513
- xml.xpath("//job/notify").should be_empty
514
- end
515
-
516
- it "contains the correct content to represent each video output item" do
517
- xml.xpath("//job/outputs/output/video/media/medium").length.should == 2
518
- end
519
-
520
- it "has the correct video output destination" do
521
- xml.xpath("//job/outputs/output/video/destination").text.should == "http://whatever.com/foo1.mp4"
522
- end
523
-
524
- it "has the correct video output container" do
525
- xml.xpath("//job/outputs/output/video/container").text.should == "mpeg4"
526
- end
527
-
528
- it "contains the correct content to represent the video captures" do
529
- xml.xpath("//job/outputs/output/capture").length.should == 2
530
- end
531
- end
532
- end
@@ -1,23 +0,0 @@
1
- video:
2
- bitrate: 4500000
3
- codec: "mp4"
4
- width: 1920
5
- height: 1080
6
- passes: 1
7
- maxbitrate: 2000000
8
- deinterlace: false
9
- cbr: false
10
- stretch: false
11
- profile: "baseline"
12
- framerate:
13
- numerator: 30000
14
- denominator: 1001
15
- par:
16
- numerator: 1
17
- denominator: 1
18
- keyframe_interval: 60
19
- audio:
20
- codec: "aac"
21
- bitrate: 256000
22
- channels: 2
23
- samplerate: 44100
@@ -1,87 +0,0 @@
1
- ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :put
5
- uri: https://www.uencode.com:443/jobs?version=300
6
- body: |
7
- <?xml version="1.0"?>
8
- <job>
9
- <customerkey>1q2w3e4r5t</customerkey>
10
- <source>http://dailydigital-files.s3.amazonaws.com/staging/3/iphone.mp4</source>
11
- <userdata>This is a simple test</userdata>
12
-
13
- <outputs>
14
-
15
- <output>
16
- <video>
17
- <destination>http://dailydigital-files.s3.amazonaws.com/staging/3/iphone_transcoded.mp4</destination>
18
- <container>mpeg4</container>
19
- <media>
20
-
21
- <medium>
22
- <video>
23
- <bitrate>300000</bitrate>
24
- <codec>h264</codec>
25
- <cbr>false</cbr>
26
-
27
- <deinterlace>false</deinterlace>
28
-
29
-
30
-
31
-
32
-
33
- <profile>main</profile>
34
- <passes>1</passes>
35
-
36
-
37
- </video>
38
- <audio>
39
- <codec>aac</codec>
40
- <bitrate>64000</bitrate>
41
- <channels>1</channels>
42
- <samplerate>44100</samplerate>
43
- </audio>
44
- </medium>
45
-
46
- </media>
47
- </video>
48
- </output>
49
-
50
-
51
- </outputs>
52
- </job>
53
-
54
- headers:
55
- response: !ruby/struct:VCR::Response
56
- status: !ruby/struct:VCR::ResponseStatus
57
- code: 200
58
- message: OK
59
- headers:
60
- date:
61
- - Wed, 18 May 2011 21:25:41 GMT
62
- server:
63
- - Apache/2.2.16 (Ubuntu)
64
- etag:
65
- - "\"1c1e90e26e3f60eeb74014a6aeb5ac22\""
66
- cache-control:
67
- - max-age=0, private, must-revalidate
68
- x-ua-compatible:
69
- - IE=Edge,chrome=1
70
- set-cookie:
71
- - _uencode_api_session=BAh7BiIPc2Vzc2lvbl9pZCIlOWM4ZWM4ZGUxMzNiNTNiNWZiOWMwMDA4ODkzMmY3ZWI%3D--697ce08be3ca2a9f6347474fe7fe5476333e9408; path=/; HttpOnly
72
- x-runtime:
73
- - "1.007000"
74
- content-length:
75
- - "202"
76
- content-type:
77
- - application/xml;charset=utf-8
78
- body: |
79
- <?xml version="1.0" encoding="UTF-8"?>
80
- <response>
81
- <code>Ok</code>
82
- <jobid>6068</jobid>
83
- <message>You job was created successfully.</message>
84
- <userdata>This is a simple test</userdata>
85
- </response>
86
-
87
- http_version: "1.1"
data/spec/request_spec.rb DELETED
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe UEncode::Request do
4
- context "being created" do
5
- let(:job) { UEncode::Job.new :source => "http://whatever.com/foo/avi" }
6
- let(:request) { UEncode::Request.new job }
7
-
8
- it "initializes the job attribute" do
9
- request.instance_variable_get(:@job).should == job
10
- end
11
- end
12
-
13
- describe "#send" do
14
- let(:job) { UEncode::Job.new :source => "http://dailydigital-files.s3.amazonaws.com/staging/3/iphone.mp4", :userdata => "This is a simple test" }
15
- let(:request) { UEncode::Request.new job }
16
-
17
- before :each do
18
- job.configure_video_output do |c|
19
- c.destination = "http://dailydigital-files.s3.amazonaws.com/staging/3/iphone_transcoded.mp4"
20
- c.container = "mpeg4"
21
- end
22
- video1 = UEncode::Medium.new
23
- video1.configure_video { |c| c.bitrate = 300000; c.codec = "h264"}
24
- video1.configure_audio do |c|
25
- c.bitrate = 64000
26
- c.codec = "aac"
27
- c.samplerate = 44100
28
- c.channels = 1
29
- end
30
- job << video1
31
- end
32
-
33
- around :each do |example|
34
- VCR.use_cassette "job_with_one_video_and_no_capture", &example
35
- end
36
-
37
- it "returns a response containing the jobid" do
38
- request.send.jobid.should =~ /\A\d+\z/
39
- end
40
-
41
- it "returns a response containing a code" do
42
- request.send.code.should == 'Ok'
43
- end
44
-
45
- it "returns a response containing the previously sent user data" do
46
- request.send.userdata.should == "This is a simple test"
47
- end
48
-
49
- it "returns a response containing a message" do
50
- request.send.message.should == "You job was created successfully."
51
- end
52
- end
53
- end