diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2023-08-01 22:06:31 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2023-08-21 08:57:15 +0200 |
commit | 73ec9c71689525ff14db219238083ff75028f8c8 (patch) | |
tree | 0afd210299bc810296ed9cb3d9a0297a54123b83 /xmloff | |
parent | e60ef8651cfb30335471d1622e58c13eebc7d58b (diff) |
Tests with color stops to assert Color and not BColor values
For testing color stops of a gradient we don't need to assert super
precise values (doubls to the n-th decimal point) as long the end
results in the same (8-bit) Color value. So change the tests to
convert the BColor that is in gradient color stops to Color and
assert the Color value.
Change-Id: Ibd7661e2f72955a0778e822df1fae568973be357
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155360
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/CppunitTest_xmloff_style.mk | 2 | ||||
-rw-r--r-- | xmloff/qa/unit/style.cxx | 81 |
2 files changed, 44 insertions, 39 deletions
diff --git a/xmloff/CppunitTest_xmloff_style.mk b/xmloff/CppunitTest_xmloff_style.mk index 22d37dffaa83..d2edb42986b9 100644 --- a/xmloff/CppunitTest_xmloff_style.mk +++ b/xmloff/CppunitTest_xmloff_style.mk @@ -21,9 +21,11 @@ $(eval $(call gb_CppunitTest_add_exception_objects,xmloff_style, \ )) $(eval $(call gb_CppunitTest_use_libraries,xmloff_style, \ + basegfx \ comphelper \ cppu \ cppuhelper \ + docmodel \ subsequenttest \ embobj \ sal \ diff --git a/xmloff/qa/unit/style.cxx b/xmloff/qa/unit/style.cxx index bde981d38864..132caa08c346 100644 --- a/xmloff/qa/unit/style.cxx +++ b/xmloff/qa/unit/style.cxx @@ -17,9 +17,9 @@ #include <com/sun/star/container/XNameContainer.hpp> #include <com/sun/star/drawing/XDrawPagesSupplier.hpp> #include <com/sun/star/drawing/XShape.hpp> -#include <com/sun/star/rendering/RGBColor.hpp> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#include <docmodel/uno/UnoComplexColor.hxx> #include <officecfg/Office/Common.hxx> #include <rtl/character.hxx> #include <unotools/saveopt.hxx> @@ -80,6 +80,12 @@ struct XmlFont return aFontFamilyGeneric.compareTo(rOther.aFontFamilyGeneric) < 0; } }; + +Color asColor(com::sun::star::rendering::RGBColor const& rRGBColor) +{ + basegfx::BColor aBColor(rRGBColor.Red, rRGBColor.Green, rRGBColor.Blue); + return Color(aBColor); +} } CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testFontSorting) @@ -369,16 +375,16 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testMCGR_OldToNew) // Test new properties auto aColorStopSeq = aGradient.ColorStops; - awt::ColorStop aColorStop = aColorStopSeq[0]; - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Blue); - aColorStop = aColorStopSeq[1]; - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Blue); + { + awt::ColorStop aColorStop = aColorStopSeq[0]; + CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0xff0000), asColor(aColorStop.StopColor)); + } + { + awt::ColorStop aColorStop = aColorStopSeq[1]; + CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0xffff00), asColor(aColorStop.StopColor)); + } } CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testMCGR_OldToNew_opacity) @@ -429,18 +435,16 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testMCGR_OldToNew_opacity) // Test new properties auto aColorStopSeq = aGradient.ColorStops; - awt::ColorStop aColorStop = aColorStopSeq[0]; - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); - // Rounding error because of converting through color: 90% => 0.9 * 255 => 229 - // 299.0 / 255.0 = 0.898039215686275 - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.9, aColorStop.StopColor.Red, 0.002); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.9, aColorStop.StopColor.Green, 0.002); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.9, aColorStop.StopColor.Blue, 0.002); - aColorStop = aColorStopSeq[1]; - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Blue); + { + awt::ColorStop aColorStop = aColorStopSeq[0]; + CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0xe5e5e5), asColor(aColorStop.StopColor)); + } + { + awt::ColorStop aColorStop = aColorStopSeq[1]; + CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0x000000), asColor(aColorStop.StopColor)); + } } CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testMCGR_threeStops) @@ -497,22 +501,21 @@ CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testMCGR_threeStops) // Test new properties auto aColorStopSeq = aGradient.ColorStops; - awt::ColorStop aColorStop = aColorStopSeq[0]; - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Blue); - aColorStop = aColorStopSeq[1]; - CPPUNIT_ASSERT_EQUAL(0.3, aColorStop.StopOffset); - // 0x99 = 153 => 153/255 = 0.6, 0xbb = 187 => 187/255 = 0.733... - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(0.6, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.733333333333333, aColorStop.StopColor.Blue, 0.0000001); - aColorStop = aColorStopSeq[2]; - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Red); - CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopColor.Green); - CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopColor.Blue); + { + awt::ColorStop aColorStop = aColorStopSeq[0]; + CPPUNIT_ASSERT_EQUAL(0.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0xff0000), asColor(aColorStop.StopColor)); + } + { + awt::ColorStop aColorStop = aColorStopSeq[1]; + CPPUNIT_ASSERT_EQUAL(0.3, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0x0099bb), asColor(aColorStop.StopColor)); + } + { + awt::ColorStop aColorStop = aColorStopSeq[2]; + CPPUNIT_ASSERT_EQUAL(1.0, aColorStop.StopOffset); + CPPUNIT_ASSERT_EQUAL(Color(0xffff00), asColor(aColorStop.StopColor)); + } } CPPUNIT_TEST_FIXTURE(XmloffStyleTest, testBorderRestoration) |