All checks were successful
CI Pipeline / build (pull_request) Successful in 12s
Adds these new styling and formatting nodes * strike * highlight * linebreaks * pagebreaks * Hyperlinks
55 lines
1.3 KiB
Ruby
55 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
class PageBreakTest < Minitest::Test
|
|
include NotareTestHelpers
|
|
|
|
def test_page_break
|
|
xml = create_doc_and_read_xml do |doc|
|
|
doc.p "First page content"
|
|
doc.page_break
|
|
doc.p "Second page content"
|
|
end
|
|
|
|
assert_includes xml, "First page content"
|
|
assert_includes xml, "Second page content"
|
|
assert_includes xml, '<w:br w:type="page"/>'
|
|
end
|
|
|
|
def test_multiple_page_breaks
|
|
xml = create_doc_and_read_xml do |doc|
|
|
doc.p "Page 1"
|
|
doc.page_break
|
|
doc.p "Page 2"
|
|
doc.page_break
|
|
doc.p "Page 3"
|
|
end
|
|
|
|
assert_equal 2, xml.scan('<w:br w:type="page"/>').count
|
|
end
|
|
|
|
def test_page_break_between_different_elements
|
|
xml = create_doc_and_read_xml do |doc|
|
|
doc.h1 "Chapter 1"
|
|
doc.p "Some content"
|
|
doc.page_break
|
|
doc.h1 "Chapter 2"
|
|
doc.ul do
|
|
doc.li "Item 1"
|
|
end
|
|
end
|
|
|
|
assert_includes xml, "Chapter 1"
|
|
assert_includes xml, "Chapter 2"
|
|
assert_includes xml, '<w:br w:type="page"/>'
|
|
end
|
|
|
|
def test_page_break_renders_in_own_paragraph
|
|
xml = create_doc_and_read_xml(&:page_break)
|
|
|
|
# Page break should be wrapped in its own paragraph
|
|
assert_match(%r{<w:p>\s*<w:r>\s*<w:br w:type="page"/>\s*</w:r>\s*</w:p>}m, xml)
|
|
end
|
|
end
|