Sha256: b148249c2bbe5d7e7747ac1737f75b8f04a28fd90b63459267b137b1263a495b

Contents?: true

Size: 1.67 KB

Versions: 13

Compression:

Stored size: 1.67 KB

Contents

require 'spec_helper'

describe M3u8::KeyItem do
  it 'should initialize with hash' do
    hash = { method: 'AES-128', uri: 'http://test.key',
             iv: 'D512BBF', key_format: 'identity',
             key_format_versions: '1/3' }
    item = M3u8::KeyItem.new(hash)
    expect(item.method).to eq 'AES-128'
    expect(item.uri).to eq 'http://test.key'
    expect(item.iv).to eq 'D512BBF'
    expect(item.key_format).to eq 'identity'
    expect(item.key_format_versions).to eq '1/3'
  end

  it 'should provide m3u8 format representation' do
    hash = { method: 'AES-128', uri: 'http://test.key',
             iv: 'D512BBF', key_format: 'identity',
             key_format_versions: '1/3' }
    item = M3u8::KeyItem.new(hash)
    expected = %(#EXT-X-KEY:METHOD=AES-128,URI="http://test.key",) +
               %(IV=D512BBF,KEYFORMAT="identity",KEYFORMATVERSIONS="1/3")
    expect(item.to_s).to eq expected

    hash = { method: 'AES-128', uri: 'http://test.key' }
    item = M3u8::KeyItem.new(hash)
    expected = %(#EXT-X-KEY:METHOD=AES-128,URI="http://test.key")
    expect(item.to_s).to eq expected

    hash = { method: 'NONE' }
    item = M3u8::KeyItem.new(hash)
    expected = '#EXT-X-KEY:METHOD=NONE'
    expect(item.to_s).to eq expected
  end

  it 'should parse m3u8 format into instance' do
    format = %(#EXT-X-KEY:METHOD=AES-128,URI="http://test.key",) +
             %(IV=D512BBF,KEYFORMAT="identity",KEYFORMATVERSIONS="1/3")
    item = M3u8::KeyItem.parse format
    expect(item.method).to eq 'AES-128'
    expect(item.uri).to eq 'http://test.key'
    expect(item.iv).to eq 'D512BBF'
    expect(item.key_format).to eq 'identity'
    expect(item.key_format_versions).to eq '1/3'
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
m3u8-0.7.0 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.9 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.8 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.7 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.6 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.5 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.4 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.3 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.2 spec/lib/m3u8/key_item_spec.rb
m3u8-0.6.1 spec/key_item_spec.rb
m3u8-0.5.3 spec/key_item_spec.rb
m3u8-0.5.2 spec/key_item_spec.rb
m3u8-0.5.1 spec/key_item_spec.rb