main
1describe Scale::SVG do
2 subject { Scale::SVG.new }
3
4 describe "#to_xml" do
5 it 'produces and empty xml document' do
6 expected = <<-XML
7<?xml version="1.0"?>
8<svg xmlns="http://www.w3.org/2000/svg\" version="1.1" baseProfile="full"/>
9 XML
10 expect(subject.to_xml).to eql(expected)
11 end
12
13 it 'applies a width' do
14 subject.width = rand(1000)
15 expected = <<-XML
16<?xml version="1.0"?>
17<svg xmlns="http://www.w3.org/2000/svg\" version="1.1" baseProfile="full" width="#{subject.width}"/>
18 XML
19 expect(subject.to_xml).to eql(expected)
20 end
21
22 it 'applies a height' do
23 subject.height = rand(1000)
24 expected = <<-XML
25<?xml version="1.0"?>
26<svg xmlns="http://www.w3.org/2000/svg\" version="1.1" baseProfile="full" height="#{subject.height}"/>
27 XML
28 expect(subject.to_xml).to eql(expected)
29 end
30
31 context "when nesting elements" do
32 it 'produces the correct xml' do
33 subject.add(Scale::Rectangle.new(width: "100%", height: "100%", fill: "red"))
34 expected = <<-XML
35<?xml version="1.0"?>
36<svg xmlns="http://www.w3.org/2000/svg\" version="1.1" baseProfile="full">
37 <rect width="100%" height="100%" fill="red"/>
38</svg>
39 XML
40 expect(subject.to_xml).to eql(expected)
41 end
42 end
43 end
44end