Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #include <swmodeltestbase.hxx>
11 :
12 : #include <string>
13 :
14 18 : class Test : public SwModelTestBase
15 : {
16 : public:
17 18 : Test() : SwModelTestBase("/sw/qa/extras/ooxmlexport/data/", "Office Open XML Text") {}
18 :
19 : protected:
20 : /**
21 : * Blacklist handling
22 : */
23 9 : bool mustTestImportOf(const char* filename) const SAL_OVERRIDE {
24 : // If the testcase is stored in some other format, it's pointless to test.
25 9 : return (OString(filename).endsWith(".docx"));
26 : }
27 : };
28 :
29 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_GlowShadowReflection, "TextEffects_Glow_Shadow_Reflection.docx")
30 : {
31 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
32 2 : if (!pXmlDoc)
33 3 : return;
34 :
35 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[1]/w:rPr/w14:glow", "rad").match("63500"));
36 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[1]/w:rPr/w14:glow/w14:srgbClr", "val").match("00B0F0"));
37 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[1]/w:rPr/w14:glow/w14:srgbClr/w14:alpha", "val").match("60000"));
38 :
39 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[2]/w:rPr/w14:glow", "rad").match("228600"));
40 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[2]/w:rPr/w14:glow/w14:schemeClr", "val").match("accent6"));
41 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[2]/w:rPr/w14:glow/w14:schemeClr/w14:alpha", "val").match("60000"));
42 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[2]/w:rPr/w14:glow/w14:schemeClr/w14:satMod", "val").match("175000"));
43 :
44 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "blurRad").match("63500"));
45 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "dist").match("0"));
46 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "dir").match("1800000"));
47 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "sx").match("100000"));
48 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "sy").match("-30000"));
49 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "kx").match("-800400"));
50 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "ky").match("0"));
51 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow", "algn").match("bl"));
52 :
53 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow/w14:schemeClr", "val").match("accent3"));
54 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow/w14:schemeClr/w14:alpha", "val").match("38000"));
55 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[4]/w:rPr/w14:shadow/w14:schemeClr/w14:lumMod", "val").match("75000"));
56 :
57 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "blurRad").match("190500"));
58 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "dist").match("190500"));
59 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "dir").match("3000000"));
60 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "sx").match("100000"));
61 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "sy").match("100000"));
62 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "kx").match("0"));
63 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "ky").match("0"));
64 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow", "algn").match("ctr"));
65 :
66 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow/w14:srgbClr", "val").match("FF0000"));
67 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[5]/w:rPr/w14:shadow/w14:srgbClr/w14:alpha", "val").match("10000"));
68 :
69 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "blurRad").match("6350"));
70 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "stA").match("60000"));
71 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "stPos").match("0"));
72 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "endA").match("900"));
73 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "endPos").match("60000"));
74 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "dist").match("60007"));
75 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "dir").match("5400000"));
76 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "fadeDir").match("5400000"));
77 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "sx").match("100000"));
78 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "sy").match("-100000"));
79 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "kx").match("0"));
80 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "ky").match("0"));
81 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[6]/w:rPr/w14:reflection", "algn").match("bl"));
82 :
83 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "blurRad").match("6350"));
84 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "stA").match("55000"));
85 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "stPos").match("0"));
86 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "endA").match("300"));
87 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "endPos").match("45500"));
88 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "dist").match("0"));
89 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "dir").match("5400000"));
90 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "fadeDir").match("5400000"));
91 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "sx").match("100000"));
92 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "sy").match("-100000"));
93 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "kx").match("0"));
94 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "ky").match("0"));
95 1 : CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:document/w:body/w:p/w:r[7]/w:rPr/w14:reflection", "algn").match("bl"));
96 : }
97 :
98 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_TextOutline, "TextEffects_TextOutline.docx")
99 : {
100 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
101 2 : if (!pXmlDoc)
102 3 : return;
103 :
104 : // Paragraph 1
105 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline", "w", "50800");
106 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline", "cap", "rnd");
107 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline", "cmpd", "dbl");
108 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline", "algn", "ctr");
109 :
110 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[1]", "pos", "70000");
111 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[1]/w14:srgbClr", "val", "92D050");
112 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[1]/w14:srgbClr/w14:alpha", "val", "30000");
113 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[1]/w14:srgbClr/w14:lumMod", "val", "75000");
114 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[1]/w14:srgbClr/w14:lumOff", "val", "25000");
115 :
116 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[2]", "pos", "30000");
117 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr", "val", "accent1");
118 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:alpha", "val", "55000");
119 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumMod", "val", "40000");
120 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumOff", "val", "60000");
121 :
122 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[3]", "pos", "0");
123 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[3]/w14:srgbClr", "val", "0070C0");
124 :
125 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[4]", "pos", "100000");
126 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[4]/w14:schemeClr", "val", "accent4");
127 :
128 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:lin", "ang", "3600000");
129 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:lin", "scaled", "0");
130 :
131 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:prstDash", "val", "dash");
132 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:miter", "lim", "0");
133 :
134 : // Paragraph 2
135 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "w", "9525");
136 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "cap", "rnd");
137 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "cmpd", "sng");
138 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "algn", "ctr");
139 :
140 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:solidFill/w14:srgbClr", "val", "FF0000");
141 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:prstDash", "val", "solid");
142 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:bevel", 1);
143 :
144 : // Paragraph 3
145 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline", "w", "9525");
146 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline", "cap", "rnd");
147 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline", "cmpd", "sng");
148 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline", "algn", "ctr");
149 :
150 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline/w14:noFill", 1);
151 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline/w14:prstDash", "val", "solid");
152 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textOutline/w14:bevel", 1);
153 : }
154 :
155 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_TextFill, "TextEffects_TextFill.docx")
156 : {
157 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
158 2 : if (!pXmlDoc)
159 3 : return;
160 : // Paragraph 1 has no textFill
161 :
162 : // Paragraph 2
163 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textFill/w14:noFill", 1);
164 :
165 : // Paragraph 3
166 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textFill/w14:solidFill", 1);
167 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textFill/w14:solidFill/w14:schemeClr", "val", "accent1");
168 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textFill/w14:solidFill/w14:schemeClr/w14:alpha", "val", "5000");
169 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textFill/w14:solidFill/w14:schemeClr/w14:lumMod", "val", "40000");
170 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:rPr/w14:textFill/w14:solidFill/w14:schemeClr/w14:lumOff", "val", "60000");
171 :
172 : // Paragraph 4
173 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill", 1);
174 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[1]", "pos", "0");
175 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr", "val", "accent1");
176 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:alpha", "val", "5000");
177 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:lumMod", "val", "67000");
178 :
179 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[2]", "pos", "50000");
180 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[2]/w14:srgbClr", "val", "00B0F0");
181 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[2]/w14:srgbClr/w14:alpha", "val", "10000");
182 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[2]/w14:srgbClr/w14:lumMod", "val", "80000");
183 :
184 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[3]", "pos", "100000");
185 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr", "val", "accent1");
186 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:alpha", "val", "15000");
187 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumMod", "val", "60000");
188 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumOff", "val", "40000");
189 :
190 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:lin", "ang", "16200000");
191 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:lin", "scaled", "0");
192 : }
193 :
194 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_Props3d_Ligatures_NumForm_NumSpacing, "TextEffects_Props3d_Ligatures_NumForm_NumSpacing.docx")
195 : {
196 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
197 2 : if (!pXmlDoc)
198 3 : return;
199 :
200 : // Paragraph 1 - w14:props3d
201 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d", 1);
202 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d", "extrusionH", "63500");
203 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d", "contourW", "25400");
204 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d", "prstMaterial", "softEdge");
205 :
206 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelT", "w", "38100");
207 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelT", "h", "38100");
208 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelT", "prst", "relaxedInset");
209 :
210 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelB", "w", "69850");
211 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelB", "h", "38100");
212 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:bevelB", "prst", "cross");
213 :
214 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:extrusionClr", 1);
215 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:extrusionClr/w14:schemeClr", "val", "accent2");
216 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:extrusionClr/w14:schemeClr/w14:lumMod", "val", "20000");
217 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:extrusionClr/w14:schemeClr/w14:lumOff", "val", "80000");
218 :
219 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:contourClr", 1);
220 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:contourClr/w14:srgbClr", "val", "92D050");
221 :
222 : // Paragraph 2 - w14:ligatures
223 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:ligatures", 1);
224 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:ligatures", "val", "standard");
225 :
226 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[3]/w:rPr/w14:ligatures", 1);
227 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[3]/w:rPr/w14:ligatures", "val", "standardContextual");
228 :
229 : // Paragraph 3 - w14:numFurm and w14:numSpacing
230 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/w:rPr/w14:numForm", 1);
231 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/w:rPr/w14:numForm", "val", "lining");
232 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/w:rPr/w14:numSpacing", 1);
233 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/w:rPr/w14:numSpacing", "val", "tabular");
234 :
235 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr/w14:numForm", 1);
236 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr/w14:numForm", "val", "oldStyle");
237 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr/w14:numSpacing", 1);
238 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr/w14:numSpacing", "val", "proportional");
239 : }
240 :
241 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_StylisticSets_CntxtAlts, "TextEffects_StylisticSets_CntxtAlts.docx")
242 : {
243 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
244 2 : if (!pXmlDoc)
245 3 : return;
246 :
247 : // Paragraph 1 - w14:stylisticSets
248 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:stylisticSets/w14:styleSet", 1);
249 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:stylisticSets/w14:styleSet", "id", "4");
250 :
251 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[3]/w:rPr/w14:stylisticSets/w14:styleSet", 1);
252 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[3]/w:rPr/w14:stylisticSets/w14:styleSet", "id", "2");
253 :
254 : // Paragraph 1 - w14:cntxtAlts
255 1 : assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:cntxtAlts", 1);
256 :
257 : }
258 :
259 17 : DECLARE_OOXMLEXPORT_TEST(Test_McIgnorable, "TextEffects_StylisticSets_CntxtAlts.docx")
260 : {
261 2 : xmlDocPtr pXmlDocument = parseExport("word/document.xml");
262 2 : if (!pXmlDocument)
263 1 : return;
264 :
265 1 : assertXPath(pXmlDocument, "/w:document", "Ignorable", "w14 wp14");
266 :
267 1 : xmlDocPtr pXmlStyles = parseExport("word/styles.xml");
268 1 : if (!pXmlStyles)
269 0 : return;
270 :
271 1 : assertXPath(pXmlStyles, "/w:styles", "Ignorable", "w14");
272 : }
273 :
274 17 : DECLARE_OOXMLEXPORT_TEST(Test_CompatSettingsForW14, "TextEffects_StylisticSets_CntxtAlts.docx")
275 : {
276 2 : xmlDocPtr pXmlDoc = parseExport("word/settings.xml");
277 2 : if (!pXmlDoc)
278 3 : return;
279 :
280 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting", 5);
281 :
282 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "name", "compatibilityMode");
283 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "uri", "http://schemas.microsoft.com/office/word");
284 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "val", "15"); // document was made with Word2013 -> 15
285 :
286 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "name", "overrideTableStyleFontSizeAndJustification");
287 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "uri", "http://schemas.microsoft.com/office/word");
288 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "val", "1");
289 :
290 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "name", "enableOpenTypeFeatures");
291 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "uri", "http://schemas.microsoft.com/office/word");
292 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "val", "1");
293 :
294 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "name", "doNotFlipMirrorIndents");
295 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "uri", "http://schemas.microsoft.com/office/word");
296 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "val", "1");
297 :
298 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "name", "differentiateMultirowTableHeaders");
299 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "uri", "http://schemas.microsoft.com/office/word");
300 1 : assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "val", "1");
301 : }
302 :
303 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_Groupshapes, "TextEffects_Groupshapes.docx")
304 : {
305 2 : xmlDocPtr pXmlDoc = parseExport("word/document.xml");
306 2 : if (!pXmlDoc)
307 3 : return;
308 :
309 1 : std::string sPathToWGP = "/w:document/w:body/w:p[1]/w:r[1]/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp";
310 :
311 1 : assertXPath(pXmlDoc, (sPathToWGP + "/wps:wsp").c_str(), 2);
312 :
313 2 : std::string sPathToShapeRunProperties = sPathToWGP + "/wps:wsp[2]/wps:txbx/w:txbxContent/w:p/w:r/w:rPr";
314 :
315 : // Glow
316 2 : std::string sPathGlow = sPathToShapeRunProperties + "/w14:glow";
317 1 : assertXPath(pXmlDoc, (sPathGlow).c_str(), 1);
318 1 : assertXPath(pXmlDoc, (sPathGlow).c_str(), "rad", "127000");
319 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:srgbClr").c_str(), "val", "00B050");
320 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:srgbClr/w14:alpha").c_str(), "val", "60000");
321 :
322 : // Shadow
323 2 : std::string sPathShadow = sPathToShapeRunProperties + "/w14:shadow";
324 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), 1);
325 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "blurRad", "127000");
326 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dist", "787400");
327 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dir", "12720000");
328 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sx", "70000");
329 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sy", "70000");
330 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "kx", "0");
331 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "ky", "0");
332 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "algn", "l");
333 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr").c_str(), "val", "92D050");
334 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr/w14:alpha").c_str(), "val", "40000");
335 :
336 : // Reflection
337 2 : std::string sPathReflection = sPathToShapeRunProperties + "/w14:reflection";
338 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), 1);
339 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "blurRad", "139700");
340 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stA", "47000");
341 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stPos", "0");
342 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endA", "0");
343 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endPos", "85000");
344 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dist", "63500");
345 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dir", "5400000");
346 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "fadeDir", "5400000");
347 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sx", "100000");
348 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sy", "-100000");
349 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "kx", "0");
350 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "ky", "0");
351 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "algn", "bl");
352 :
353 : // TextOutline
354 2 : std::string sPathTextOutline = sPathToShapeRunProperties + "/w14:textOutline";
355 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), 1);
356 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "w", "25400");
357 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cap", "rnd");
358 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cmpd", "sng");
359 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "algn", "ctr");
360 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr").c_str(), "val", "accent2");
361 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:alpha").c_str(), "val", "40000");
362 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
363 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:prstDash").c_str(), "val", "solid");
364 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:round").c_str(), 1);
365 :
366 : // TextFill
367 2 : std::string sPathTextFill = sPathToShapeRunProperties + "/w14:textFill";
368 1 : assertXPath(pXmlDoc, (sPathTextFill).c_str(), 1);
369 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]").c_str(), "pos", "0");
370 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr").c_str(), "val", "accent4");
371 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]").c_str(), "pos", "41000");
372 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr").c_str(), "val", "accent6");
373 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumMod").c_str(), "val", "60000");
374 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumOff").c_str(), "val", "40000");
375 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]").c_str(), "pos", "87000");
376 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr").c_str(), "val", "accent5");
377 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumMod").c_str(), "val", "60000");
378 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumOff").c_str(), "val", "40000");
379 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:lin").c_str(), "ang", "5400000");
380 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:lin").c_str(), "scaled", "0");
381 :
382 : // Props3D
383 2 : std::string sPathProps3D = sPathToShapeRunProperties + "/w14:props3d";
384 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), 1);
385 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "extrusionH", "63500");
386 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "contourW", "12700");
387 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "prstMaterial", "warmMatte");
388 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "w", "38100");
389 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "h", "38100");
390 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "prst", "circle");
391 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr").c_str(), "val", "accent2");
392 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumMod").c_str(), "val", "60000");
393 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumOff").c_str(), "val", "40000");
394 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr").c_str(), "val", "accent4");
395 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
396 :
397 : // Ligatures
398 2 : std::string sPathLigatures = sPathToShapeRunProperties + "/w14:ligatures";
399 1 : assertXPath(pXmlDoc, (sPathLigatures).c_str(), 1);
400 1 : assertXPath(pXmlDoc, (sPathLigatures).c_str(), "val", "standard");
401 :
402 : // NumForm
403 2 : std::string sPathNumForm = sPathToShapeRunProperties + "/w14:numForm";
404 1 : assertXPath(pXmlDoc, (sPathNumForm).c_str(), 1);
405 1 : assertXPath(pXmlDoc, (sPathNumForm).c_str(), "val", "oldStyle");
406 :
407 : // NumSpacing
408 2 : std::string sPathNumSpacing = sPathToShapeRunProperties + "/w14:numSpacing";
409 1 : assertXPath(pXmlDoc, (sPathNumSpacing).c_str(), 1);
410 1 : assertXPath(pXmlDoc, (sPathNumSpacing).c_str(), "val", "tabular");
411 :
412 : // StylisticSets
413 2 : std::string sPathStylisticSets = sPathToShapeRunProperties + "/w14:stylisticSets";
414 1 : assertXPath(pXmlDoc, (sPathStylisticSets).c_str(), 1);
415 2 : assertXPath(pXmlDoc, (sPathStylisticSets+"/w14:styleSet").c_str(), "id", "1");
416 : }
417 :
418 17 : DECLARE_OOXMLEXPORT_TEST(Test_TextEffects_InStyleXml, "TextEffects_InStyle.docx")
419 : {
420 2 : xmlDocPtr pXmlDoc = parseExport("word/styles.xml");
421 2 : if (!pXmlDoc)
422 3 : return;
423 :
424 1 : std::string sPathToCharacterStyle = "/w:styles/w:style[3]";
425 :
426 1 : assertXPath(pXmlDoc, (sPathToCharacterStyle).c_str(), "type", "character");
427 1 : assertXPath(pXmlDoc, (sPathToCharacterStyle).c_str(), "styleId", "TextEffectsStyleChar");
428 1 : assertXPath(pXmlDoc, (sPathToCharacterStyle).c_str(), "customStyle", "1");
429 :
430 : {
431 1 : std::string sPathToRun = sPathToCharacterStyle + "/w:rPr";
432 :
433 : // Glow
434 2 : std::string sPathGlow = sPathToRun + "/w14:glow";
435 1 : assertXPath(pXmlDoc, (sPathGlow).c_str(), "rad", "63500");
436 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr").c_str(), "val", "accent2");
437 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr/w14:alpha").c_str(), "val", "60000");
438 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr/w14:satMod").c_str(), "val", "175000");
439 :
440 : // Shadow
441 2 : std::string sPathShadow = sPathToRun + "/w14:shadow";
442 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "blurRad", "50800");
443 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dist", "38100");
444 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dir", "16200000");
445 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sx", "100000");
446 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sy", "100000");
447 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "kx", "0");
448 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "ky", "0");
449 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "algn", "b");
450 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr").c_str(), "val", "000000");
451 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr/w14:alpha").c_str(), "val", "60000");
452 :
453 : // Reflection
454 2 : std::string sPathReflection = sPathToRun + "/w14:reflection";
455 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "blurRad", "6350");
456 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stA", "50000");
457 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stPos", "0");
458 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endA", "300");
459 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endPos", "50000");
460 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dist", "29997");
461 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dir", "5400000");
462 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "fadeDir", "5400000");
463 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sx", "100000");
464 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sy", "-100000");
465 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "kx", "0");
466 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "ky", "0");
467 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "algn", "bl");
468 :
469 : // TextOutline
470 2 : std::string sPathTextOutline = sPathToRun + "/w14:textOutline";
471 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "w", "25400");
472 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cap", "rnd");
473 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cmpd", "sng");
474 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "algn", "ctr");
475 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr").c_str(), "val", "accent1");
476 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:alpha").c_str(), "val", "40000");
477 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
478 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:prstDash").c_str(), "val", "solid");
479 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:bevel").c_str(), 1);
480 :
481 : // TextFill
482 2 : std::string sPathTextFill = sPathToRun + "/w14:textFill";
483 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]").c_str(), "pos", "0");
484 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr").c_str(), "val", "accent1");
485 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:alpha").c_str(), "val", "10000");
486 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:lumMod").c_str(), "val", "40000");
487 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:lumOff").c_str(), "val", "60000");
488 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]").c_str(), "pos", "46000");
489 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr").c_str(), "val", "accent1");
490 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumMod").c_str(), "val", "95000");
491 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumOff").c_str(), "val", "5000");
492 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]").c_str(), "pos", "100000");
493 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr").c_str(), "val", "accent1");
494 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumMod").c_str(), "val", "60000");
495 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path").c_str(), "path", "circle");
496 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "b", "-30000");
497 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "r", "50000");
498 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "t", "130000");
499 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "l", "50000");
500 :
501 : // Props3D
502 2 : std::string sPathProps3D = sPathToRun + "/w14:props3d";
503 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "extrusionH", "57150");
504 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "contourW", "12700");
505 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "prstMaterial", "metal");
506 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "w", "38100");
507 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "h", "38100");
508 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "prst", "angle");
509 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "w", "69850");
510 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "h", "69850");
511 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "prst", "divot");
512 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr").c_str(), "val", "accent1");
513 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumMod").c_str(), "val", "20000");
514 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumOff").c_str(), "val", "80000");
515 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr").c_str(), "val", "accent1");
516 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
517 :
518 : // Ligatures
519 2 : std::string sPathLigatures = sPathToRun + "/w14:ligatures";
520 1 : assertXPath(pXmlDoc, (sPathLigatures).c_str(), "val", "standard");
521 :
522 : // NumForm
523 2 : std::string sPathNumForm = sPathToRun + "/w14:numForm";
524 1 : assertXPath(pXmlDoc, (sPathNumForm).c_str(), "val", "lining");
525 :
526 : // NumSpacing
527 2 : std::string sPathNumSpacing = sPathToRun + "/w14:numSpacing";
528 1 : assertXPath(pXmlDoc, (sPathNumSpacing).c_str(), "val", "proportional");
529 :
530 : // StylisticSets
531 2 : std::string sPathStylisticSets = sPathToRun + "/w14:stylisticSets";
532 2 : assertXPath(pXmlDoc, (sPathStylisticSets+"/w14:styleSet").c_str(), "id", "1");
533 : }
534 :
535 2 : std::string sPathToParagraphStyle = "/w:styles/w:style[9]";
536 :
537 1 : assertXPath(pXmlDoc, (sPathToParagraphStyle).c_str(), "type", "paragraph");
538 1 : assertXPath(pXmlDoc, (sPathToParagraphStyle).c_str(), "styleId", "TextEffectsStyle");
539 1 : assertXPath(pXmlDoc, (sPathToParagraphStyle).c_str(), "customStyle", "1");
540 :
541 : {
542 1 : std::string sPathToRun = sPathToParagraphStyle + "/w:rPr";
543 :
544 : // Glow
545 2 : std::string sPathGlow = sPathToRun + "/w14:glow";
546 1 : assertXPath(pXmlDoc, (sPathGlow).c_str(), "rad", "63500");
547 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr").c_str(), "val", "accent2");
548 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr/w14:alpha").c_str(), "val", "60000");
549 1 : assertXPath(pXmlDoc, (sPathGlow+"/w14:schemeClr/w14:satMod").c_str(), "val", "175000");
550 :
551 : // Shadow
552 2 : std::string sPathShadow = sPathToRun + "/w14:shadow";
553 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "blurRad", "50800");
554 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dist", "38100");
555 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "dir", "16200000");
556 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sx", "100000");
557 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "sy", "100000");
558 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "kx", "0");
559 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "ky", "0");
560 1 : assertXPath(pXmlDoc, (sPathShadow).c_str(), "algn", "b");
561 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr").c_str(), "val", "000000");
562 1 : assertXPath(pXmlDoc, (sPathShadow+"/w14:srgbClr/w14:alpha").c_str(), "val", "60000");
563 :
564 : // Reflection
565 2 : std::string sPathReflection = sPathToRun + "/w14:reflection";
566 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "blurRad", "6350");
567 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stA", "50000");
568 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "stPos", "0");
569 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endA", "300");
570 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "endPos", "50000");
571 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dist", "29997");
572 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "dir", "5400000");
573 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "fadeDir", "5400000");
574 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sx", "100000");
575 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "sy", "-100000");
576 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "kx", "0");
577 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "ky", "0");
578 1 : assertXPath(pXmlDoc, (sPathReflection).c_str(), "algn", "bl");
579 :
580 : // TextOutline
581 2 : std::string sPathTextOutline = sPathToRun + "/w14:textOutline";
582 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "w", "25400");
583 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cap", "rnd");
584 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "cmpd", "sng");
585 1 : assertXPath(pXmlDoc, (sPathTextOutline).c_str(), "algn", "ctr");
586 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr").c_str(), "val", "accent1");
587 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:alpha").c_str(), "val", "40000");
588 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:solidFill/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
589 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:prstDash").c_str(), "val", "solid");
590 1 : assertXPath(pXmlDoc, (sPathTextOutline+"/w14:bevel").c_str(), 1);
591 :
592 : // TextFill
593 2 : std::string sPathTextFill = sPathToRun + "/w14:textFill";
594 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]").c_str(), "pos", "0");
595 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr").c_str(), "val", "accent1");
596 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:alpha").c_str(), "val", "10000");
597 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:lumMod").c_str(), "val", "40000");
598 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[1]/w14:schemeClr/w14:lumOff").c_str(), "val", "60000");
599 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]").c_str(), "pos", "46000");
600 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr").c_str(), "val", "accent1");
601 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumMod").c_str(), "val", "95000");
602 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[2]/w14:schemeClr/w14:lumOff").c_str(), "val", "5000");
603 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]").c_str(), "pos", "100000");
604 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr").c_str(), "val", "accent1");
605 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:gsLst/w14:gs[3]/w14:schemeClr/w14:lumMod").c_str(), "val", "60000");
606 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path").c_str(), "path", "circle");
607 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "b", "-30000");
608 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "r", "50000");
609 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "t", "130000");
610 1 : assertXPath(pXmlDoc, (sPathTextFill+"/w14:gradFill/w14:path/w14:fillToRect").c_str(), "l", "50000");
611 :
612 : // Props3D
613 2 : std::string sPathProps3D = sPathToRun + "/w14:props3d";
614 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "extrusionH", "57150");
615 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "contourW", "12700");
616 1 : assertXPath(pXmlDoc, (sPathProps3D).c_str(), "prstMaterial", "metal");
617 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "w", "38100");
618 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "h", "38100");
619 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelT").c_str(), "prst", "angle");
620 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "w", "69850");
621 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "h", "69850");
622 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:bevelB").c_str(), "prst", "divot");
623 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr").c_str(), "val", "accent1");
624 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumMod").c_str(), "val", "20000");
625 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:extrusionClr/w14:schemeClr/w14:lumOff").c_str(), "val", "80000");
626 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr").c_str(), "val", "accent1");
627 1 : assertXPath(pXmlDoc, (sPathProps3D+"/w14:contourClr/w14:schemeClr/w14:lumMod").c_str(), "val", "75000");
628 :
629 : // Ligatures
630 2 : std::string sPathLigatures = sPathToRun + "/w14:ligatures";
631 1 : assertXPath(pXmlDoc, (sPathLigatures).c_str(), "val", "standard");
632 :
633 : // NumForm
634 2 : std::string sPathNumForm = sPathToRun + "/w14:numForm";
635 1 : assertXPath(pXmlDoc, (sPathNumForm).c_str(), "val", "lining");
636 :
637 : // NumSpacing
638 2 : std::string sPathNumSpacing = sPathToRun + "/w14:numSpacing";
639 1 : assertXPath(pXmlDoc, (sPathNumSpacing).c_str(), "val", "proportional");
640 :
641 : // StylisticSets
642 2 : std::string sPathStylisticSets = sPathToRun + "/w14:stylisticSets";
643 2 : assertXPath(pXmlDoc, (sPathStylisticSets+"/w14:styleSet").c_str(), "id", "1");
644 1 : }
645 : }
646 :
647 :
648 4 : CPPUNIT_PLUGIN_IMPLEMENT();
649 :
650 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|