diff --git a/spec/data/samples/basic.rb.txt b/spec/data/samples/basic.rb.txt index 9c235b0..1155121 100644 --- a/spec/data/samples/basic.rb.txt +++ b/spec/data/samples/basic.rb.txt @@ -202,12 +202,18 @@ cairo: save([]) cairo: translate([620, 218]) cairo: rotate([0]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([620, 218]) cairo: rotate([0]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) surface: write_to_png(["_output/basic_00.png"]) diff --git a/spec/data/samples/custom_config.rb.txt b/spec/data/samples/custom_config.rb.txt index 94de5a7..ca9df7b 100644 --- a/spec/data/samples/custom_config.rb.txt +++ b/spec/data/samples/custom_config.rb.txt @@ -38,6 +38,9 @@ cairo: save([]) cairo: translate([620, 218]) cairo: rotate([0]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) surface: write_to_png(["_output/custom-config_00.png"]) diff --git a/spec/data/samples/load_images.rb.txt b/spec/data/samples/load_images.rb.txt index aad79b7..41b9334 100644 --- a/spec/data/samples/load_images.rb.txt +++ b/spec/data/samples/load_images.rb.txt @@ -28,12 +28,18 @@ cairo: save([]) cairo: translate([620, 218]) cairo: rotate([0]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([50, 50]) cairo: rotate([0]) cairo: scale([1.953125, 1.953125]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) @@ -51,12 +57,18 @@ cairo: save([]) cairo: translate([200, 350]) cairo: rotate([0]) cairo: scale([0.2734375, 0.2734375]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([200, 390]) cairo: rotate([0]) cairo: scale([0.2734375, 0.2734375]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) @@ -122,27 +134,48 @@ cairo: set_source([ImageSurface, 500, 415]) cairo: paint([1.0]) cairo: restore([]) cairo: save([]) +cairo: translate([300, 500]) +cairo: rotate([0]) +cairo: scale([0.5, 0.5]) +cairo: rounded_rectangle([0, 0, 64.0, 64.0, 0, 0]) +cairo: clip([]) +cairo: translate([-32, -32]) +cairo: render_rsvg_handle([RSVG::Handle, nil]) +cairo: restore([]) +cairo: save([]) cairo: translate([50, 350]) cairo: rotate([0]) cairo: scale([0.5859375, 0.5859375]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"]) cairo: restore([]) cairo: save([]) cairo: translate([50, 450]) cairo: rotate([0]) cairo: scale([0.9765625, 0.9765625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, "#backdrop"]) cairo: restore([]) cairo: save([]) cairo: translate([50, 600]) cairo: rotate([0]) cairo: scale([0.5859375, 0.5859375]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([0, 0]) cairo: rotate([0]) cairo: scale([0.8021390374331551, 0.8032128514056225]) +cairo: rounded_rectangle([0, 0, 748.0, 747.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, "#thing"]) cairo: restore([]) cairo: save([]) @@ -190,12 +223,18 @@ cairo: save([]) cairo: translate([300, 900]) cairo: rotate([1.4707963267948965]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([500, 600]) cairo: rotate([0]) cairo: scale([0.390625, 0.390625]) +cairo: rounded_rectangle([0, 0, 512.0, 512.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: set_source_color(["#00ff00"]) cairo: mask([MockDouble, 0, 0]) @@ -204,6 +243,9 @@ cairo: save([]) cairo: translate([500, 800]) cairo: rotate([0]) cairo: scale([0.390625, 0.390625]) +cairo: rounded_rectangle([0, 0, 512.0, 512.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: set_source([LinearPattern]) cairo: mask([MockDouble, 0, 0]) @@ -223,6 +265,9 @@ cairo: save([]) cairo: translate([0, 0]) cairo: rotate([0]) cairo: scale([6.4453125, 8.7890625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, "#"]) cairo: restore([]) surface: write_to_png(["_output/load_images_00.png"]) diff --git a/spec/data/samples/ranges.rb.txt b/spec/data/samples/ranges.rb.txt index e617302..3cb7025 100644 --- a/spec/data/samples/ranges.rb.txt +++ b/spec/data/samples/ranges.rb.txt @@ -404,18 +404,27 @@ cairo: save([]) cairo: translate([150, 55]) cairo: rotate([0]) cairo: scale([0.078125, 0.078125]) +cairo: rounded_rectangle([0, 0, 512.0, 512.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([150, 55]) cairo: rotate([0]) cairo: scale([0.078125, 0.078125]) +cairo: rounded_rectangle([0, 0, 512.0, 512.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([150, 97]) cairo: rotate([0]) cairo: scale([0.078125, 0.078125]) +cairo: rounded_rectangle([0, 0, 512.0, 512.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) diff --git a/spec/data/samples/showcase.rb.txt b/spec/data/samples/showcase.rb.txt index a437681..f58489b 100644 --- a/spec/data/samples/showcase.rb.txt +++ b/spec/data/samples/showcase.rb.txt @@ -134,24 +134,36 @@ cairo: save([]) cairo: translate([162, 500]) cairo: rotate([0]) cairo: scale([3.90625, 3.90625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([162, 500]) cairo: rotate([0]) cairo: scale([3.90625, 3.90625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([162, 500]) cairo: rotate([0]) cairo: scale([3.90625, 3.90625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) cairo: translate([162, 500]) cairo: rotate([0]) cairo: scale([3.90625, 3.90625]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: set_source_color(["white"]) diff --git a/spec/data/samples/tgc_proofs.rb.txt b/spec/data/samples/tgc_proofs.rb.txt index bccaddb..5081c46 100644 --- a/spec/data/samples/tgc_proofs.rb.txt +++ b/spec/data/samples/tgc_proofs.rb.txt @@ -72,6 +72,9 @@ cairo: save([]) cairo: translate([620, 218]) cairo: rotate([0]) cairo: scale([1.0, 1.0]) +cairo: rounded_rectangle([0, 0, 128.0, 128.0, 0, 0]) +cairo: clip([]) +cairo: translate([0, 0]) cairo: render_rsvg_handle([RSVG::Handle, nil]) cairo: restore([]) cairo: save([]) diff --git a/spec/graphics/graphics_images_spec.rb b/spec/graphics/graphics_images_spec.rb deleted file mode 100644 index 84d0d27..0000000 --- a/spec/graphics/graphics_images_spec.rb +++ /dev/null @@ -1,94 +0,0 @@ -require 'spec_helper' -require 'squib' -require 'ostruct' - -describe Squib::Card do - - let(:deck) { double(Squib::Deck) } - let(:context) { double(Cairo::Context) } - let(:svg) { double(RSVG::Handle) } - let(:png) { double(Cairo::ImageSurface) } - let(:box) { OpenStruct.new({x: 37, y: 38, width: :native, height: :native})} - let(:paint) { OpenStruct.new({alpha: 0.9, blend: :none, mask: '' })} - let(:trans) { OpenStruct.new({angle: 0.0})} - - before(:each) do - allow(Cairo::Context).to receive(:new).and_return(context) - allow(Cairo::ImageSurface).to receive(:from_png).and_return(png) - allow(Cairo::ImageSurface).to receive(:new).and_return(png) - allow(RSVG::Handle).to receive(:new_from_data).and_return(svg) - allow(deck).to receive(:dir).and_return('_output') - allow(deck).to receive(:count_format).and_return('%02d') - allow(deck).to receive(:prefix).and_return('card_') - allow(deck).to receive(:antialias).and_return('subpixel') - allow(deck).to receive(:backend).and_return('memory') - end - - context '#png' do - it 'makes all the expected calls on a smoke test' do - expect(context).to receive(:antialias=).with('subpixel') - expect(context).to receive(:save).once - expect(context).to receive(:translate).with(-37, -38).once - expect(context).to receive(:rotate).with(0.0).once - expect(context).to receive(:translate).with(37, 38).once - expect(context).to receive(:set_source).with(png, 37, 38).once - expect(context).to receive(:paint).with(0.9).once - expect(context).to receive(:restore).once - - card = Squib::Card.new(deck, 100, 150) - # png(file, x, y, alpha, blend, angle) - card.png('foo.png', box, paint, trans) - end - - it 'sets blend when needed' do - context.as_null_object - expect(context).to receive(:operator=).with(:overlay).once - - card = Squib::Card.new(deck, 100, 150) - paint.blend = :overlay - card.png('foo.png', box, paint, trans) - end - end - - context '#svg' do - let(:svg_args) { OpenStruct.new({data: '', id: 'id'}) } - - it 'makes all the expected calls on a smoke test' do - expect(svg).to receive(:width).and_return(100).twice - expect(svg).to receive(:height).and_return(100).twice - expect(context).to receive(:antialias=).with('subpixel').once - expect(context).to receive(:save).once - expect(context).to receive(:rotate).with(0.0).once - expect(context).to receive(:translate).with(37, 38).once - expect(context).to receive(:scale).with(1.0, 1.0).once - expect(context).to receive(:render_rsvg_handle).with(svg, 'id').once - expect(context).to receive(:restore).once - - card = Squib::Card.new(deck, 100, 150) - card.svg(nil, svg_args, box, paint, trans) - end - - it 'sets blend when needed' do - context.as_null_object - svg.as_null_object - expect(context).to receive(:operator=).with(:overlay).once - - card = Squib::Card.new(deck, 100, 150) - paint.blend = :overlay - card.svg(nil, svg_args, box, paint, trans) - end - - it 'sets width & height when needed' do - context.as_null_object - expect(svg).to receive(:width).and_return(100).once - expect(svg).to receive(:height).and_return(100).once - expect(context).to receive(:scale).with(2.0, 3.0).once - - card = Squib::Card.new(deck, 100, 150) - box.width = 200 - box.height = 300 - card.svg(nil, svg_args, box, paint, trans) - end - end - -end diff --git a/spec/samples/expected/load_images_00.png b/spec/samples/expected/load_images_00.png index d3ac7a0..5b9c58c 100644 Binary files a/spec/samples/expected/load_images_00.png and b/spec/samples/expected/load_images_00.png differ diff --git a/spec/samples/samples_regression_spec.rb b/spec/samples/samples_regression_spec.rb index 590c10c..e21fee5 100644 --- a/spec/samples/samples_regression_spec.rb +++ b/spec/samples/samples_regression_spec.rb @@ -73,7 +73,7 @@ describe "Squib samples" do log = StringIO.new mock_cairo(log) load sample - overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log + # overwrite_sample(sample, log) # Use TEMPORARILY once happy with the new sample log test_file_str = File.open(sample_regression_file(sample), 'r:UTF-8').read expect(log.string).to eq(test_file_str) end