spec/mp3file/mp3_file_spec.rb in mp3file-1.2.0 vs spec/mp3file/mp3_file_spec.rb in mp3file-1.3.0
- old
+ new
@@ -6,142 +6,585 @@
describe Mp3file::MP3File do
describe "A 96 kbps 32 kHz Joint Stereo CBR file without a Xing header or any ID3 tags" do
path = fixture_file("bret_96_no_xing.mp3")
subject { Mp3file::MP3File.new(path) }
- its(:id3v2tag?) { should == false }
- its(:id3v1tag?) { should == false }
- its("file.path") { should == path.to_s }
- its("file.closed?") { should == true }
- its(:file_size) { should == path.size }
- its(:audio_size) { should == path.size }
- its(:first_header_offset) { should == 0 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should == 96 }
- its(:samplerate) { should == 32000 }
- its(:mode) { should == 'Joint Stereo' }
- its(:num_frames) { should == 140 }
- its(:total_samples) { should == 161280 }
- its(:length) { should == 5.04 }
- its(:vbr?) { should == false }
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#path' do
+ subject { super().path }
+ it { is_expected.to eq(path.to_s) }
+ end
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#closed?' do
+ subject { super().closed? }
+ it { is_expected.to eq(true) }
+ end
+ end
+
+ describe '#file_size' do
+ subject { super().file_size }
+ it { is_expected.to eq(path.size) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(path.size) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(0) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to eq(96) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(32000) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Joint Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(140) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(161280) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to eq(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(false) }
+ end
end
describe "A 96 kbps 32 kHz Joint Stereo CBR file with a Xing \"Info\" header and no ID3 tags" do
path = fixture_file("bret_96.mp3")
subject { Mp3file::MP3File.new(path) }
- its(:id3v2tag?) { should == false }
- its(:id3v1tag?) { should == false }
- its("file.path") { should == path.to_s }
- its("file.closed?") { should == true }
- its(:file_size) { should == path.size }
- its(:audio_size) { should == path.size }
- its(:first_header_offset) { should == 0 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should == 96 }
- its(:samplerate) { should == 32000 }
- its(:mode) { should == 'Joint Stereo' }
- its(:num_frames) { should == 140 }
- its(:total_samples) { should == 161280 }
- its(:length) { should == 5.04 }
- its(:vbr?) { should == false }
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#path' do
+ subject { super().path }
+ it { is_expected.to eq(path.to_s) }
+ end
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#closed?' do
+ subject { super().closed? }
+ it { is_expected.to eq(true) }
+ end
+ end
+
+ describe '#file_size' do
+ subject { super().file_size }
+ it { is_expected.to eq(path.size) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(path.size) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(0) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to eq(96) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(32000) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Joint Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(140) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(161280) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to eq(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(false) }
+ end
end
describe "a 44.1 kHz Stereo VBR file with an average bitrate of 130 kbps without any ID3 tags" do
path = fixture_file("bret_vbr_6.mp3")
subject { Mp3file::MP3File.new(path) }
- its(:id3v2tag?) { should == false }
- its(:id3v1tag?) { should == false }
- its("file.path") { should == path.to_s }
- its("file.closed?") { should == true }
- its(:file_size) { should == path.size }
- its(:audio_size) { should == 81853 }
- its(:first_header_offset) { should == 0 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should be_within(0.005).of(129.88) }
- its(:samplerate) { should == 44100 }
- its(:mode) { should == 'Stereo' }
- its(:num_frames) { should == 193 }
- its(:total_samples) { should == 222336 }
- its(:length) { should be_within(0.005).of(5.04) }
- its(:vbr?) { should == true }
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#path' do
+ subject { super().path }
+ it { is_expected.to eq(path.to_s) }
+ end
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#closed?' do
+ subject { super().closed? }
+ it { is_expected.to eq(true) }
+ end
+ end
+
+ describe '#file_size' do
+ subject { super().file_size }
+ it { is_expected.to eq(path.size) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(81853) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(0) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to be_within(0.005).of(129.88) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(44100) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(193) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(222336) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to be_within(0.005).of(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(true) }
+ end
end
describe "A 96 kbps 32 kHz CBR file with no Xing header and only an ID3v1 tag" do
subject { Mp3file::MP3File.new(fixture_file('bret_id3v1_no_xing.mp3')) }
- its(:id3v2tag?) { should == false }
- its(:id3v1tag?) { should == true }
- its(:audio_size) { should == 60480 }
- its(:first_header_offset) { should == 0 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should == 96 }
- its(:samplerate) { should == 32000 }
- its(:mode) { should == 'Joint Stereo' }
- its(:num_frames) { should == 140 }
- its(:total_samples) { should == 161280 }
- its(:length) { should be_within(0.005).of(5.04) }
- its(:vbr?) { should == false }
- its('id3v1_tag.artist') { should == 'Cracker' }
- its(:title) { should == 'Hey Bret (You Know What Time I' }
- its(:album) { should == 'Sunrise in the Land of Milk an' }
- its(:comment) { should == 'For testing the mp3file gem' }
- its(:year) { should == '2009' }
- its(:track) { should == 9 }
- its(:genre) { should == 'Rock' }
+
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(true) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(60480) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(0) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to eq(96) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(32000) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Joint Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(140) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(161280) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to be_within(0.005).of(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1_tag' do
+ subject { super().id3v1_tag }
+ describe '#artist' do
+ subject { super().artist }
+ it { is_expected.to eq('Cracker') }
+ end
+ end
+
+ describe '#title' do
+ subject { super().title }
+ it { is_expected.to eq('Hey Bret (You Know What Time I') }
+ end
+
+ describe '#album' do
+ subject { super().album }
+ it { is_expected.to eq('Sunrise in the Land of Milk an') }
+ end
+
+ describe '#comment' do
+ subject { super().comment }
+ it { is_expected.to eq('For testing the mp3file gem') }
+ end
+
+ describe '#year' do
+ subject { super().year }
+ it { is_expected.to eq('2009') }
+ end
+
+ describe '#track' do
+ subject { super().track }
+ it { is_expected.to eq(9) }
+ end
+
+ describe '#genre' do
+ subject { super().genre }
+ it { is_expected.to eq('Rock') }
+ end
end
describe "A 96 kbps 32 kHz CBR file with a Xing \"Info\" header and only an ID3v1 tag" do
subject { Mp3file::MP3File.new(fixture_file('bret_id3v1.mp3')) }
- its(:id3v2tag?) { should == false }
- its(:id3v1tag?) { should == true }
- its(:audio_size) { should == 60912 }
- its(:first_header_offset) { should == 0 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should == 96 }
- its(:samplerate) { should == 32000 }
- its(:mode) { should == 'Joint Stereo' }
- its(:num_frames) { should == 140 }
- its(:total_samples) { should == 161280 }
- its(:length) { should be_within(0.005).of(5.04) }
- its(:vbr?) { should == false }
- its('id3v1_tag.artist') { should == 'Cracker' }
- its(:title) { should == 'Hey Bret (You Know What Time I' }
- its(:album) { should == 'Sunrise in the Land of Milk an' }
- its(:comment) { should == 'For testing the mp3file gem' }
- its(:year) { should == '2009' }
- its(:track) { should == 9 }
- its(:genre) { should == 'Rock' }
+
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(true) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(60912) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(0) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to eq(96) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(32000) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Joint Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(140) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(161280) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to be_within(0.005).of(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#id3v1_tag' do
+ subject { super().id3v1_tag }
+ describe '#artist' do
+ subject { super().artist }
+ it { is_expected.to eq('Cracker') }
+ end
+ end
+
+ describe '#title' do
+ subject { super().title }
+ it { is_expected.to eq('Hey Bret (You Know What Time I') }
+ end
+
+ describe '#album' do
+ subject { super().album }
+ it { is_expected.to eq('Sunrise in the Land of Milk an') }
+ end
+
+ describe '#comment' do
+ subject { super().comment }
+ it { is_expected.to eq('For testing the mp3file gem') }
+ end
+
+ describe '#year' do
+ subject { super().year }
+ it { is_expected.to eq('2009') }
+ end
+
+ describe '#track' do
+ subject { super().track }
+ it { is_expected.to eq(9) }
+ end
+
+ describe '#genre' do
+ subject { super().genre }
+ it { is_expected.to eq('Rock') }
+ end
end
describe "A 96 kbps 34 kHz Joint Stereo CBR file with a Xing \"Info\" header and an ID3v2 tag" do
subject { Mp3file::MP3File.new(fixture_file('bret_id3v2.mp3')) }
- its(:id3v2tag?) { should == true }
- its(:id3v1tag?) { should == false }
- its("file.path") { should == fixture_file('bret_id3v2.mp3').to_s }
- its("file.closed?") { should == true }
- its(:file_size) { should == fixture_file('bret_id3v2.mp3').size }
- its(:audio_size) { should == 60912 }
- its(:first_header_offset) { should == 528 }
- its(:mpeg_version) { should == 'MPEG 1' }
- its(:layer) { should == 'Layer III' }
- its(:bitrate) { should == 96 }
- its(:samplerate) { should == 32000 }
- its(:mode) { should == 'Joint Stereo' }
- its(:num_frames) { should == 140 }
- its(:total_samples) { should == 161280 }
- its(:length) { should == be_within(0.001).of(5.04) }
- its(:vbr?) { should == false }
+
+ describe '#id3v2tag?' do
+ subject { super().id3v2tag? }
+ it { is_expected.to eq(true) }
+ end
+
+ describe '#id3v1tag?' do
+ subject { super().id3v1tag? }
+ it { is_expected.to eq(false) }
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#path' do
+ subject { super().path }
+ it { is_expected.to eq(fixture_file('bret_id3v2.mp3').to_s) }
+ end
+ end
+
+ describe '#file' do
+ subject { super().file }
+ describe '#closed?' do
+ subject { super().closed? }
+ it { is_expected.to eq(true) }
+ end
+ end
+
+ describe '#file_size' do
+ subject { super().file_size }
+ it { is_expected.to eq(fixture_file('bret_id3v2.mp3').size) }
+ end
+
+ describe '#audio_size' do
+ subject { super().audio_size }
+ it { is_expected.to eq(60912) }
+ end
+
+ describe '#first_header_offset' do
+ subject { super().first_header_offset }
+ it { is_expected.to eq(528) }
+ end
+
+ describe '#mpeg_version' do
+ subject { super().mpeg_version }
+ it { is_expected.to eq('MPEG 1') }
+ end
+
+ describe '#layer' do
+ subject { super().layer }
+ it { is_expected.to eq('Layer III') }
+ end
+
+ describe '#bitrate' do
+ subject { super().bitrate }
+ it { is_expected.to eq(96) }
+ end
+
+ describe '#samplerate' do
+ subject { super().samplerate }
+ it { is_expected.to eq(32000) }
+ end
+
+ describe '#mode' do
+ subject { super().mode }
+ it { is_expected.to eq('Joint Stereo') }
+ end
+
+ describe '#num_frames' do
+ subject { super().num_frames }
+ it { is_expected.to eq(140) }
+ end
+
+ describe '#total_samples' do
+ subject { super().total_samples }
+ it { is_expected.to eq(161280) }
+ end
+
+ describe '#length' do
+ subject { super().length }
+ it { is_expected.to be_within(0.001).of(5.04) }
+ end
+
+ describe '#vbr?' do
+ subject { super().vbr? }
+ it { is_expected.to eq(false) }
+ end
end
describe "A file consisting only of zeroes" do
it "raises an error" do
- lambda { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
- should(raise_error(Mp3file::InvalidMP3FileError))
+ expect { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
+ to(raise_error(Mp3file::InvalidMP3FileError))
end
end
end