test/hexapdf/content/test_canvas.rb in hexapdf-0.34.1 vs test/hexapdf/content/test_canvas.rb in hexapdf-0.35.0

- old
+ new

@@ -754,10 +754,32 @@ @canvas.move_to(10, 10) assert_equal(@canvas, @canvas.line_with_rounded_corner(30, 30, 30, 50, in_radius: 10)) end end + describe "form" do + it "uses the context dimensions if none are given" do + form = @canvas.form + assert_equal(@canvas.context.box.value, form.box.value) + end + + it "uses the provided dimensions" do + form = @canvas.form(300, 200) + assert_equal([0, 0, 300, 200], form.box.value) + end + + it "yields the canvas for defining the form's content" do + yielded_canvas = nil + form = @canvas.form {|canvas| yielded_canvas = canvas } + assert_equal(form.canvas, yielded_canvas) + end + + it "raises an ArgumentError if only one of width/height is provided" do + assert_raises(ArgumentError) { @canvas.form(20) } + end + end + describe "graphic_object" do it "returns a new graphic object given a name" do arc = @canvas.graphic_object(:arc) assert_respond_to(arc, :draw) arc1 = @canvas.graphic_object(:arc) @@ -1324,9 +1346,24 @@ ocg = @doc.optional_content.add_ocg('Test') @canvas.optional_content('Test', use_existing_ocg: false) pl_item = @page.resources.property_list(:P1) refute_equal(ocg, pl_item) assert_equal(@doc.optional_content.ocgs.last, pl_item) + end + end + + describe "composer" do + it "creates a CanvasComposer, yields it and returns it" do + comp1 = nil + comp2 = @canvas.composer {|composer| comp1 = composer } + assert_kind_of(HexaPDF::Content::CanvasComposer, comp1) + assert_same(comp1, comp2) + assert_same(@canvas, comp1.canvas) + end + + it "passes on the margin argument" do + comp = @canvas.composer(margin: 20) + assert_equal(20, comp.frame.x) end end describe "color_from_specification "do it "accepts a color string" do