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