From 475b0dcb66c2a7cdc78022b4dcb7c7fbb17ab309 Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Sat, 30 Dec 2017 22:43:33 -0500 Subject: [PATCH] Docx reader: tests for removing unused anchors. --- test/Tests/Readers/Docx.hs | 4 ++++ test/docx/unused_anchors.docx | Bin 0 -> 13276 bytes test/docx/unused_anchors.native | 3 +++ 3 files changed, 7 insertions(+) create mode 100644 test/docx/unused_anchors.docx create mode 100644 test/docx/unused_anchors.native diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index 5710a388f..19aecd9ec 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -175,6 +175,10 @@ tests = [ testGroup "inlines" "inlines inside of Structured Document Tags" "docx/sdt_elements.docx" "docx/sdt_elements.native" + , testCompare + "remove anchor spans with nothing pointing to them" + "docx/unused_anchors.docx" + "docx/unused_anchors.native" ] , testGroup "blocks" [ testCompare diff --git a/test/docx/unused_anchors.docx b/test/docx/unused_anchors.docx new file mode 100644 index 0000000000000000000000000000000000000000..416488bbfa32810465dc56fe2ed05de40cf714a5 GIT binary patch literal 13276 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 literal 0 HcmV?d00001 diff --git a/test/docx/unused_anchors.native b/test/docx/unused_anchors.native new file mode 100644 index 000000000..334269793 --- /dev/null +++ b/test/docx/unused_anchors.native @@ -0,0 +1,3 @@ +[Header 1 ("my-section",[],[]) [Str "My",Space,Str "Section"] +,Para [Link ("",[],[]) [Str "Here",Space,Str "is",Space,Str "a",Space,Str "link."] ("#Bar","")] +,Para [Span ("Bar",["anchor"],[]) [],Str "Here",Space,Str "is",Space,Str "the",Space,Str "target."]]