require 'spec_helper' describe Prawn::SVG::Attributes::Transform do class TransformTestElement include Prawn::SVG::Attributes::Transform attr_accessor :attributes, :warnings def initialize @warnings = [] @attributes = {} end end let(:element) { TransformTestElement.new } subject { element.send :parse_transform_attribute_and_call } context "when a non-identity matrix is requested" do let(:transform) { 'translate(-5.5)' } it "passes the transform and executes the returned matrix" do expect(element).to receive(:parse_transform_attribute).with(transform).and_return([1, 2, 3, 4, 5, 6]) expect(element).to receive(:add_call_and_enter).with('transformation_matrix', 1, 2, 3, 4, 5, 6) element.attributes['transform'] = transform subject end end context "when an identity matrix is requested" do let(:transform) { 'translate(0)' } it "does not execute any commands" do expect(element).to receive(:parse_transform_attribute).with(transform).and_return([1, 0, 0, 1, 0, 0]) expect(element).not_to receive(:add_call_and_enter) element.attributes['transform'] = transform subject end end context "when transform is blank" do it "does nothing" do expect(element).not_to receive(:parse_transform_attribute) expect(element).not_to receive(:add_call_and_enter) subject end end end