Round in XmlWriter::attribute when passing a double

Before, it truncated. Rounding provides a closer value.

Change-Id: I213e6ae34ada2f5081cb2c8b2ef431448c712b37
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165947
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
Mike Kaganski
2024-04-14 11:25:21 +01:00
parent 7f2283c298
commit 1f1f423200
6 changed files with 57 additions and 46 deletions

View File

@@ -126,12 +126,12 @@ CPPUNIT_TEST_FIXTURE(Test, testDrawImagePointsTypeBitmap)
CPPUNIT_ASSERT(pDocument);
assertXPath(pDocument, aXPathPrefix + "polypolygoncolor", "color"_ostr, "#0080ff");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy11"_ostr, "5346");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy11"_ostr, "5347");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy12"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy13"_ostr, "5558");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy21"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy22"_ostr, "4716");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy23"_ostr, "5564");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy22"_ostr, "4717");
assertXPath(pDocument, aXPathPrefix + "bitmap", "xy23"_ostr, "5565");
assertXPath(
pDocument, aXPathPrefix + "bitmap/data[2]", "row"_ostr,
"020202,ffffff,ffffff,ffffff,fefefe,ffffff,ffffff,fefefe,ffffff,ffffff,f8f8f8,ffffff,"
@@ -159,7 +159,7 @@ CPPUNIT_TEST_FIXTURE(Test, testDrawString)
// check correct import of the DrawString: height, position, text, color and font
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "height"_ostr, "120");
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "x"_ostr, "817");
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "y"_ostr, "1137");
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "y"_ostr, "1138");
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "text"_ostr, "TEST");
assertXPath(pDocument, aXPathPrefix + "transform/textsimpleportion", "fontcolor"_ostr,
"#000000");
@@ -197,7 +197,7 @@ CPPUNIT_TEST_FIXTURE(Test, testDrawStringAlign)
"12");
assertXPath(pDocument, aXPathPrefix + "mask/transform[2]/textsimpleportion", "height"_ostr,
"12");
assertXPath(pDocument, aXPathPrefix + "mask/transform[2]/textsimpleportion", "x"_ostr, "143");
assertXPath(pDocument, aXPathPrefix + "mask/transform[2]/textsimpleportion", "x"_ostr, "144");
assertXPath(pDocument, aXPathPrefix + "mask/transform[2]/textsimpleportion", "y"_ostr, "22");
assertXPath(pDocument, aXPathPrefix + "mask/transform[2]/textsimpleportion", "text"_ostr,
"HCVT");
@@ -218,7 +218,7 @@ CPPUNIT_TEST_FIXTURE(Test, testDrawStringAlign)
assertXPath(pDocument, aXPathPrefix + "mask/transform[4]/textsimpleportion", "text"_ostr,
"HLVC");
assertXPath(pDocument, aXPathPrefix + "mask/transform[5]/textsimpleportion", "x"_ostr, "142");
assertXPath(pDocument, aXPathPrefix + "mask/transform[5]/textsimpleportion", "x"_ostr, "143");
assertXPath(pDocument, aXPathPrefix + "mask/transform[5]/textsimpleportion", "y"_ostr, "66");
assertXPath(pDocument, aXPathPrefix + "mask/transform[5]/textsimpleportion", "text"_ostr,
"HCVC");
@@ -330,7 +330,7 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusDrawBeziers)
assertXPath(pDocument, aXPathPrefix + "transform[1]", "xy13"_ostr, "800");
assertXPath(pDocument, aXPathPrefix + "transform[1]", "xy21"_ostr, "-4");
assertXPath(pDocument, aXPathPrefix + "transform[1]", "xy22"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "transform[1]", "xy23"_ostr, "3195");
assertXPath(pDocument, aXPathPrefix + "transform[1]", "xy23"_ostr, "3196");
}
CPPUNIT_TEST_FIXTURE(Test, testDrawLine)
@@ -368,13 +368,13 @@ CPPUNIT_TEST_FIXTURE(Test, testDrawLineWithCaps)
CPPUNIT_ASSERT(pDocument);
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow", 3);
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[1]/line", "width"_ostr, "211");
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[1]/line", "width"_ostr, "212");
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[1]/stroke", 0);
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[1]/linestartattribute/polypolygon",
"path"_ostr, "m0-1 1 2h-2z");
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[1]/lineendattribute", 0);
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[2]/line", "width"_ostr, "211");
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[2]/line", "width"_ostr, "212");
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[2]/stroke", 0);
assertXPath(pDocument, aXPathPrefix + "polygonstrokearrow[2]/linestartattribute/polypolygon",
"path"_ostr, "m0-1 1 2h-2z");
@@ -502,7 +502,7 @@ CPPUNIT_TEST_FIXTURE(Test, testLinearGradient)
"repeat");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "startx"_ostr, "-1");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "starty"_ostr, "-1");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "endx"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "endx"_ostr, "-1");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "endy"_ostr, "-1");
assertXPath(pDocument, aXPathPrefix + "mask/svglineargradient[2]", "opacity"_ostr, "1");
assertXPath(
@@ -958,8 +958,8 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusBrushPathGradientWithBlendColors)
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "radius"_ostr, "0.7");
assertXPath(pDocument, aXPathPrefix + "svgradialgradient/focalx", 0);
assertXPath(pDocument, aXPathPrefix + "svgradialgradient/focaly", 0);
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "startx"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "starty"_ostr, "0");
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "startx"_ostr, "1");
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "starty"_ostr, "1");
assertXPath(pDocument, aXPathPrefix + "svgradialgradient", "spreadmethod"_ostr, "pad");
}
@@ -1169,7 +1169,7 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusDrawPathWithMiterLimit)
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke", 3);
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "color"_ostr, "#c800c8");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "width"_ostr, "1057");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "width"_ostr, "1058");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "linejoin"_ostr, "Miter");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "miterangle"_ostr, "5");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/stroke", 0);
@@ -1179,7 +1179,7 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusDrawPathWithMiterLimit)
assertXPath(pDocument, aXPathPrefix + "unifiedtransparence[1]/polypolygonstroke/line",
"color"_ostr, "#6400c8");
assertXPath(pDocument, aXPathPrefix + "unifiedtransparence[1]/polypolygonstroke/line",
"width"_ostr, "1057");
"width"_ostr, "1058");
assertXPath(pDocument, aXPathPrefix + "unifiedtransparence[1]/polypolygonstroke/line",
"linejoin"_ostr, "Miter");
assertXPath(pDocument, aXPathPrefix + "unifiedtransparence[1]/polypolygonstroke/line",
@@ -1192,13 +1192,13 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusDrawPathWithMiterLimit)
"miterangle"_ostr, "19");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "color"_ostr, "#0000ff");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "width"_ostr, "1057");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "width"_ostr, "1058");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "linejoin"_ostr, "Miter");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "miterangle"_ostr, "60");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/stroke", 0);
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/line", "color"_ostr, "#0000ff");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/line", "width"_ostr, "1057");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/line", "width"_ostr, "1058");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/line", "linejoin"_ostr, "Miter");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/line", "miterangle"_ostr, "60");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[3]/stroke", 0);
@@ -1266,7 +1266,7 @@ CPPUNIT_TEST_FIXTURE(Test, testEmfPlusFillClosedCurve)
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "color"_ostr, "#00ff00");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "width"_ostr, "4");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "linejoin"_ostr, "Miter");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "miterangle"_ostr, "3");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "miterangle"_ostr, "4");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[1]/line", "linecap"_ostr, "BUTT");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "color"_ostr, "#aaaa00");
assertXPath(pDocument, aXPathPrefix + "polypolygonstroke[2]/line", "width"_ostr, "4");

View File

@@ -10,6 +10,9 @@
#ifndef INCLUDED_TOOLS_XMLWRITER_HXX
#define INCLUDED_TOOLS_XMLWRITER_HXX
#include <sal/config.h>
#include <basegfx/numeric/ftools.hxx>
#include <tools/toolsdllapi.h>
#include <rtl/string.hxx>
#include <memory>
@@ -52,7 +55,15 @@ public:
void attribute(const char* sTagName, const OString& aValue);
void attribute(const OString& sTagName, const OString& aValue);
void attribute(const char* sTagName, std::u16string_view aValue);
void attribute(const char* sTagName, sal_Int32 aNumber);
void attribute(const char* sTagName, sal_Int64 aNumber);
template <typename T>
requires std::is_arithmetic_v<T> void attribute(const char* sTagName, T aNumber)
{
if constexpr (std::is_floating_point_v<T>)
return attribute(sTagName, basegfx::fround64(aNumber));
else
return attribute(sTagName, static_cast<sal_Int64>(aNumber));
}
void attributeDouble(const char* sTagName, double aNumber);
void attributeBase64(const char* sTagName, std::vector<sal_uInt8> const& rValueInBytes);
void attributeBase64(const char* sTagName, std::vector<char> const& rValueInBytes);

View File

@@ -375,7 +375,7 @@ CPPUNIT_TEST_FIXTURE(Test, testFontsizeKeywords)
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[7]"_ostr, "fontcolor"_ostr, "#008000");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[7]"_ostr, "text"_ostr, "Sample");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[7]"_ostr, "height"_ostr, "27");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[7]"_ostr, "height"_ostr, "28");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[7]"_ostr, "familyname"_ostr, "Times New Roman");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[8]"_ostr, "fontcolor"_ostr, "#ff7f50");
@@ -601,20 +601,20 @@ CPPUNIT_TEST_FIXTURE(Test, testMarkerOrient)
xmlDocUniquePtr pDocument = dumpAndParseSvg(u"/svgio/qa/cppunit/data/MarkerOrient.svg");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy11"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy12"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy12"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy13"_ostr, "7");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy21"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy21"_ostr, "-1");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy22"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy23"_ostr, "13");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy31"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy32"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[1]"_ostr, "xy33"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy11"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy11"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy12"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy13"_ostr, "87");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy21"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy22"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy22"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy23"_ostr, "87");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy31"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform[2]"_ostr, "xy32"_ostr, "0");
@@ -647,7 +647,7 @@ CPPUNIT_TEST_FIXTURE(Test, testMarkerInCssStyle)
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "color"_ostr, "#008000");
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "width"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "linejoin"_ostr, "Miter");
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "miterangle"_ostr, "28");
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "miterangle"_ostr, "29");
assertXPath(pDocument, "/primitive2D/transform/transform[1]/polypolygonstroke/line"_ostr, "linecap"_ostr, "BUTT");
}
@@ -706,7 +706,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156777)
// - Expected: #008000
// - Actual : #000000
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, "fontcolor"_ostr, "#008000");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, "x"_ostr, "84");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, "x"_ostr, "85");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[1]"_ostr, "y"_ostr, "23");
}
@@ -721,7 +721,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156834)
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "text"_ostr, "Middle");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "x"_ostr, "30");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "56");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "57");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, "text"_ostr, "Hanging");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, "x"_ostr, "30");
@@ -729,7 +729,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156834)
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "text"_ostr, "Central");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "x"_ostr, "30");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "y"_ostr, "116");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "y"_ostr, "117");
}
CPPUNIT_TEST_FIXTURE(Test, testTdf104339)
@@ -811,10 +811,10 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156616)
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, "x"_ostr, "114");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, "y"_ostr, "122");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "text"_ostr, "First");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "x"_ostr, "86");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "x"_ostr, "87");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, "y"_ostr, "153");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[5]"_ostr, "text"_ostr, " line");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[5]"_ostr, "x"_ostr, "114");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[5]"_ostr, "x"_ostr, "115");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[5]"_ostr, "y"_ostr, "153");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[6]"_ostr, "text"_ostr, "Second line");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[6]"_ostr, "x"_ostr, "77");
@@ -1220,7 +1220,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf94765)
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[1]"_ostr, "endy"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]"_ostr, "startx"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]"_ostr, "starty"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]"_ostr, "endx"_ostr, "0");
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]"_ostr, "endx"_ostr, "1");
assertXPath(pDocument, "/primitive2D/transform/transform/svglineargradient[2]"_ostr, "endy"_ostr, "0");
}
@@ -1333,7 +1333,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf97663)
// tdf#97663: Without the fix in place, this test would have failed with
// - Expected: 236
// - Actual : 204
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "236");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "237");
}
CPPUNIT_TEST_FIXTURE(Test, testTdf156269)
@@ -1551,7 +1551,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156837)
// Without the fix in place, this test would have failed with
// - Expected: 94
// - Actual : 103
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "94");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "y"_ostr, "95");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "height"_ostr, "10");
assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, "text"_ostr, " 3");
}

View File

@@ -77,7 +77,7 @@ CPPUNIT_TEST_FIXTURE(SdrTest, testShadowScaleOrigin)
// i.e. the shadow origin was not the top right corner for scaling (larger x position, so it was
// visible on the right of the shape as well).
CPPUNIT_ASSERT_EQUAL(sal_Int32(-705), fShadowX);
CPPUNIT_ASSERT_EQUAL(sal_Int32(-684), fShadowY);
CPPUNIT_ASSERT_EQUAL(sal_Int32(-685), fShadowY);
}
CPPUNIT_TEST_FIXTURE(SdrTest, testShadowAlignment)
@@ -97,35 +97,35 @@ CPPUNIT_TEST_FIXTURE(SdrTest, testShadowAlignment)
xmlDocUniquePtr pDocument = aDumper.dumpAndParse(xPrimitiveSequence);
// Without the accompanying fix in place, this test would have failed with:
// - Expected: -567
// - Expected: -568
// - Actual : 162
// - In <>, attribute 'xy13' of '(//shadow/transform)[1]' incorrect value.
// i.e. shadow alignment was ignored while scaling the shadow.
assertXPath(pDocument, "(//shadow/transform)[1]"_ostr, "xy13"_ostr, "-567");
assertXPath(pDocument, "(//shadow/transform)[1]"_ostr, "xy13"_ostr, "-568");
assertXPath(pDocument, "(//shadow/transform)[1]"_ostr, "xy23"_ostr, "162");
assertXPath(pDocument, "(//shadow/transform)[2]"_ostr, "xy13"_ostr, "-1794");
assertXPath(pDocument, "(//shadow/transform)[2]"_ostr, "xy13"_ostr, "-1795");
assertXPath(pDocument, "(//shadow/transform)[2]"_ostr, "xy23"_ostr, "162");
assertXPath(pDocument, "(//shadow/transform)[3]"_ostr, "xy13"_ostr, "-3021");
assertXPath(pDocument, "(//shadow/transform)[3]"_ostr, "xy23"_ostr, "161");
assertXPath(pDocument, "(//shadow/transform)[4]"_ostr, "xy13"_ostr, "-567");
assertXPath(pDocument, "(//shadow/transform)[4]"_ostr, "xy13"_ostr, "-568");
assertXPath(pDocument, "(//shadow/transform)[4]"_ostr, "xy23"_ostr, "-749");
assertXPath(pDocument, "(//shadow/transform)[5]"_ostr, "xy13"_ostr, "-3021");
assertXPath(pDocument, "(//shadow/transform)[5]"_ostr, "xy23"_ostr, "-750");
assertXPath(pDocument, "(//shadow/transform)[6]"_ostr, "xy13"_ostr, "-566");
assertXPath(pDocument, "(//shadow/transform)[6]"_ostr, "xy23"_ostr, "-1691");
assertXPath(pDocument, "(//shadow/transform)[6]"_ostr, "xy13"_ostr, "-567");
assertXPath(pDocument, "(//shadow/transform)[6]"_ostr, "xy23"_ostr, "-1692");
assertXPath(pDocument, "(//shadow/transform)[7]"_ostr, "xy13"_ostr, "-1794");
assertXPath(pDocument, "(//shadow/transform)[7]"_ostr, "xy13"_ostr, "-1795");
assertXPath(pDocument, "(//shadow/transform)[7]"_ostr, "xy23"_ostr, "-1693");
assertXPath(pDocument, "(//shadow/transform)[8]"_ostr, "xy13"_ostr, "-3022");
assertXPath(pDocument, "(//shadow/transform)[8]"_ostr, "xy23"_ostr, "-1691");
assertXPath(pDocument, "(//shadow/transform)[8]"_ostr, "xy13"_ostr, "-3023");
assertXPath(pDocument, "(//shadow/transform)[8]"_ostr, "xy23"_ostr, "-1692");
assertXPath(pDocument, "(//shadow/transform)[9]"_ostr, "xy13"_ostr, "-1794");
assertXPath(pDocument, "(//shadow/transform)[9]"_ostr, "xy13"_ostr, "-1795");
assertXPath(pDocument, "(//shadow/transform)[9]"_ostr, "xy23"_ostr, "-750");
}
{

View File

@@ -734,8 +734,8 @@ CPPUNIT_TEST_FIXTURE(SvdrawTest, testClipVerticalTextOverflow)
// make sure the text that isn't overflowing is still aligned properly
assertXPathContent(pDocument, "count((//sdrblocktext)[5]//textsimpleportion)"_ostr, "3");
assertXPath(pDocument, "((//sdrblocktext)[5]//textsimpleportion)[1]"_ostr, "y"_ostr, "5073");
assertXPath(pDocument, "((//sdrblocktext)[5]//textsimpleportion)[3]"_ostr, "y"_ostr, "6597");
assertXPath(pDocument, "((//sdrblocktext)[5]//textsimpleportion)[1]"_ostr, "y"_ostr, "5074");
assertXPath(pDocument, "((//sdrblocktext)[5]//textsimpleportion)[3]"_ostr, "y"_ostr, "6598");
// Test vertically overflowing text, with vertical text direction
assertXPathContent(pDocument, "count((//sdrblocktext)[6]//textsimpleportion)"_ostr, "12");

View File

@@ -140,7 +140,7 @@ void XmlWriter::attribute(const char* name, std::u16string_view value)
attribute(name, OUStringToOString(value, RTL_TEXTENCODING_UTF8));
}
void XmlWriter::attribute(const char* name, const sal_Int32 aNumber)
void XmlWriter::attribute(const char* name, const sal_Int64 aNumber)
{
attribute(name, OString::number(aNumber));
}