test/hexapdf/content/test_canvas.rb in hexapdf-0.3.0 vs test/hexapdf/content/test_canvas.rb in hexapdf-0.4.0
- old
+ new
@@ -1078,10 +1078,25 @@
[:show_text_with_positioning, [["Hal"]]],
])
end
end
+ describe "show_glyphs_only" do
+ it "serializes correctly" do
+ @canvas.font("Times", size: 20)
+ font = @canvas.font
+ @canvas.show_glyphs_only(font.decode_utf8("Hal lo").insert(2, -35))
+ assert_equal(0, @canvas.text_cursor[0])
+ assert_equal(0, @canvas.text_cursor[1])
+ assert_operators(@canvas.contents, [[:set_font_and_size, [:F1, 20]],
+ [:set_leading, [24]],
+ [:begin_text],
+ [:show_text_with_positioning, [["Ha", -35, "l lo"]]],
+ ])
+ end
+ end
+
describe "text" do
it "sets the text cursor position if instructed" do
@canvas.font("Times", size: 10)
@canvas.text("Hallo", at: [100, 100])
assert_operators(@canvas.contents, [[:set_font_and_size, [:F1, 10]],
@@ -1106,8 +1121,69 @@
[:show_text_with_positioning, [["H"]]], [:move_text_next_line],
[:show_text_with_positioning, [["H"]]], [:move_text_next_line],
[:show_text_with_positioning, [["H"]]], [:move_text_next_line],
[:show_text_with_positioning, [["H"]]],
])
+ end
+ end
+
+ describe "marked_content_point" do
+ it "invokes the operator implementation" do
+ assert_operator_invoked(:MP, :tag) { @canvas.marked_content_point(:tag) }
+ assert_operator_invoked(:DP, :tag, :P1) do
+ @canvas.marked_content_point(:tag, property_list: {key: 5})
+ end
+ end
+
+ it "is serialized correctly" do
+ @canvas.marked_content_point(:tag)
+ assert_operators(@canvas.contents, [[:designate_marked_content_point, [:tag]]])
+ end
+
+ it "fails if invoked while in an unsupported graphics objects" do
+ assert_raises_in_graphics_object(:path, :clipping_path) { @canvas.marked_content_point(:tag) }
+ end
+ end
+
+ describe "marked_content_sequence" do
+ it "invokes the operator implementation" do
+ assert_operator_invoked(:BMC, :tag) { @canvas.marked_content_sequence(:tag) }
+ assert_operator_invoked(:BDC, :tag, :P1) do
+ @canvas.marked_content_sequence(:tag, property_list: {key: 5})
+ end
+ end
+
+ it "is serialized correctly when no block is used" do
+ @canvas.marked_content_sequence(:tag)
+ assert_operators(@canvas.contents, [[:begin_marked_content, [:tag]]])
+ end
+
+ it "is serialized correctly when a block is used" do
+ @canvas.marked_content_sequence(:tag, property_list: {key: 5}) { }
+ assert_operators(@canvas.contents, [[:begin_marked_content_with_property_list, [:tag, :P1]],
+ [:end_marked_content]])
+ end
+
+ it "fails if invoked while in an unsupported graphics objects" do
+ assert_raises_in_graphics_object(:path, :clipping_path) do
+ @canvas.marked_content_sequence(:tag)
+ end
+ end
+ end
+
+ describe "end_marked_content_sequence" do
+ it "invokes the operator implementation" do
+ assert_operator_invoked(:EMC) { @canvas.end_marked_content_sequence }
+ end
+
+ it "is serialized correctly" do
+ @canvas.end_marked_content_sequence
+ assert_operators(@page.contents, [[:end_marked_content]])
+ end
+
+ 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
end