move theme test from svx to sd - so we can use ThemeColorChange

Change-Id: I39cdc3baf81d3cb75d21ec963c05be57b97f30ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155865
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
This commit is contained in:
Tomaž Vajngerl 2023-08-19 17:46:12 +02:00 committed by Tomaž Vajngerl
parent 9f327102c4
commit eb217182a5
6 changed files with 105 additions and 75 deletions

View file

@ -0,0 +1,78 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#*************************************************************************
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#*************************************************************************
$(eval $(call gb_CppunitTest_CppunitTest,sd_theme_tests))
$(eval $(call gb_CppunitTest_use_externals,sd_theme_tests,\
boost_headers \
libxml2 \
))
$(eval $(call gb_CppunitTest_use_common_precompiled_header,sd_theme_tests))
$(eval $(call gb_CppunitTest_add_exception_objects,sd_theme_tests, \
sd/qa/unit/ThemeTest \
))
$(eval $(call gb_CppunitTest_use_libraries,sd_theme_tests, \
basegfx \
comphelper \
cppu \
cppuhelper \
drawinglayer \
docmodel \
editeng \
for \
forui \
i18nlangtag \
sal \
salhelper \
sax \
sd \
sfx \
sot \
subsequenttest \
svl \
svt \
svx \
svxcore \
test \
tl \
tk \
ucbhelper \
unotest \
utl \
vcl \
xo \
))
$(eval $(call gb_CppunitTest_set_include,sd_theme_tests,\
-I$(SRCDIR)/sd/source/ui/inc \
-I$(SRCDIR)/sd/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_sdk_api,sd_theme_tests))
$(eval $(call gb_CppunitTest_use_ure,sd_theme_tests))
$(eval $(call gb_CppunitTest_use_vcl,sd_theme_tests))
$(eval $(call gb_CppunitTest_use_rdb,sd_theme_tests,services))
$(eval $(call gb_CppunitTest_use_custom_headers,sd_theme_tests,\
officecfg/registry \
))
$(eval $(call gb_CppunitTest_use_configuration,sd_theme_tests))
$(eval $(call gb_CppunitTest_add_arguments,sd_theme_tests, \
-env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"$$$${$(gb_Helper_LIBRARY_PATH_VAR)+=$$$$$(gb_Helper_LIBRARY_PATH_VAR)}" \
))
# vim: set noet sw=4 ts=4:

View file

@ -51,6 +51,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sd,\
CppunitTest_sd_shape_import_export_tests \
CppunitTest_sd_a11y \
CppunitTest_sd_textfitting_tests \
CppunitTest_sd_theme_tests \
))
endif

View file

@ -7,6 +7,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "sdmodeltestbase.hxx"
#include <test/unoapi_test.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
@ -15,20 +17,26 @@
#include <com/sun/star/text/XTextRange.hpp>
#include <docmodel/uno/UnoComplexColor.hxx>
using namespace ::com::sun::star;
#include <svx/unoapi.hxx>
namespace
{
/// Tests for svx/source/styles/ code.
class Test : public UnoApiTest
#include <DrawDocShell.hxx>
#include <unomodel.hxx>
#include <sdpage.hxx>
#include <ViewShell.hxx>
using namespace css;
class ThemeTest : public SdModelTestBase
{
public:
Test()
: UnoApiTest("svx/qa/unit/data/")
ThemeTest()
: SdModelTestBase("/sd/qa/unit/data/")
{
}
};
namespace
{
/// Get the character color of the first text portion in xShape.
Color GetShapeTextColor(const uno::Reference<text::XTextRange>& xShape)
{
@ -50,24 +58,31 @@ Color GetShapeFillColor(const uno::Reference<beans::XPropertySet>& xShape)
return nColor;
}
CPPUNIT_TEST_FIXTURE(Test, testThemeChange)
} // end anonymous namespace
CPPUNIT_TEST_FIXTURE(ThemeTest, testThemeChange)
{
// Given a document, with a first slide and blue shape text from theme:
loadFromURL(u"theme.pptx");
uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(mxComponent, uno::UNO_QUERY);
// The draw page also contains a group shape to make sure we don't crash on group shapes.
uno::Reference<drawing::XMasterPageTarget> xDrawPage(
xDrawPagesSupplier->getDrawPages()->getByIndex(0), uno::UNO_QUERY);
uno::Reference<drawing::XShapes> xDrawPageShapes(xDrawPage, uno::UNO_QUERY);
uno::Reference<text::XTextRange> xShape(xDrawPageShapes->getByIndex(0), uno::UNO_QUERY);
// Blue.
CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), GetShapeTextColor(xShape));
uno::Reference<text::XTextRange> xShape2(xDrawPageShapes->getByIndex(1), uno::UNO_QUERY);
// Blue, lighter.
CPPUNIT_ASSERT_EQUAL(Color(0xb4c7e7), GetShapeTextColor(xShape2));
uno::Reference<text::XTextRange> xShape3(xDrawPageShapes->getByIndex(2), uno::UNO_QUERY);
// Blue, darker.
CPPUNIT_ASSERT_EQUAL(Color(0x2f5597), GetShapeTextColor(xShape3));
// Shape fill:
uno::Reference<beans::XPropertySet> xShape4(xDrawPageShapes->getByIndex(4), uno::UNO_QUERY);
// Blue.
@ -81,6 +96,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange)
auto aComplexColor = model::color::getFromXComplexColor(xComplexColor);
CPPUNIT_ASSERT_EQUAL(model::ThemeColorType::Accent1, aComplexColor.getThemeColorType());
}
uno::Reference<beans::XPropertySet> xShape5(xDrawPageShapes->getByIndex(5), uno::UNO_QUERY);
// Blue, lighter.
CPPUNIT_ASSERT_EQUAL(Color(0xb4c7e7), GetShapeFillColor(xShape5));
@ -98,41 +114,27 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange)
aComplexColor.getTransformations()[1].meType);
CPPUNIT_ASSERT_EQUAL(sal_Int16(6000), aComplexColor.getTransformations()[1].mnValue);
}
// When changing the master slide of slide 1 to use the theme of the second master slide:
uno::Reference<drawing::XMasterPageTarget> xDrawPage2(
xDrawPagesSupplier->getDrawPages()->getByIndex(1), uno::UNO_QUERY);
uno::Reference<beans::XPropertySet> xMasterPage2(xDrawPage2->getMasterPage(), uno::UNO_QUERY);
uno::Any aTheme = xMasterPage2->getPropertyValue("Theme");
uno::Reference<beans::XPropertySet> xMasterPage(xDrawPage->getMasterPage(), uno::UNO_QUERY);
xMasterPage->setPropertyValue("Theme", aTheme);
// Then make sure the shape text color is now green:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 9486886 (#90c226, green)
// - Actual : 4485828 (#4472c4, blue)
// i.e. shape text was not updated on theme change.
CPPUNIT_ASSERT_EQUAL(Color(0x90c226), GetShapeTextColor(xShape));
// Green, lighter:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 14020002 (#d5eda2, light green)
// - Actual : 9486886 (#90c226, stock green)
// i.e. the "light" effect on green was not applied.
CPPUNIT_ASSERT_EQUAL(Color(0xd5eda2), GetShapeTextColor(xShape2));
// Green, darker.
CPPUNIT_ASSERT_EQUAL(Color(0x6c911d), GetShapeTextColor(xShape3));
// Shape fill:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 9486886 (#90c226, green)
// - Actual : 4485828 (#4472c4, blue)
CPPUNIT_ASSERT_EQUAL(Color(0x90c226), GetShapeFillColor(xShape4));
// Green, lighter:
// Without the accompanying fix in place, this test would have failed with:
// - Expected: 14020002 (#d5eda2, light green)
// - Actual : 9486886 (#90c226, green)
// i.e. the "light" effect on green was not applied.
CPPUNIT_ASSERT_EQUAL(Color(0xd5eda2), GetShapeFillColor(xShape5));
}
}
CPPUNIT_PLUGIN_IMPLEMENT();

View file

@ -1,50 +0,0 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#*************************************************************************
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#*************************************************************************
$(eval $(call gb_CppunitTest_CppunitTest,svx_styles))
$(eval $(call gb_CppunitTest_use_externals,svx_styles,\
boost_headers \
))
$(eval $(call gb_CppunitTest_add_exception_objects,svx_styles, \
svx/qa/unit/styles \
))
$(eval $(call gb_CppunitTest_use_libraries,svx_styles, \
comphelper \
cppu \
cppuhelper \
docmodel \
editeng \
svx \
sal \
subsequenttest \
test \
unotest \
utl \
tl \
))
$(eval $(call gb_CppunitTest_use_sdk_api,svx_styles))
$(eval $(call gb_CppunitTest_use_ure,svx_styles))
$(eval $(call gb_CppunitTest_use_vcl,svx_styles))
$(eval $(call gb_CppunitTest_use_rdb,svx_styles,services))
$(eval $(call gb_CppunitTest_use_custom_headers,svx_styles,\
officecfg/registry \
))
$(eval $(call gb_CppunitTest_use_configuration,svx_styles))
# vim: set noet sw=4 ts=4:

View file

@ -39,7 +39,6 @@ $(eval $(call gb_Module_add_check_targets,svx,\
CppunitTest_svx_unit \
CppunitTest_svx_gallery_test \
CppunitTest_svx_removewhichrange \
CppunitTest_svx_styles \
CppunitTest_svx_core \
))