From d71165c8e2b348ee65c8d92d6ca5f8a24b1cfa92 Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal Date: Wed, 27 Dec 2017 10:01:45 -0500 Subject: [PATCH] Docx reader: add tests for structured document tags unwrapping. --- test/Tests/Readers/Docx.hs | 4 ++++ test/docx/sdt_elements.docx | Bin 0 -> 29409 bytes test/docx/sdt_elements.native | 10 ++++++++++ 3 files changed, 14 insertions(+) create mode 100644 test/docx/sdt_elements.docx create mode 100644 test/docx/sdt_elements.native diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index 6d91c36ae..5710a388f 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -171,6 +171,10 @@ tests = [ testGroup "inlines" "inline code in subscript and superscript" "docx/verbatim_subsuper.docx" "docx/verbatim_subsuper.native" + , testCompare + "inlines inside of Structured Document Tags" + "docx/sdt_elements.docx" + "docx/sdt_elements.native" ] , testGroup "blocks" [ testCompare diff --git a/test/docx/sdt_elements.docx b/test/docx/sdt_elements.docx new file mode 100644 index 0000000000000000000000000000000000000000..9356a6b4024215e66cb78f2ced6d02aa10a51bd8 GIT binary patch literal 29409 zcmeFYWmF~2vNpII8h3YhcZbH^-QC^Y-QC^YoyMKU-Q67;Xxu*DbI!eU?wogKt(m{y zS8HYNO;u)Ws-B2^A|s;YB!Ryp13&@b004jhV89A9vHcAIc!350kO1I7nu4}APR2G) zx=QYL#*W&wZq`=#1>b?l^8i3!m%*v;%s(x4;PWOPj#;#D*~t! zw&Z49!mFbrrxOh%;Z|gICm#`u&z^X*rsXckU_eKfZ;s|G}hayPg^g>D?@Wzu7a(qFy`WF93Cb$*l_3 z?EoPz@qIQhI@JL$iU#p=50Giy#tmcFhxW^Mpz8;w?v4?;$#kO=!vT8cGu()#-h}$L z6*X9=dL^vp&lnfuOZG{45(M_5n={eVrCxZ^gM@p++y4Rf;%e;Sx%U#g!`t?8QHqK> zjK3oOC_rt^r(}M|%lWWn$-WTYu|yX$- yYw@B+>VX2scw+^#dGjQDrgFp~8M7gi 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