spec/integration/icon_spec.rb in prawn-icon-0.6.4 vs spec/integration/icon_spec.rb in prawn-icon-0.7.0

- old
+ new

@@ -100,23 +100,52 @@ expect(icon.class).to eq(Prawn::Text::Formatted::Box) end end describe '::table_icon' do - it 'should return a hash with font and content keys' do - pdf = create_pdf - icon = pdf.table_icon 'fa-arrows' + context 'inline_format: false (default)' do + it 'should return a hash with font and content keys' do + pdf = create_pdf + icon = pdf.table_icon 'fa-arrows' - expect(icon.class).to eq(Hash) - expect(icon[:font]).to eq('fa') - expect(icon[:content]).to eq("\uf047") + expect(icon.class).to eq(Hash) + expect(icon[:font]).to eq('fa') + expect(icon[:content]).to eq("\uf047") + end end - it 'should raise an error if inline_format: true' do - pdf = create_pdf - proc = Proc.new { pdf.table_icon 'fa-arrows', inline_format: true } + context 'inline_format: true' do + it 'should convert <icon> to <font> tags' do + pdf = create_pdf + icon = pdf.table_icon '<icon>fa-user</icon>', inline_format: true - expect(proc).to raise_error(Prawn::Errors::UnknownOption) + expect(icon.class).to eq(Hash) + expect(icon[:content]).to eq('<font name="fa"></font>') + expect(icon[:inline_format]).to be_true + end + + it 'should ignore all other tags' do + pdf = create_pdf + a = ['<b>BOLD</b> <color rgb="0099FF">BLUE</color>', inline_format: true] + icon = pdf.table_icon(*a) + + expect(icon.class).to eq(Hash) + expect(icon[:content]).to eq(a[0]) + expect(icon[:inline_format]).to be_true + end + + context 'multiple icons' do + it 'should ignore any text not in an icon tag' do + pdf = create_pdf + a = ['<icon>fa-user</icon> Some Text <icon>fi-laptop</icon>', inline_format: true] + out = '<font name="fa"></font> Some Text <font name="fi"></font>' + icon = pdf.table_icon(*a) + + expect(icon.class).to eq(Hash) + expect(icon[:content]).to eq(out) + expect(icon[:inline_format]).to be_true + end + end end end end describe Prawn::Icon do