From fcbb37c8f3b28ae0889041030f37e7c730751bcd Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Mon, 29 Aug 2016 08:35:59 -0400 Subject: [PATCH] Docx reader: test for nested anchor spans in header This ensures that anchor spans in header with content (or with other anchor spans inside) will resolve to links to a header id properly. --- tests/Tests/Readers/Docx.hs | 4 ++++ tests/docx/nested_anchors_in_header.docx | Bin 0 -> 17535 bytes tests/docx/nested_anchors_in_header.native | 10 ++++++++++ 3 files changed, 14 insertions(+) create mode 100644 tests/docx/nested_anchors_in_header.docx create mode 100644 tests/docx/nested_anchors_in_header.native diff --git a/tests/Tests/Readers/Docx.hs b/tests/Tests/Readers/Docx.hs index a9a9094f1..8ae0532e4 100644 --- a/tests/Tests/Readers/Docx.hs +++ b/tests/Tests/Readers/Docx.hs @@ -181,6 +181,10 @@ tests = [ testGroup "inlines" "headers already having auto identifiers" "docx/already_auto_ident.docx" "docx/already_auto_ident.native" + , testCompare + "nested anchor spans in header" + "docx/nested_anchors_in_header.docx" + "docx/nested_anchors_in_header.native" , testCompare "single numbered item not made into list" "docx/numbered_header.docx" diff --git a/tests/docx/nested_anchors_in_header.docx b/tests/docx/nested_anchors_in_header.docx new file mode 100644 index 0000000000000000000000000000000000000000..ddebb7ff4c6acc911abc6dead912da95a559b149 GIT binary patch literal 17535 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 H^V9zWff~i4 literal 0 HcmV?d00001 diff --git a/tests/docx/nested_anchors_in_header.native b/tests/docx/nested_anchors_in_header.native new file mode 100644 index 000000000..e2b6eb1ef --- /dev/null +++ b/tests/docx/nested_anchors_in_header.native @@ -0,0 +1,10 @@ +[Header 1 ("short-instructions",[],[]) [Str "Short",Space,Str "instructions"] +,Para [Link ("",[],[]) [Str "Open",Space,Str "remote",Space,Str "folder"] ("#remote-folder-or-longlonglonglonglong-file-with-manymanymanymany-letters-inside-opening","")] +,Para [Str "Do",Space,Str "staff"] +,Para [Link ("",[],[]) [Str "Close",Space,Str "remote",Space,Str "folder"] ("#remote-folder-or-longlonglonglonglong-file-with-manymanymanymany-letters-inside-closing","")] +,Header 1 ("some-instructions",[],[]) [Str "Some",Space,Str "instructions"] +,Para [Str "Lines"] +,Header 2 ("remote-folder-or-longlonglonglonglong-file-with-manymanymanymany-letters-inside-opening",[],[]) [Str "Remote",Space,Str "folder",Space,Str "or",Space,Str "longlonglonglonglong",Space,Str "file",Space,Str "with",Space,Str "manymanymanymany",Space,Str "letters",Space,Str "inside",Space,Str "opening"] +,Para [Str "Open",Space,Str "folder"] +,Header 2 ("remote-folder-or-longlonglonglonglong-file-with-manymanymanymany-letters-inside-closing",[],[]) [Str "Remote",Space,Str "folder",Space,Str "or",Space,Str "longlonglonglonglong",Space,Str "file",Space,Str "with",Space,Str "manymanymanymany",Space,Str "letters",Space,Str "inside",Space,Str "closing"] +,Para [Str "Close",Space,Str "folder"]]