oox: add case-insensitive hex color comparison to the tests.
Change-Id: I1d0f6d5e21a27d45f1a8d3a837ff6094a9e0cf34 Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192071 Tested-by: Jenkins
This commit is contained in:
@@ -98,6 +98,17 @@ protected:
|
||||
{
|
||||
assertXPath(pXmlDoc, sXPath.getStr(), pAttribute, rExpectedValue);
|
||||
}
|
||||
/**
|
||||
* Assert that pXPath exists, returns exactly one node, and the pXPath's attribute's value
|
||||
* is ASCII case-insensively equals to the rExpected value.
|
||||
*/
|
||||
void assertXPathInsensitive(const xmlDocUniquePtr& pXmlDoc, const char* pXPath, const char* pAttribute,
|
||||
std::u16string_view rExpectedValue);
|
||||
void assertXPathInsensitive(const xmlDocUniquePtr& pXmlDoc, const OString& sXPath, const char* pAttribute,
|
||||
std::u16string_view rExpectedValue)
|
||||
{
|
||||
assertXPathInsensitive(pXmlDoc, sXPath.getStr(), pAttribute, rExpectedValue);
|
||||
}
|
||||
void assertXPathAttrs(const xmlDocUniquePtr& pXmlDoc, const char* pXPath,
|
||||
const std::vector<std::pair<const char*, std::u16string_view>>& aPairVector);
|
||||
void assertXPathAttrs(const xmlDocUniquePtr& pXmlDoc, const OString& sXPath,
|
||||
|
||||
+12
-12
@@ -37,11 +37,11 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testFontworkColorGradient)
|
||||
static constexpr OString sPath = "//a:r/a:rPr/a:gradFill/a:gsLst/"_ostr;
|
||||
assertXPath(pXmlDoc, sPath + "a:gs", 3);
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[1]", "pos", u"0");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", u"ff1493");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", u"ff1493");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[2]", "pos", u"30000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[2]/a:srgbClr", "val", u"ffff00");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[2]/a:srgbClr", "val", u"ffff00");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[3]", "pos", u"100000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[3]/a:srgbClr", "val", u"00ffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[3]/a:srgbClr", "val", u"00ffff");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(TestMCGR, testFontworkColorGradientWord)
|
||||
@@ -60,11 +60,11 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testFontworkColorGradientWord)
|
||||
static constexpr OString sPath = "//w14:gradFill/w14:gsLst/"_ostr;
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs", 3);
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[1]", "pos", u"0");
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[1]/w14:srgbClr", "val", u"ff1493");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "w14:gs[1]/w14:srgbClr", "val", u"ff1493");
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[2]", "pos", u"30000");
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[2]/w14:srgbClr", "val", u"ffff00");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "w14:gs[2]/w14:srgbClr", "val", u"ffff00");
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[3]", "pos", u"100000");
|
||||
assertXPath(pXmlDoc, sPath + "w14:gs[3]/w14:srgbClr", "val", u"00ffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "w14:gs[3]/w14:srgbClr", "val", u"00ffff");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(TestMCGR, testTdf155825_SourcOffsetRangeDifferent)
|
||||
@@ -97,9 +97,9 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testStepCount)
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[@pos='50000']", 2);
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[@pos='75000']", 2);
|
||||
// Without fix the color was 808080.
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[@pos='75000'][1]/a:srgbClr", "val", u"55aaaa");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[@pos='75000'][1]/a:srgbClr", "val", u"55aaaa");
|
||||
// Without fix the color was 40bfbf, producing a gradient in the last segment.
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[@pos='75000'][2]/a:srgbClr", "val", u"00ffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[@pos='75000'][2]/a:srgbClr", "val", u"00ffff");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(TestMCGR, testAxialColorLinearTrans)
|
||||
@@ -118,13 +118,13 @@ CPPUNIT_TEST_FIXTURE(TestMCGR, testAxialColorLinearTrans)
|
||||
static constexpr OString sPath = "//a:gradFill/a:gsLst/"_ostr;
|
||||
assertXPath(pXmlDoc, sPath + "a:gs", 3);
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[1]", "pos", u"0");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", u"00ffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[1]/a:srgbClr", "val", u"00ffff");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[1]/a:srgbClr/a:alpha", "val", u"20000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[2]", "pos", u"50000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[2]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[2]/a:srgbClr/a:alpha", "val", u"60396");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[2]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[2]/a:srgbClr/a:alpha", "val", u"60396");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[3]", "pos", u"100000");
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[3]/a:srgbClr", "val", u"00ffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPath + "a:gs[3]/a:srgbClr", "val", u"00ffff");
|
||||
// no <a:alpha> element for default val="100000"
|
||||
assertXPath(pXmlDoc, sPath + "a:gs[3]/a:srgbClr/a:alpha", 0);
|
||||
}
|
||||
|
||||
@@ -120,18 +120,18 @@ CPPUNIT_TEST_FIXTURE(ThemeImportExportTest, testThemeExportOOXML)
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"xl/theme/theme1.xml"_ustr);
|
||||
OString aClrScheme = "/a:theme/a:themeElements/a:clrScheme"_ostr;
|
||||
assertXPath(pXmlDoc, aClrScheme, "name", u"Office");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:dk1/a:srgbClr", "val", u"000000");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:lt1/a:srgbClr", "val", u"FFFFFF");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:dk2/a:srgbClr", "val", u"44546A");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:lt2/a:srgbClr", "val", u"E7E6E6");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent1/a:srgbClr", "val", u"4472C4");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent2/a:srgbClr", "val", u"ED7D31");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent3/a:srgbClr", "val", u"A5A5A5");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent4/a:srgbClr", "val", u"FFC000");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent5/a:srgbClr", "val", u"5B9BD5");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:accent6/a:srgbClr", "val", u"70AD47");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:hlink/a:srgbClr", "val", u"0563C1");
|
||||
assertXPath(pXmlDoc, aClrScheme + "/a:folHlink/a:srgbClr", "val", u"954F72");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:dk1/a:srgbClr", "val", u"000000");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:lt1/a:srgbClr", "val", u"FFFFFF");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:dk2/a:srgbClr", "val", u"44546A");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:lt2/a:srgbClr", "val", u"E7E6E6");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent1/a:srgbClr", "val", u"4472C4");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent2/a:srgbClr", "val", u"ED7D31");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent3/a:srgbClr", "val", u"A5A5A5");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent4/a:srgbClr", "val", u"FFC000");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent5/a:srgbClr", "val", u"5B9BD5");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:accent6/a:srgbClr", "val", u"70AD47");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:hlink/a:srgbClr", "val", u"0563C1");
|
||||
assertXPathInsensitive(pXmlDoc, aClrScheme + "/a:folHlink/a:srgbClr", "val", u"954F72");
|
||||
}
|
||||
|
||||
{
|
||||
@@ -143,7 +143,7 @@ CPPUNIT_TEST_FIXTURE(ThemeImportExportTest, testThemeExportOOXML)
|
||||
OString aFont = "/x:styleSheet/x:fonts/x:font"_ostr;
|
||||
assertXPath(pXmlDoc, aFont, 6);
|
||||
assertXPath(pXmlDoc, aFont + "[5]/x:color", "theme", u"7");
|
||||
assertXPath(pXmlDoc, aFont + "[6]/x:color", "rgb", u"FF9C5700");
|
||||
assertXPathInsensitive(pXmlDoc, aFont + "[6]/x:color", "rgb", u"FF9C5700");
|
||||
|
||||
// Fills
|
||||
OString aFill = "/x:styleSheet/x:fills/x:fill"_ostr;
|
||||
@@ -151,7 +151,7 @@ CPPUNIT_TEST_FIXTURE(ThemeImportExportTest, testThemeExportOOXML)
|
||||
assertXPath(pXmlDoc, aFill + "[1]/x:patternFill", "patternType", u"none");
|
||||
assertXPath(pXmlDoc, aFill + "[2]/x:patternFill", "patternType", u"gray125");
|
||||
assertXPath(pXmlDoc, aFill + "[3]/x:patternFill", "patternType", u"solid");
|
||||
assertXPath(pXmlDoc, aFill + "[3]/x:patternFill/x:fgColor", "rgb", u"FFFFEB9C");
|
||||
assertXPathInsensitive(pXmlDoc, aFill + "[3]/x:patternFill/x:fgColor", "rgb", u"FFFFEB9C");
|
||||
assertXPath(pXmlDoc, aFill + "[4]/x:patternFill", "patternType", u"solid");
|
||||
assertXPath(pXmlDoc, aFill + "[4]/x:patternFill/x:fgColor", "theme", u"4");
|
||||
}
|
||||
|
||||
@@ -1469,10 +1469,11 @@ CPPUNIT_TEST_FIXTURE(ScExportTest3, testTextUnderlineColorXLSX)
|
||||
assertXPath(pDoc, "/xdr:wsDr/xdr:twoCellAnchor[1]/xdr:sp[1]/xdr:txBody/a:p[1]/a:r[1]/a:rPr",
|
||||
"b", u"1");
|
||||
// Make sure that the underline color is RED
|
||||
assertXPath(pDoc,
|
||||
"/xdr:wsDr/xdr:twoCellAnchor[1]/xdr:sp[1]/xdr:txBody/a:p[1]/a:r[1]/a:rPr/a:uFill/"
|
||||
"a:solidFill/a:srgbClr",
|
||||
"val", u"ff0000");
|
||||
assertXPathInsensitive(
|
||||
pDoc,
|
||||
"/xdr:wsDr/xdr:twoCellAnchor[1]/xdr:sp[1]/xdr:txBody/a:p[1]/a:r[1]/a:rPr/a:uFill/"
|
||||
"a:solidFill/a:srgbClr",
|
||||
"val", u"ff0000");
|
||||
|
||||
// Make sure the underline type is drawn with heavy line
|
||||
assertXPath(pDoc, "/xdr:wsDr/xdr:twoCellAnchor[2]/xdr:sp[1]/xdr:txBody/a:p[1]/a:r[1]/a:rPr",
|
||||
|
||||
@@ -1427,7 +1427,7 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf100348FontworkBitmapFill)
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"ppt/slides/slide1.xml"_ustr);
|
||||
static constexpr OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr"_ostr);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:blipFill/a:blip", 1);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:ln/a:solidFill/a:srgbClr", "val", u"ffbf00");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:ln/a:solidFill/a:srgbClr", "val", u"ffbf00");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf100348FontworkGradientGlow)
|
||||
@@ -1439,9 +1439,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf100348FontworkGradientGlow)
|
||||
// Without the patch, fill was black and no glow applied.
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"ppt/slides/slide1.xml"_ustr);
|
||||
static constexpr OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:txBody/a:p/a:r/a:rPr"_ostr);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val", u"8d281e");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr", "val",
|
||||
u"8d281e");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:effectLst/a:glow", "rad", u"63360");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:effectLst/a:glow/a:srgbClr", "val", u"ff4500");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:effectLst/a:glow/a:srgbClr", "val", u"ff4500");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345FullTransparentGradient)
|
||||
@@ -1465,11 +1466,13 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientLinear)
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:lin", "ang", u"3600000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]", "pos", u"25000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val", u"20000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val",
|
||||
u"20000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]", "pos", u"100000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", u"80000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val",
|
||||
u"80000");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientRadial)
|
||||
@@ -1482,9 +1485,9 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf128345GradientRadial)
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"ppt/slides/slide1.xml"_ustr);
|
||||
static constexpr OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill"_ostr);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr", "val", u"ff0000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", 0);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", u"ffffff");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr", "val", u"ffffff");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", u"0");
|
||||
}
|
||||
|
||||
@@ -1522,8 +1525,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf134969TransparencyOnColorGradien
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"ppt/slides/slide1.xml"_ustr);
|
||||
static constexpr OString sPathStart("//p:sld/p:cSld/p:spTree/p:sp/p:spPr/a:gradFill"_ostr);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs", 2);
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val", u"60000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val", u"60000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[1]/a:srgbClr/a:alpha", "val",
|
||||
u"60000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:gsLst/a:gs[2]/a:srgbClr/a:alpha", "val",
|
||||
u"60000");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testArcTo)
|
||||
@@ -1625,8 +1630,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf140865Wordart3D)
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:sp3d/a:bevelT", "h", u"38100");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:sp3d/a:bevelT", "prst", u"softRound");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:sp3d/a:bevelB", "h", u"152400");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:sp3d/a:extrusionClr/a:srgbClr", "val", u"990000");
|
||||
assertXPath(pXmlDoc, sPathStart + "/a:sp3d/a:contourClr/a:srgbClr", "val", u"009876");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:sp3d/a:extrusionClr/a:srgbClr", "val",
|
||||
u"990000");
|
||||
assertXPathInsensitive(pXmlDoc, sPathStart + "/a:sp3d/a:contourClr/a:srgbClr", "val",
|
||||
u"009876");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf124457)
|
||||
|
||||
@@ -832,7 +832,7 @@ CPPUNIT_TEST_FIXTURE(Test, testShapeThemePreservation)
|
||||
"/w:document/w:body/w:p[3]/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:solidFill/a:schemeClr",
|
||||
"val", u"accent6");
|
||||
// check whether theme color has been converted into native color
|
||||
assertXPath(pXmlDocument,
|
||||
assertXPathInsensitive(pXmlDocument,
|
||||
"/w:document/w:body/w:p[3]/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:ln/a:solidFill/a:srgbClr",
|
||||
"val", u"9bbb59");
|
||||
|
||||
@@ -940,13 +940,13 @@ CPPUNIT_TEST_FIXTURE(Test, testGradientFillPreservation)
|
||||
xmlDocUniquePtr pXmlDocument = parseExport(u"word/document.xml"_ustr);
|
||||
|
||||
// check rgb colors for every step in the gradient of the first shape
|
||||
assertXPath(pXmlDocument,
|
||||
assertXPathInsensitive(pXmlDocument,
|
||||
"/w:document/w:body/w:p/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:gradFill/a:gsLst/a:gs[1]/a:srgbClr",
|
||||
"val", u"ffff00");
|
||||
assertXPath(pXmlDocument,
|
||||
assertXPathInsensitive(pXmlDocument,
|
||||
"/w:document/w:body/w:p/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:gradFill/a:gsLst/a:gs[2]/a:srgbClr",
|
||||
"val", u"ffff33");
|
||||
assertXPath(pXmlDocument,
|
||||
assertXPathInsensitive(pXmlDocument,
|
||||
"/w:document/w:body/w:p/w:r/mc:AlternateContent[1]/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:gradFill/a:gsLst/a:gs[3]/a:srgbClr",
|
||||
"val", u"ff0000");
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ CPPUNIT_TEST_FIXTURE(Test, testFdo76979)
|
||||
// The problem was that black was exported as "auto" fill color, resulting in well-formed, but invalid XML.
|
||||
xmlDocUniquePtr pXmlDoc = parseExport(u"word/header2.xml"_ustr);
|
||||
// This was "auto", not "FFFFFF".
|
||||
assertXPath(pXmlDoc, "//wps:spPr/a:solidFill/a:srgbClr", "val", u"FFFFFF");
|
||||
assertXPathInsensitive(pXmlDoc, "//wps:spPr/a:solidFill/a:srgbClr", "val", u"FFFFFF");
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(Test, testTdf104539)
|
||||
@@ -241,7 +241,7 @@ CPPUNIT_TEST_FIXTURE(Test, testShapeEffectPreservation)
|
||||
0 ); // should not be present
|
||||
|
||||
// 5th shape with glow effect, scheme color
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[6]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[6]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:effectLst/a:glow/a:srgbClr",
|
||||
"val", u"eb2722");
|
||||
|
||||
@@ -267,10 +267,10 @@ CPPUNIT_TEST_FIXTURE(Test, testShapeEffectPreservation)
|
||||
"/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:effectLst/a:glow",
|
||||
"rad", 63500); // actually, it returns 63360
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:effectLst/a:glow/a:srgbClr",
|
||||
"val", u"eb2722");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:effectLst/a:innerShdw",
|
||||
"blurRad", u"63500");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
@@ -391,7 +391,7 @@ CPPUNIT_TEST_FIXTURE(Test, testShape3DEffectPreservation)
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:sp3d/a:bevelB",
|
||||
"prst", u"relaxedInset");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[3]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:sp3d/a:contourClr/a:srgbClr",
|
||||
"val", u"3333ff");
|
||||
|
||||
@@ -410,7 +410,7 @@ CPPUNIT_TEST_FIXTURE(Test, testPictureEffectPreservation)
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/pic:pic/pic:spPr/a:effectLst/a:glow",
|
||||
"rad", u"228600");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/pic:pic/pic:spPr/a:effectLst/a:glow/a:srgbClr",
|
||||
"val", u"267de6");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
@@ -427,7 +427,7 @@ CPPUNIT_TEST_FIXTURE(Test, testPictureEffectPreservation)
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/pic:pic/pic:spPr/a:sp3d",
|
||||
"extrusionH", u"76200");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[1]/w:r/mc:AlternateContent/mc:Choice/w:drawing/"
|
||||
"wp:anchor/a:graphic/a:graphicData/pic:pic/pic:spPr/a:sp3d/a:extrusionClr/a:srgbClr",
|
||||
"val", u"92d050");
|
||||
|
||||
@@ -1040,7 +1040,7 @@ CPPUNIT_TEST_FIXTURE(Test, testExportShadow)
|
||||
|
||||
assertXPath(pXmlDoc,"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:spPr/a:effectLst/a:outerShdw", "dist" , u"109865");
|
||||
assertXPath(pXmlDoc,"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:spPr/a:effectLst/a:outerShdw", "dir" , u"634411");
|
||||
assertXPath(pXmlDoc,"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:spPr/a:effectLst/a:outerShdw/a:srgbClr", "val" , u"000000");
|
||||
assertXPathInsensitive(pXmlDoc,"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:spPr/a:effectLst/a:outerShdw/a:srgbClr", "val" , u"000000");
|
||||
assertXPath(pXmlDoc,"/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wpg:wgp/wps:wsp[1]/wps:spPr/a:effectLst/a:outerShdw/a:srgbClr/a:alpha", "val" , u"38000");
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ CPPUNIT_TEST_FIXTURE(Test, Test_TextEffects_TextOutline)
|
||||
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", u"60000");
|
||||
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[3]", "pos", u"0");
|
||||
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", u"0070C0");
|
||||
assertXPathInsensitive(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", u"0070C0");
|
||||
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:textOutline/w14:gradFill/w14:gsLst/w14:gs[4]", "pos", u"100000");
|
||||
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", u"accent4");
|
||||
@@ -125,7 +125,7 @@ CPPUNIT_TEST_FIXTURE(Test, Test_TextEffects_TextOutline)
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "cmpd", u"sng");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline", "algn", u"ctr");
|
||||
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:solidFill/w14:srgbClr", "val", u"FF0000");
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:solidFill/w14:srgbClr", "val", u"FF0000");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:prstDash", "val", u"solid");
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:textOutline/w14:bevel", 1);
|
||||
|
||||
@@ -164,7 +164,7 @@ CPPUNIT_TEST_FIXTURE(Test, Test_TextEffects_TextFill)
|
||||
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", u"67000");
|
||||
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[1]/w:rPr/w14:textFill/w14:gradFill/w14:gsLst/w14:gs[2]", "pos", u"50000");
|
||||
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", u"00B0F0");
|
||||
assertXPathInsensitive(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", u"00B0F0");
|
||||
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", u"10000");
|
||||
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", u"80000");
|
||||
|
||||
@@ -203,7 +203,7 @@ CPPUNIT_TEST_FIXTURE(Test, Test_TextEffects_Props3d_Ligatures_NumForm_NumSpacing
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:extrusionClr/w14:schemeClr/w14:lumOff", "val", u"80000");
|
||||
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:contourClr", 1);
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:contourClr/w14:srgbClr", "val", u"92D050");
|
||||
assertXPathInsensitive(pXmlDoc, "/w:document/w:body/w:p[1]/w:r[1]/w:rPr/w14:props3d/w14:contourClr/w14:srgbClr", "val", u"92D050");
|
||||
|
||||
// Paragraph 2 - w14:ligatures
|
||||
assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[1]/w:rPr/w14:ligatures", 1);
|
||||
@@ -310,7 +310,7 @@ CPPUNIT_TEST_FIXTURE(Test, Test_TextEffects_Groupshapes)
|
||||
assertXPath(pXmlDoc, sPathShadow, "kx", u"0");
|
||||
assertXPath(pXmlDoc, sPathShadow, "ky", u"0");
|
||||
assertXPath(pXmlDoc, sPathShadow, "algn", u"l");
|
||||
assertXPath(pXmlDoc, sPathShadow+"/w14:srgbClr", "val", u"92D050");
|
||||
assertXPathInsensitive(pXmlDoc, sPathShadow+"/w14:srgbClr", "val", u"92D050");
|
||||
assertXPath(pXmlDoc, sPathShadow+"/w14:srgbClr/w14:alpha", "val", u"40000");
|
||||
|
||||
// Reflection
|
||||
|
||||
@@ -184,6 +184,14 @@ void XmlTestTools::assertXPath(const xmlDocUniquePtr& pXmlDoc, const char*
|
||||
rExpectedValue, std::u16string_view(aValue));
|
||||
}
|
||||
|
||||
void XmlTestTools::assertXPathInsensitive(const xmlDocUniquePtr& pXmlDoc, const char* pXPath, const char* pAttribute, std::u16string_view rExpectedValue)
|
||||
{
|
||||
OUString aValue = getXPath(pXmlDoc, pXPath, pAttribute).toAsciiLowerCase();
|
||||
OUString aExpectedValue = OUString(rExpectedValue).toAsciiLowerCase();
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(OString(OString::Concat("In <") + pXmlDoc->name + ">, attribute '" + pAttribute + "' of '" + pXPath + "' incorrect case insensitive value. '" + aValue.toUtf8() + "' should be '" + aExpectedValue.toUtf8() + "'").getStr(),
|
||||
aExpectedValue, aValue);
|
||||
}
|
||||
|
||||
void XmlTestTools::assertXPathDoubleValue(const xmlDocUniquePtr& pXmlDoc, const char* pXPath, const char* pAttribute, double expectedValue, double delta)
|
||||
{
|
||||
OUString aValue = getXPath(pXmlDoc, pXPath, pAttribute);
|
||||
|
||||
Reference in New Issue
Block a user