test/hexapdf/content/test_canvas.rb in hexapdf-0.33.0 vs test/hexapdf/content/test_canvas.rb in hexapdf-0.34.0
- old
+ new
@@ -69,10 +69,17 @@
it "returns the resources of the context object" do
assert_equal(@page.resources, @canvas.resources)
end
end
+ describe "pos" do
+ it "returns the transformed position" do
+ @canvas.translate(9, 4)
+ assert_equal([10, 5], @canvas.pos(1, 1))
+ end
+ end
+
describe "save_graphics_state" do
it "invokes the operator implementation" do
assert_operator_invoked(:q) { @canvas.save_graphics_state }
end
@@ -1275,9 +1282,51 @@
it "fails if invoked while in an unsupported graphics objects" do
assert_raises_in_graphics_object(:path, :clipping_path) do
@canvas.end_marked_content_sequence
end
+ end
+ end
+
+ describe "optional_content" do
+ it "invokes the marked-sequence operator implementation" do
+ assert_operator_invoked(:BDC, :OC, :P1) { @canvas.optional_content('Test') }
+ end
+
+ it "is serialized correctly when no block is used" do
+ @canvas.optional_content('Test')
+ assert_operators(@canvas.contents, [[:begin_marked_content_with_property_list, [:OC, :P1]]])
+ end
+
+ it "is serialized correctly when a block is used" do
+ @canvas.optional_content('Test') {}
+ assert_operators(@canvas.contents, [[:begin_marked_content_with_property_list, [:OC, :P1]],
+ [:end_marked_content]])
+ end
+
+ it "uses the provided OCG dictionary" do
+ ocg = @doc.optional_content.add_ocg('Test')
+ @canvas.optional_content(ocg)
+ assert_equal(ocg, @page.resources.property_list(:P1))
+ end
+
+ it "uses an existing OCG specified by name" do
+ ocg = @doc.optional_content.add_ocg('Test')
+ @canvas.optional_content('Test')
+ assert_equal(ocg, @page.resources.property_list(:P1))
+ end
+
+ it "creates an OCG if the named one doesn't yet exist" do
+ @canvas.optional_content('Test')
+ assert_equal(@doc.optional_content.ocg('Test'), @page.resources.property_list(:P1))
+ end
+
+ it "always creates a new OCG if use_existing_ocg is false" do
+ 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 "color_from_specification "do
it "accepts a color string" do