mp3file 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,140 +8,583 @@ describe Mp3file::MP3File do
8
8
  path = fixture_file("bret_96_no_xing.mp3")
9
9
  subject { Mp3file::MP3File.new(path) }
10
10
 
11
- its(:id3v2tag?) { should == false }
12
- its(:id3v1tag?) { should == false }
13
- its("file.path") { should == path.to_s }
14
- its("file.closed?") { should == true }
15
- its(:file_size) { should == path.size }
16
- its(:audio_size) { should == path.size }
17
- its(:first_header_offset) { should == 0 }
18
- its(:mpeg_version) { should == 'MPEG 1' }
19
- its(:layer) { should == 'Layer III' }
20
- its(:bitrate) { should == 96 }
21
- its(:samplerate) { should == 32000 }
22
- its(:mode) { should == 'Joint Stereo' }
23
- its(:num_frames) { should == 140 }
24
- its(:total_samples) { should == 161280 }
25
- its(:length) { should == 5.04 }
26
- its(:vbr?) { should == false }
11
+ describe '#id3v2tag?' do
12
+ subject { super().id3v2tag? }
13
+ it { is_expected.to eq(false) }
14
+ end
15
+
16
+ describe '#id3v1tag?' do
17
+ subject { super().id3v1tag? }
18
+ it { is_expected.to eq(false) }
19
+ end
20
+
21
+ describe '#file' do
22
+ subject { super().file }
23
+ describe '#path' do
24
+ subject { super().path }
25
+ it { is_expected.to eq(path.to_s) }
26
+ end
27
+ end
28
+
29
+ describe '#file' do
30
+ subject { super().file }
31
+ describe '#closed?' do
32
+ subject { super().closed? }
33
+ it { is_expected.to eq(true) }
34
+ end
35
+ end
36
+
37
+ describe '#file_size' do
38
+ subject { super().file_size }
39
+ it { is_expected.to eq(path.size) }
40
+ end
41
+
42
+ describe '#audio_size' do
43
+ subject { super().audio_size }
44
+ it { is_expected.to eq(path.size) }
45
+ end
46
+
47
+ describe '#first_header_offset' do
48
+ subject { super().first_header_offset }
49
+ it { is_expected.to eq(0) }
50
+ end
51
+
52
+ describe '#mpeg_version' do
53
+ subject { super().mpeg_version }
54
+ it { is_expected.to eq('MPEG 1') }
55
+ end
56
+
57
+ describe '#layer' do
58
+ subject { super().layer }
59
+ it { is_expected.to eq('Layer III') }
60
+ end
61
+
62
+ describe '#bitrate' do
63
+ subject { super().bitrate }
64
+ it { is_expected.to eq(96) }
65
+ end
66
+
67
+ describe '#samplerate' do
68
+ subject { super().samplerate }
69
+ it { is_expected.to eq(32000) }
70
+ end
71
+
72
+ describe '#mode' do
73
+ subject { super().mode }
74
+ it { is_expected.to eq('Joint Stereo') }
75
+ end
76
+
77
+ describe '#num_frames' do
78
+ subject { super().num_frames }
79
+ it { is_expected.to eq(140) }
80
+ end
81
+
82
+ describe '#total_samples' do
83
+ subject { super().total_samples }
84
+ it { is_expected.to eq(161280) }
85
+ end
86
+
87
+ describe '#length' do
88
+ subject { super().length }
89
+ it { is_expected.to eq(5.04) }
90
+ end
91
+
92
+ describe '#vbr?' do
93
+ subject { super().vbr? }
94
+ it { is_expected.to eq(false) }
95
+ end
27
96
  end
28
97
 
29
98
  describe "A 96 kbps 32 kHz Joint Stereo CBR file with a Xing \"Info\" header and no ID3 tags" do
30
99
  path = fixture_file("bret_96.mp3")
31
100
  subject { Mp3file::MP3File.new(path) }
32
101
 
33
- its(:id3v2tag?) { should == false }
34
- its(:id3v1tag?) { should == false }
35
- its("file.path") { should == path.to_s }
36
- its("file.closed?") { should == true }
37
- its(:file_size) { should == path.size }
38
- its(:audio_size) { should == path.size }
39
- its(:first_header_offset) { should == 0 }
40
- its(:mpeg_version) { should == 'MPEG 1' }
41
- its(:layer) { should == 'Layer III' }
42
- its(:bitrate) { should == 96 }
43
- its(:samplerate) { should == 32000 }
44
- its(:mode) { should == 'Joint Stereo' }
45
- its(:num_frames) { should == 140 }
46
- its(:total_samples) { should == 161280 }
47
- its(:length) { should == 5.04 }
48
- its(:vbr?) { should == false }
102
+ describe '#id3v2tag?' do
103
+ subject { super().id3v2tag? }
104
+ it { is_expected.to eq(false) }
105
+ end
106
+
107
+ describe '#id3v1tag?' do
108
+ subject { super().id3v1tag? }
109
+ it { is_expected.to eq(false) }
110
+ end
111
+
112
+ describe '#file' do
113
+ subject { super().file }
114
+ describe '#path' do
115
+ subject { super().path }
116
+ it { is_expected.to eq(path.to_s) }
117
+ end
118
+ end
119
+
120
+ describe '#file' do
121
+ subject { super().file }
122
+ describe '#closed?' do
123
+ subject { super().closed? }
124
+ it { is_expected.to eq(true) }
125
+ end
126
+ end
127
+
128
+ describe '#file_size' do
129
+ subject { super().file_size }
130
+ it { is_expected.to eq(path.size) }
131
+ end
132
+
133
+ describe '#audio_size' do
134
+ subject { super().audio_size }
135
+ it { is_expected.to eq(path.size) }
136
+ end
137
+
138
+ describe '#first_header_offset' do
139
+ subject { super().first_header_offset }
140
+ it { is_expected.to eq(0) }
141
+ end
142
+
143
+ describe '#mpeg_version' do
144
+ subject { super().mpeg_version }
145
+ it { is_expected.to eq('MPEG 1') }
146
+ end
147
+
148
+ describe '#layer' do
149
+ subject { super().layer }
150
+ it { is_expected.to eq('Layer III') }
151
+ end
152
+
153
+ describe '#bitrate' do
154
+ subject { super().bitrate }
155
+ it { is_expected.to eq(96) }
156
+ end
157
+
158
+ describe '#samplerate' do
159
+ subject { super().samplerate }
160
+ it { is_expected.to eq(32000) }
161
+ end
162
+
163
+ describe '#mode' do
164
+ subject { super().mode }
165
+ it { is_expected.to eq('Joint Stereo') }
166
+ end
167
+
168
+ describe '#num_frames' do
169
+ subject { super().num_frames }
170
+ it { is_expected.to eq(140) }
171
+ end
172
+
173
+ describe '#total_samples' do
174
+ subject { super().total_samples }
175
+ it { is_expected.to eq(161280) }
176
+ end
177
+
178
+ describe '#length' do
179
+ subject { super().length }
180
+ it { is_expected.to eq(5.04) }
181
+ end
182
+
183
+ describe '#vbr?' do
184
+ subject { super().vbr? }
185
+ it { is_expected.to eq(false) }
186
+ end
49
187
  end
50
188
 
51
189
  describe "a 44.1 kHz Stereo VBR file with an average bitrate of 130 kbps without any ID3 tags" do
52
190
  path = fixture_file("bret_vbr_6.mp3")
53
191
  subject { Mp3file::MP3File.new(path) }
54
192
 
55
- its(:id3v2tag?) { should == false }
56
- its(:id3v1tag?) { should == false }
57
- its("file.path") { should == path.to_s }
58
- its("file.closed?") { should == true }
59
- its(:file_size) { should == path.size }
60
- its(:audio_size) { should == 81853 }
61
- its(:first_header_offset) { should == 0 }
62
- its(:mpeg_version) { should == 'MPEG 1' }
63
- its(:layer) { should == 'Layer III' }
64
- its(:bitrate) { should be_within(0.005).of(129.88) }
65
- its(:samplerate) { should == 44100 }
66
- its(:mode) { should == 'Stereo' }
67
- its(:num_frames) { should == 193 }
68
- its(:total_samples) { should == 222336 }
69
- its(:length) { should be_within(0.005).of(5.04) }
70
- its(:vbr?) { should == true }
193
+ describe '#id3v2tag?' do
194
+ subject { super().id3v2tag? }
195
+ it { is_expected.to eq(false) }
196
+ end
197
+
198
+ describe '#id3v1tag?' do
199
+ subject { super().id3v1tag? }
200
+ it { is_expected.to eq(false) }
201
+ end
202
+
203
+ describe '#file' do
204
+ subject { super().file }
205
+ describe '#path' do
206
+ subject { super().path }
207
+ it { is_expected.to eq(path.to_s) }
208
+ end
209
+ end
210
+
211
+ describe '#file' do
212
+ subject { super().file }
213
+ describe '#closed?' do
214
+ subject { super().closed? }
215
+ it { is_expected.to eq(true) }
216
+ end
217
+ end
218
+
219
+ describe '#file_size' do
220
+ subject { super().file_size }
221
+ it { is_expected.to eq(path.size) }
222
+ end
223
+
224
+ describe '#audio_size' do
225
+ subject { super().audio_size }
226
+ it { is_expected.to eq(81853) }
227
+ end
228
+
229
+ describe '#first_header_offset' do
230
+ subject { super().first_header_offset }
231
+ it { is_expected.to eq(0) }
232
+ end
233
+
234
+ describe '#mpeg_version' do
235
+ subject { super().mpeg_version }
236
+ it { is_expected.to eq('MPEG 1') }
237
+ end
238
+
239
+ describe '#layer' do
240
+ subject { super().layer }
241
+ it { is_expected.to eq('Layer III') }
242
+ end
243
+
244
+ describe '#bitrate' do
245
+ subject { super().bitrate }
246
+ it { is_expected.to be_within(0.005).of(129.88) }
247
+ end
248
+
249
+ describe '#samplerate' do
250
+ subject { super().samplerate }
251
+ it { is_expected.to eq(44100) }
252
+ end
253
+
254
+ describe '#mode' do
255
+ subject { super().mode }
256
+ it { is_expected.to eq('Stereo') }
257
+ end
258
+
259
+ describe '#num_frames' do
260
+ subject { super().num_frames }
261
+ it { is_expected.to eq(193) }
262
+ end
263
+
264
+ describe '#total_samples' do
265
+ subject { super().total_samples }
266
+ it { is_expected.to eq(222336) }
267
+ end
268
+
269
+ describe '#length' do
270
+ subject { super().length }
271
+ it { is_expected.to be_within(0.005).of(5.04) }
272
+ end
273
+
274
+ describe '#vbr?' do
275
+ subject { super().vbr? }
276
+ it { is_expected.to eq(true) }
277
+ end
71
278
  end
72
279
 
73
280
  describe "A 96 kbps 32 kHz CBR file with no Xing header and only an ID3v1 tag" do
74
281
  subject { Mp3file::MP3File.new(fixture_file('bret_id3v1_no_xing.mp3')) }
75
- its(:id3v2tag?) { should == false }
76
- its(:id3v1tag?) { should == true }
77
- its(:audio_size) { should == 60480 }
78
- its(:first_header_offset) { should == 0 }
79
- its(:mpeg_version) { should == 'MPEG 1' }
80
- its(:layer) { should == 'Layer III' }
81
- its(:bitrate) { should == 96 }
82
- its(:samplerate) { should == 32000 }
83
- its(:mode) { should == 'Joint Stereo' }
84
- its(:num_frames) { should == 140 }
85
- its(:total_samples) { should == 161280 }
86
- its(:length) { should be_within(0.005).of(5.04) }
87
- its(:vbr?) { should == false }
88
- its('id3v1_tag.artist') { should == 'Cracker' }
89
- its(:title) { should == 'Hey Bret (You Know What Time I' }
90
- its(:album) { should == 'Sunrise in the Land of Milk an' }
91
- its(:comment) { should == 'For testing the mp3file gem' }
92
- its(:year) { should == '2009' }
93
- its(:track) { should == 9 }
94
- its(:genre) { should == 'Rock' }
282
+
283
+ describe '#id3v2tag?' do
284
+ subject { super().id3v2tag? }
285
+ it { is_expected.to eq(false) }
286
+ end
287
+
288
+ describe '#id3v1tag?' do
289
+ subject { super().id3v1tag? }
290
+ it { is_expected.to eq(true) }
291
+ end
292
+
293
+ describe '#audio_size' do
294
+ subject { super().audio_size }
295
+ it { is_expected.to eq(60480) }
296
+ end
297
+
298
+ describe '#first_header_offset' do
299
+ subject { super().first_header_offset }
300
+ it { is_expected.to eq(0) }
301
+ end
302
+
303
+ describe '#mpeg_version' do
304
+ subject { super().mpeg_version }
305
+ it { is_expected.to eq('MPEG 1') }
306
+ end
307
+
308
+ describe '#layer' do
309
+ subject { super().layer }
310
+ it { is_expected.to eq('Layer III') }
311
+ end
312
+
313
+ describe '#bitrate' do
314
+ subject { super().bitrate }
315
+ it { is_expected.to eq(96) }
316
+ end
317
+
318
+ describe '#samplerate' do
319
+ subject { super().samplerate }
320
+ it { is_expected.to eq(32000) }
321
+ end
322
+
323
+ describe '#mode' do
324
+ subject { super().mode }
325
+ it { is_expected.to eq('Joint Stereo') }
326
+ end
327
+
328
+ describe '#num_frames' do
329
+ subject { super().num_frames }
330
+ it { is_expected.to eq(140) }
331
+ end
332
+
333
+ describe '#total_samples' do
334
+ subject { super().total_samples }
335
+ it { is_expected.to eq(161280) }
336
+ end
337
+
338
+ describe '#length' do
339
+ subject { super().length }
340
+ it { is_expected.to be_within(0.005).of(5.04) }
341
+ end
342
+
343
+ describe '#vbr?' do
344
+ subject { super().vbr? }
345
+ it { is_expected.to eq(false) }
346
+ end
347
+
348
+ describe '#id3v1_tag' do
349
+ subject { super().id3v1_tag }
350
+ describe '#artist' do
351
+ subject { super().artist }
352
+ it { is_expected.to eq('Cracker') }
353
+ end
354
+ end
355
+
356
+ describe '#title' do
357
+ subject { super().title }
358
+ it { is_expected.to eq('Hey Bret (You Know What Time I') }
359
+ end
360
+
361
+ describe '#album' do
362
+ subject { super().album }
363
+ it { is_expected.to eq('Sunrise in the Land of Milk an') }
364
+ end
365
+
366
+ describe '#comment' do
367
+ subject { super().comment }
368
+ it { is_expected.to eq('For testing the mp3file gem') }
369
+ end
370
+
371
+ describe '#year' do
372
+ subject { super().year }
373
+ it { is_expected.to eq('2009') }
374
+ end
375
+
376
+ describe '#track' do
377
+ subject { super().track }
378
+ it { is_expected.to eq(9) }
379
+ end
380
+
381
+ describe '#genre' do
382
+ subject { super().genre }
383
+ it { is_expected.to eq('Rock') }
384
+ end
95
385
  end
96
386
 
97
387
  describe "A 96 kbps 32 kHz CBR file with a Xing \"Info\" header and only an ID3v1 tag" do
98
388
  subject { Mp3file::MP3File.new(fixture_file('bret_id3v1.mp3')) }
99
- its(:id3v2tag?) { should == false }
100
- its(:id3v1tag?) { should == true }
101
- its(:audio_size) { should == 60912 }
102
- its(:first_header_offset) { should == 0 }
103
- its(:mpeg_version) { should == 'MPEG 1' }
104
- its(:layer) { should == 'Layer III' }
105
- its(:bitrate) { should == 96 }
106
- its(:samplerate) { should == 32000 }
107
- its(:mode) { should == 'Joint Stereo' }
108
- its(:num_frames) { should == 140 }
109
- its(:total_samples) { should == 161280 }
110
- its(:length) { should be_within(0.005).of(5.04) }
111
- its(:vbr?) { should == false }
112
- its('id3v1_tag.artist') { should == 'Cracker' }
113
- its(:title) { should == 'Hey Bret (You Know What Time I' }
114
- its(:album) { should == 'Sunrise in the Land of Milk an' }
115
- its(:comment) { should == 'For testing the mp3file gem' }
116
- its(:year) { should == '2009' }
117
- its(:track) { should == 9 }
118
- its(:genre) { should == 'Rock' }
389
+
390
+ describe '#id3v2tag?' do
391
+ subject { super().id3v2tag? }
392
+ it { is_expected.to eq(false) }
393
+ end
394
+
395
+ describe '#id3v1tag?' do
396
+ subject { super().id3v1tag? }
397
+ it { is_expected.to eq(true) }
398
+ end
399
+
400
+ describe '#audio_size' do
401
+ subject { super().audio_size }
402
+ it { is_expected.to eq(60912) }
403
+ end
404
+
405
+ describe '#first_header_offset' do
406
+ subject { super().first_header_offset }
407
+ it { is_expected.to eq(0) }
408
+ end
409
+
410
+ describe '#mpeg_version' do
411
+ subject { super().mpeg_version }
412
+ it { is_expected.to eq('MPEG 1') }
413
+ end
414
+
415
+ describe '#layer' do
416
+ subject { super().layer }
417
+ it { is_expected.to eq('Layer III') }
418
+ end
419
+
420
+ describe '#bitrate' do
421
+ subject { super().bitrate }
422
+ it { is_expected.to eq(96) }
423
+ end
424
+
425
+ describe '#samplerate' do
426
+ subject { super().samplerate }
427
+ it { is_expected.to eq(32000) }
428
+ end
429
+
430
+ describe '#mode' do
431
+ subject { super().mode }
432
+ it { is_expected.to eq('Joint Stereo') }
433
+ end
434
+
435
+ describe '#num_frames' do
436
+ subject { super().num_frames }
437
+ it { is_expected.to eq(140) }
438
+ end
439
+
440
+ describe '#total_samples' do
441
+ subject { super().total_samples }
442
+ it { is_expected.to eq(161280) }
443
+ end
444
+
445
+ describe '#length' do
446
+ subject { super().length }
447
+ it { is_expected.to be_within(0.005).of(5.04) }
448
+ end
449
+
450
+ describe '#vbr?' do
451
+ subject { super().vbr? }
452
+ it { is_expected.to eq(false) }
453
+ end
454
+
455
+ describe '#id3v1_tag' do
456
+ subject { super().id3v1_tag }
457
+ describe '#artist' do
458
+ subject { super().artist }
459
+ it { is_expected.to eq('Cracker') }
460
+ end
461
+ end
462
+
463
+ describe '#title' do
464
+ subject { super().title }
465
+ it { is_expected.to eq('Hey Bret (You Know What Time I') }
466
+ end
467
+
468
+ describe '#album' do
469
+ subject { super().album }
470
+ it { is_expected.to eq('Sunrise in the Land of Milk an') }
471
+ end
472
+
473
+ describe '#comment' do
474
+ subject { super().comment }
475
+ it { is_expected.to eq('For testing the mp3file gem') }
476
+ end
477
+
478
+ describe '#year' do
479
+ subject { super().year }
480
+ it { is_expected.to eq('2009') }
481
+ end
482
+
483
+ describe '#track' do
484
+ subject { super().track }
485
+ it { is_expected.to eq(9) }
486
+ end
487
+
488
+ describe '#genre' do
489
+ subject { super().genre }
490
+ it { is_expected.to eq('Rock') }
491
+ end
119
492
  end
120
493
 
121
494
  describe "A 96 kbps 34 kHz Joint Stereo CBR file with a Xing \"Info\" header and an ID3v2 tag" do
122
495
  subject { Mp3file::MP3File.new(fixture_file('bret_id3v2.mp3')) }
123
- its(:id3v2tag?) { should == true }
124
- its(:id3v1tag?) { should == false }
125
- its("file.path") { should == fixture_file('bret_id3v2.mp3').to_s }
126
- its("file.closed?") { should == true }
127
- its(:file_size) { should == fixture_file('bret_id3v2.mp3').size }
128
- its(:audio_size) { should == 60912 }
129
- its(:first_header_offset) { should == 528 }
130
- its(:mpeg_version) { should == 'MPEG 1' }
131
- its(:layer) { should == 'Layer III' }
132
- its(:bitrate) { should == 96 }
133
- its(:samplerate) { should == 32000 }
134
- its(:mode) { should == 'Joint Stereo' }
135
- its(:num_frames) { should == 140 }
136
- its(:total_samples) { should == 161280 }
137
- its(:length) { should == be_within(0.001).of(5.04) }
138
- its(:vbr?) { should == false }
496
+
497
+ describe '#id3v2tag?' do
498
+ subject { super().id3v2tag? }
499
+ it { is_expected.to eq(true) }
500
+ end
501
+
502
+ describe '#id3v1tag?' do
503
+ subject { super().id3v1tag? }
504
+ it { is_expected.to eq(false) }
505
+ end
506
+
507
+ describe '#file' do
508
+ subject { super().file }
509
+ describe '#path' do
510
+ subject { super().path }
511
+ it { is_expected.to eq(fixture_file('bret_id3v2.mp3').to_s) }
512
+ end
513
+ end
514
+
515
+ describe '#file' do
516
+ subject { super().file }
517
+ describe '#closed?' do
518
+ subject { super().closed? }
519
+ it { is_expected.to eq(true) }
520
+ end
521
+ end
522
+
523
+ describe '#file_size' do
524
+ subject { super().file_size }
525
+ it { is_expected.to eq(fixture_file('bret_id3v2.mp3').size) }
526
+ end
527
+
528
+ describe '#audio_size' do
529
+ subject { super().audio_size }
530
+ it { is_expected.to eq(60912) }
531
+ end
532
+
533
+ describe '#first_header_offset' do
534
+ subject { super().first_header_offset }
535
+ it { is_expected.to eq(528) }
536
+ end
537
+
538
+ describe '#mpeg_version' do
539
+ subject { super().mpeg_version }
540
+ it { is_expected.to eq('MPEG 1') }
541
+ end
542
+
543
+ describe '#layer' do
544
+ subject { super().layer }
545
+ it { is_expected.to eq('Layer III') }
546
+ end
547
+
548
+ describe '#bitrate' do
549
+ subject { super().bitrate }
550
+ it { is_expected.to eq(96) }
551
+ end
552
+
553
+ describe '#samplerate' do
554
+ subject { super().samplerate }
555
+ it { is_expected.to eq(32000) }
556
+ end
557
+
558
+ describe '#mode' do
559
+ subject { super().mode }
560
+ it { is_expected.to eq('Joint Stereo') }
561
+ end
562
+
563
+ describe '#num_frames' do
564
+ subject { super().num_frames }
565
+ it { is_expected.to eq(140) }
566
+ end
567
+
568
+ describe '#total_samples' do
569
+ subject { super().total_samples }
570
+ it { is_expected.to eq(161280) }
571
+ end
572
+
573
+ describe '#length' do
574
+ subject { super().length }
575
+ it { is_expected.to be_within(0.001).of(5.04) }
576
+ end
577
+
578
+ describe '#vbr?' do
579
+ subject { super().vbr? }
580
+ it { is_expected.to eq(false) }
581
+ end
139
582
  end
140
583
 
141
584
  describe "A file consisting only of zeroes" do
142
585
  it "raises an error" do
143
- lambda { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
144
- should(raise_error(Mp3file::InvalidMP3FileError))
586
+ expect { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
587
+ to(raise_error(Mp3file::InvalidMP3FileError))
145
588
  end
146
589
  end
147
590
  end