summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorTamás Zolnai <tamas.zolnai@collabora.com>2017-08-12 04:05:33 +0200
committerTamás Zolnai <tamas.zolnai@collabora.com>2017-08-12 04:51:42 +0200
commit595cfbc432b8d4bef5d1a078beb389c3b49535cd (patch)
treeb239ff89f56799a0fdf834c61838cb60005e223b /sd
parentbfdd81f72c817ad5cb3fb0ec8636f3a8f08e9170 (diff)
Add ActiveX control tests
Change-Id: I26e5ea3a5c3711139d88476b435a3a0b50dd9cb3 Reviewed-on: https://gerrit.libreoffice.org/41074 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'sd')
-rwxr-xr-xsd/CppunitTest_sd_activex_controls_tests.mk114
-rw-r--r--sd/Module_sd.mk1
-rwxr-xr-xsd/qa/unit/activex-controls-tests.cxx1228
-rwxr-xr-xsd/qa/unit/data/pptx/activex_checkbox.pptxbin36245 -> 39828 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_combobox.pptxbin0 -> 39414 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_commandbutton.pptxbin0 -> 39860 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_fontproperties.pptxbin0 -> 48562 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_label.pptxbin0 -> 39637 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_listbox.pptxbin0 -> 39370 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_optionbutton.pptxbin0 -> 39586 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_picture.pptxbin0 -> 236898 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_scrollbar.pptxbin0 -> 39882 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_spinbutton.pptxbin0 -> 40850 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_textbox.pptxbin0 -> 41657 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/activex_togglebutton.pptxbin0 -> 39698 bytes
-rwxr-xr-xsd/qa/unit/data/pptx/control_background_color.pptxbin0 -> 85895 bytes
-rw-r--r--sd/qa/unit/import-tests.cxx36
17 files changed, 1343 insertions, 36 deletions
diff --git a/sd/CppunitTest_sd_activex_controls_tests.mk b/sd/CppunitTest_sd_activex_controls_tests.mk
new file mode 100755
index 000000000000..2b42afc1087b
--- /dev/null
+++ b/sd/CppunitTest_sd_activex_controls_tests.mk
@@ -0,0 +1,114 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t; fill-column: 100 -*-
+#
+# 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_activex_controls_tests))
+
+$(eval $(call gb_CppunitTest_use_externals,sd_activex_controls_tests,\
+ boost_headers \
+ libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sd_activex_controls_tests, \
+ sd/qa/unit/activex-controls-tests \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sd_activex_controls_tests, \
+ $(call gb_Helper_optional,AVMEDIA,avmedia) \
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ drawinglayer \
+ editeng \
+ for \
+ forui \
+ i18nlangtag \
+ msfilter \
+ oox \
+ sal \
+ salhelper \
+ sax \
+ sd \
+ sfx \
+ sot \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ test \
+ tl \
+ tk \
+ ucbhelper \
+ unotest \
+ utl \
+ vcl \
+ xo \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sd_activex_controls_tests,\
+ -I$(SRCDIR)/sd/source/ui/inc \
+ -I$(SRCDIR)/sd/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,sd_activex_controls_tests))
+
+$(eval $(call gb_CppunitTest_use_ure,sd_activex_controls_tests))
+$(eval $(call gb_CppunitTest_use_vcl,sd_activex_controls_tests))
+
+$(eval $(call gb_CppunitTest_use_components,sd_activex_controls_tests,\
+ animations/source/animcore/animcore \
+ basic/util/sb \
+ chart2/source/chartcore \
+ chart2/source/controller/chartcontroller \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ dbaccess/util/dba \
+ desktop/source/deployment/deployment \
+ embeddedobj/util/embobj \
+ emfio/emfio \
+ filter/source/config/cache/filterconfig1 \
+ filter/source/odfflatxml/odfflatxml \
+ filter/source/svg/svgfilter \
+ filter/source/xmlfilteradaptor/xmlfa \
+ filter/source/xmlfilterdetect/xmlfd \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ sd/util/sd \
+ sd/util/sdfilt \
+ sd/util/sdd \
+ $(if $(ENABLE_PDFIMPORT),sdext/source/pdfimport/pdfimport) \
+ sfx2/util/sfx \
+ sot/util/sot \
+ svl/source/fsstor/fsstorage \
+ svtools/util/svt \
+ svx/util/svxcore \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/expand/ucpexpand1 \
+ ucb/source/ucp/file/ucpfile1 \
+ ucb/source/ucp/package/ucppkg1 \
+ ucb/source/ucp/tdoc/ucptdoc1 \
+ unotools/util/utl \
+ unoxml/source/rdf/unordf \
+ unoxml/source/service/unoxml \
+ uui/util/uui \
+ xmloff/util/xo \
+ xmlsecurity/util/xmlsecurity \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sd_activex_controls_tests))
+
+# vim: set noet sw=4 ts=4: \ No newline at end of file
diff --git a/sd/Module_sd.mk b/sd/Module_sd.mk
index 27b8b37dc79d..8e2cb1122008 100644
--- a/sd/Module_sd.mk
+++ b/sd/Module_sd.mk
@@ -36,6 +36,7 @@ $(eval $(call gb_Module_add_check_targets,sd,\
CppunitTest_sd_filters_test \
CppunitTest_sd_misc_tests \
CppunitTest_sd_html_export_tests \
+ CppunitTest_sd_activex_controls_tests \
))
endif
diff --git a/sd/qa/unit/activex-controls-tests.cxx b/sd/qa/unit/activex-controls-tests.cxx
new file mode 100755
index 000000000000..13b35ce1450b
--- /dev/null
+++ b/sd/qa/unit/activex-controls-tests.cxx
@@ -0,0 +1,1228 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+#include "sdmodeltestbase.hxx"
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/drawing/XControlShape.hpp>
+#include <com/sun/star/awt/TextAlign.hpp>
+#include <com/sun/star/style/VerticalAlignment.hpp>
+#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+#include <com/sun/star/awt/VisualEffect.hpp>
+#include <com/sun/star/awt/ImagePosition.hpp>
+#include <com/sun/star/awt/ImageScaleMode.hpp>
+#include <com/sun/star/awt/FontWeight.hpp>
+#include <com/sun/star/awt/FontSlant.hpp>
+#include <com/sun/star/awt/FontUnderline.hpp>
+#include <com/sun/star/awt/FontStrikeout.hpp>
+
+
+class SdActiveXControlsTest: public SdModelTestBase
+{
+public:
+ void testBackgroundColor();
+ void testLabelProperties();
+ void testTextBoxProperties();
+ void testSpinButtonProperties();
+ void testCommandButtonProperties();
+ void testScrollBarProperties();
+ void testCheckBoxProperties();
+ void testOptionButtonProperties();
+ void testComboBoxProperties();
+ void testListBoxProperties();
+ void testToggleButtonProperties();
+ void testPictureProperties();
+ void testFontProperties();
+
+ CPPUNIT_TEST_SUITE(SdActiveXControlsTest);
+
+ CPPUNIT_TEST(testBackgroundColor);
+ CPPUNIT_TEST(testLabelProperties);
+ CPPUNIT_TEST(testTextBoxProperties);
+ CPPUNIT_TEST(testSpinButtonProperties);
+ CPPUNIT_TEST(testCommandButtonProperties);
+ CPPUNIT_TEST(testScrollBarProperties);
+ CPPUNIT_TEST(testCheckBoxProperties);
+ CPPUNIT_TEST(testOptionButtonProperties);
+ CPPUNIT_TEST(testComboBoxProperties);
+ CPPUNIT_TEST(testListBoxProperties);
+ CPPUNIT_TEST(testToggleButtonProperties);
+ CPPUNIT_TEST(testPictureProperties);
+ CPPUNIT_TEST(testFontProperties);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void SdActiveXControlsTest::testBackgroundColor()
+{
+ // Check whether all system colors are imported correctly
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/control_background_color.pptx"), PPTX);
+
+ const std::vector<sal_Int32> vBackgroundColors =
+ {
+ 0xD4D0C8, // Scroll Bars
+ 0x004E98, // Desktop
+ 0x0054E3, // Active Title Bar
+ 0x7A96DF, // Inactive Title Bar
+ 0xFFFFFF, // Menu Bar
+ 0xFFFFFF, // Window Background
+ 0x000000, // Window Frame
+ 0x000000, // Menu Text
+ 0x000000, // Window Text
+ 0xFFFFFF, // Active Title Bar Text
+ 0xD4D0C8, // Active Border
+ 0xD4D0C8, // Inactive Border
+ 0x808080, // Application Workspace
+ 0x316AC5, // Highlight
+ 0xFFFFFF, // Highlight Text
+ 0xECE9D8, // Button Face
+ 0xACA899, // Button Shadow
+ 0xACA899, // Disabled Text
+ 0x000000, // Button Text
+ 0xD8E4F8, // Inactive Title Bar Text
+ 0xFFFFFF, // Button Highlight
+ 0x716F64, // Button Dark Shadow
+ 0xF1EFE2, // Button Light Shadow
+ 0x000000, // Tooltip Text
+ 0xFFFFE1, // Tooltip
+ 0xFF0000, // Custom red color
+ };
+
+ for (size_t i = 0; i < vBackgroundColors.size(); ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), vBackgroundColors[i], nColor);
+ }
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testLabelProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_label.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Label1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ style::VerticalAlignment eAlign;
+ xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign;
+ CPPUNIT_ASSERT_EQUAL(style::VerticalAlignment_TOP, eAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Label"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xE0E0E0), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000FF), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FF00), nBorderColor);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign;
+ CPPUNIT_ASSERT_EQUAL(style::VerticalAlignment_TOP, eAlign);
+
+ // Third control has transparent background
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testTextBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_textbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sText;
+ xPropertySet->getPropertyValue("Text") >>= sText;
+ CPPUNIT_ASSERT_EQUAL(OUString(), sText);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ style::VerticalAlignment eAlign;
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign);
+
+ bool bHideSelection;
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bHideSelection);
+
+ sal_Int16 nMaxLength;
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxLength;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nMaxLength);
+
+ sal_Int16 nEchoChar;
+ xPropertySet->getPropertyValue("EchoChar") >>= nEchoChar;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nEchoChar);
+
+ bool bHScroll;
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bHScroll);
+
+ bool bVScroll;
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bVScroll);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Text") >>= sText;
+ CPPUNIT_ASSERT_EQUAL(OUString("Some Text"), sText);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x404040), nColor);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00C000), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("VerticalAlign") >>= eAlign);
+
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bHideSelection);
+
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxLength;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(50), nMaxLength);
+
+ xPropertySet->getPropertyValue("EchoChar") >>= nEchoChar;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16('x'), nEchoChar);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bVScroll);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly); //Bugous, should be true (tdf#111417)
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(false, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bVScroll);
+
+ // Fourth shape has both scroll bar
+ xControlShape.set(getShapeFromPage(3, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("HScroll") >>= bHScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bHScroll);
+
+ xPropertySet->getPropertyValue("VScroll") >>= bVScroll;
+ CPPUNIT_ASSERT_EQUAL(true, bVScroll);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testSpinButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_spinbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ sal_Int32 nMax;
+ xPropertySet->getPropertyValue("SpinValueMax") >>= nMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), nMax);
+
+ sal_Int32 nMin;
+ xPropertySet->getPropertyValue("SpinValueMin") >>= nMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nMin);
+
+ sal_Int32 nIncrement;
+ xPropertySet->getPropertyValue("SpinIncrement") >>= nIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nIncrement);
+
+ bool bRepeat;
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(true, bRepeat);
+
+ sal_Int32 nDelay;
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(50), nDelay);
+
+ sal_Int32 nArrowColor;
+ xPropertySet->getPropertyValue("SymbolColor") >>= nArrowColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nArrowColor);
+
+ sal_Int32 nOrientation;
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ sal_Int32 nSpinValue;
+ xPropertySet->getPropertyValue("SpinValue") >>= nSpinValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nSpinValue);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF00), nColor);
+
+ xPropertySet->getPropertyValue("SpinValueMax") >>= nMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(320), nMax);
+
+ xPropertySet->getPropertyValue("SpinValueMin") >>= nMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nMin);
+
+ xPropertySet->getPropertyValue("SpinIncrement") >>= nIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), nIncrement);
+
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(true, bRepeat);
+
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nDelay);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nArrowColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FF00), nArrowColor);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ xPropertySet->getPropertyValue("SpinValue") >>= nSpinValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nSpinValue);
+
+ // Third control has horizontal orientation
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testCommandButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_commandbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("CommandButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bFocusOnClick;
+ xPropertySet->getPropertyValue("FocusOnClick") >>= bFocusOnClick;
+ CPPUNIT_ASSERT_EQUAL(true, bFocusOnClick);
+
+ bool bRepeat;
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(false, bRepeat);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x0000FF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF80), nColor);
+
+ xPropertySet->getPropertyValue("FocusOnClick") >>= bFocusOnClick;
+ CPPUNIT_ASSERT_EQUAL(false, bFocusOnClick);
+
+ xPropertySet->getPropertyValue("Repeat") >>= bRepeat;
+ CPPUNIT_ASSERT_EQUAL(false, bRepeat);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ // Transparent background
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testScrollBarProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_scrollbar.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ sal_Int32 nDelay;
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(50), nDelay);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ sal_Int32 nVisibleSize;
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nVisibleSize);
+
+ sal_Int32 nScrollValueMin;
+ xPropertySet->getPropertyValue("ScrollValueMin") >>= nScrollValueMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nScrollValueMin);
+
+ sal_Int32 nScrollValueMax;
+ xPropertySet->getPropertyValue("ScrollValueMax") >>= nScrollValueMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(32767), nScrollValueMax);
+
+ sal_Int32 nScrollValue;
+ xPropertySet->getPropertyValue("DefaultScrollValue") >>= nScrollValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nScrollValue);
+
+ sal_Int32 nLineIncrement;
+ xPropertySet->getPropertyValue("LineIncrement") >>= nLineIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nLineIncrement);
+
+ sal_Int32 nBlockIncrement;
+ xPropertySet->getPropertyValue("BlockIncrement") >>= nBlockIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nBlockIncrement);
+
+ sal_Int32 nOrientation;
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FFFF), nColor);
+
+ xPropertySet->getPropertyValue("SymbolColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("RepeatDelay") >>= nDelay;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(230), nDelay);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nBorderStyle);
+
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nVisibleSize);
+
+ xPropertySet->getPropertyValue("ScrollValueMin") >>= nScrollValueMin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(123), nScrollValueMin);
+
+ xPropertySet->getPropertyValue("ScrollValueMax") >>= nScrollValueMax;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1234567), nScrollValueMax);
+
+ xPropertySet->getPropertyValue("DefaultScrollValue") >>= nScrollValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(125), nScrollValue);
+
+ xPropertySet->getPropertyValue("LineIncrement") >>= nLineIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), nLineIncrement);
+
+ xPropertySet->getPropertyValue("BlockIncrement") >>= nBlockIncrement;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), nBlockIncrement);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::VERTICAL), nOrientation);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Orientation") >>= nOrientation;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(awt::ScrollBarOrientation::HORIZONTAL), nOrientation);
+
+ xPropertySet->getPropertyValue("VisibleSize") >>= nVisibleSize;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nVisibleSize);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testCheckBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_checkbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("CheckBox1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int16 nVisualEffect;
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::LOOK3D), nVisualEffect);
+
+ bool bTriState;
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(false, bTriState);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF80FF), nColor);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::FLAT), nVisualEffect);
+
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(true, bTriState);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("TriState") >>= bTriState;
+ CPPUNIT_ASSERT_EQUAL(true, bTriState);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testOptionButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_optionbutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("OptionButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int16 nVisualEffect;
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::LOOK3D), nVisualEffect);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x00FFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("VisualEffect") >>= nVisualEffect;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::VisualEffect::FLAT), nVisualEffect);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState); // TriState / undefiend imported as unchecked
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testComboBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_combobox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bAutocomplete;
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(true, bAutocomplete);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nBorderColor);
+
+ bool bDropdown;
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(true, bDropdown);
+
+ bool bHideInactiveSelection;
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideInactiveSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bHideInactiveSelection);
+
+ sal_Int16 nLineCount;
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(8), nLineCount);
+
+ sal_Int16 nMaxTextLen;
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxTextLen;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nMaxTextLen);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x800000), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(true, bAutocomplete);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x404040), nBorderColor);
+
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(true, bDropdown);
+
+ xPropertySet->getPropertyValue("HideInactiveSelection") >>= bHideInactiveSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bHideInactiveSelection);
+
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(12), nLineCount);
+
+ xPropertySet->getPropertyValue("MaxTextLen") >>= nMaxTextLen;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(130), nMaxTextLen);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly); // Bugous, should be true (tdf#111417)
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Autocomplete") >>= bAutocomplete;
+ CPPUNIT_ASSERT_EQUAL(false, bAutocomplete);
+
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(false, bDropdown);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySet->getPropertyValue("BackgroundColor") >>= nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testListBoxProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_listbox.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ sal_Int16 nBorderStyle;
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nBorderStyle);
+
+ sal_Int32 nBorderColor;
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nBorderColor);
+
+ bool bDropdown;
+ xPropertySet->getPropertyValue("Dropdown") >>= bDropdown;
+ CPPUNIT_ASSERT_EQUAL(false, bDropdown);
+
+ bool bMultiSelection;
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiSelection);
+
+ sal_Int16 nLineCount;
+ xPropertySet->getPropertyValue("LineCount") >>= nLineCount;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(5), nLineCount);
+
+ bool bReadOnly;
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFF00), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF0000), nColor);
+
+ xPropertySet->getPropertyValue("Border") >>= nBorderStyle;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), nBorderStyle);
+
+ xPropertySet->getPropertyValue("BorderColor") >>= nBorderColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF00FF), nBorderColor);
+
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiSelection);
+
+ xPropertySet->getPropertyValue("ReadOnly") >>= bReadOnly;
+ CPPUNIT_ASSERT_EQUAL(false, bReadOnly); // Bugous, should be true (tdf#111417)
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("MultiSelection") >>= bMultiSelection;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiSelection);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testToggleButtonProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_togglebutton.pptx"), PPTX);
+
+ // First control has default properties
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sLabel;
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("ToggleButton1"), sLabel);
+
+ bool bEnabled;
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(true, bEnabled);
+
+ bool bMultiLine;
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(true, bMultiLine);
+
+ sal_Int32 nColor;
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xECE9D8), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x000000), nColor);
+
+ bool bToggle;
+ xPropertySet->getPropertyValue("Toggle") >>= bToggle;
+ CPPUNIT_ASSERT_EQUAL(true, bToggle);
+
+ sal_Int16 nState;
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState);
+
+ sal_Int16 nAlign;
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::CENTER), nAlign);
+
+ // Second control has custom properties
+ xControlShape.set(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("Label") >>= sLabel;
+ CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
+
+ xPropertySet->getPropertyValue("Enabled") >>= bEnabled;
+ CPPUNIT_ASSERT_EQUAL(false, bEnabled);
+
+ xPropertySet->getPropertyValue("MultiLine") >>= bMultiLine;
+ CPPUNIT_ASSERT_EQUAL(false, bMultiLine);
+
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFF80FF), nColor);
+
+ xPropertySet->getPropertyValue("TextColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x808080), nColor);
+
+ xPropertySet->getPropertyValue("Toggle") >>= bToggle;
+ CPPUNIT_ASSERT_EQUAL(true, bToggle);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::LEFT), nAlign);
+
+ // Third shape has some other custom properties
+ xControlShape.set(getShapeFromPage(2, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+
+ xPropertySet->getPropertyValue("State") >>= nState;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(0), nState); // Undefined state
+
+ xPropertySet->getPropertyValue("Align") >>= nAlign;
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(awt::TextAlign::RIGHT), nAlign);
+
+ // Transparent background
+ xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0xFFFFFF), nColor);
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testPictureProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_picture.pptx"), PPTX);
+
+ // Different controls has different image positioning
+
+ // Command buttons here with icons
+ const std::vector<sal_Int16> vImagePositions =
+ {
+ awt::ImagePosition::AboveCenter,
+ awt::ImagePosition::LeftTop,
+ awt::ImagePosition::LeftCenter,
+ awt::ImagePosition::LeftBottom,
+ awt::ImagePosition::RightTop,
+ awt::ImagePosition::RightCenter,
+ awt::ImagePosition::RightBottom,
+ awt::ImagePosition::AboveLeft,
+ awt::ImagePosition::AboveRight,
+ awt::ImagePosition::BelowLeft,
+ awt::ImagePosition::BelowCenter,
+ awt::ImagePosition::BelowRight,
+ awt::ImagePosition::Centered,
+ };
+
+ for (size_t i = 0; i < vImagePositions.size(); ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OUString sImageURL;
+ xPropertySet->getPropertyValue("ImageURL") >>= sImageURL;
+ CPPUNIT_ASSERT(!sImageURL.isEmpty());
+
+ sal_Int16 nColor;
+ xPropertySet->getPropertyValue("ImagePosition") >>= nColor;
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), vImagePositions[i], nColor);
+ }
+
+ // Picture controls with different properties
+ for (size_t i = 0; i < 4; ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(vImagePositions.size() + i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+
+ OUString sImageURL;
+ xPropertySet->getPropertyValue("ImageURL") >>= sImageURL;
+ if (i == 0) // First control has no image specified
+ CPPUNIT_ASSERT_MESSAGE(sMessage.getStr(), sImageURL.isEmpty());
+ else
+ CPPUNIT_ASSERT_MESSAGE(sMessage.getStr(), !sImageURL.isEmpty());
+
+ sal_Int16 nScaleMode;
+ xPropertySet->getPropertyValue("ScaleMode") >>= nScaleMode;
+ if (i == 2) // Stretch mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::ANISOTROPIC, nScaleMode);
+ else if (i == 3) // Zoom mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::ISOTROPIC, nScaleMode);
+ else // Clip mode
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::ImageScaleMode::NONE, nScaleMode);
+ }
+
+ // Note: LO picture control does not support tiled image and also image positioning
+ // When there is no scaling picture positioned to center.
+
+ xDocShRef->DoClose();
+}
+
+void SdActiveXControlsTest::testFontProperties()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_fontproperties.pptx"), PPTX);
+
+ // Different controls has different font properties
+
+ for (size_t i = 0; i < 8; ++i)
+ {
+ uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(i, 0, xDocShRef), uno::UNO_QUERY_THROW);
+ CPPUNIT_ASSERT(xControlShape.is());
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+
+ OString sMessage = "The wrong control's index is: " + OString::number(i);
+
+ OUString sFontName;
+ xPropertySet->getPropertyValue("FontName") >>= sFontName;
+ if (i == 4 || i == 5)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), OUString("Times New Roman"), sFontName);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), OUString("Arial"), sFontName);
+
+ float fFontWeight;
+ xPropertySet->getPropertyValue("FontWeight") >>= fFontWeight;
+ if (i == 2 || i == 4)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::FontWeight::BOLD, fFontWeight);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), awt::FontWeight::NORMAL, fFontWeight);
+
+ sal_Int16 nFontSlant;
+ xPropertySet->getPropertyValue("FontSlant") >>= nFontSlant;
+ if (i == 3 || i == 4)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontSlant_ITALIC), nFontSlant);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontSlant_NONE), nFontSlant);
+
+ sal_Int16 nFontUnderline;
+ xPropertySet->getPropertyValue("FontUnderline") >>= nFontUnderline;
+ if (i == 7)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontUnderline::SINGLE), nFontUnderline);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontUnderline::NONE), nFontUnderline);
+
+ sal_Int16 nFontStrikeout;
+ xPropertySet->getPropertyValue("FontStrikeout") >>= nFontStrikeout;
+ if (i == 6 || i == 7)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontStrikeout::SINGLE), nFontStrikeout);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), sal_Int16(awt::FontStrikeout::NONE), nFontStrikeout);
+
+ float fFontHeight;
+ xPropertySet->getPropertyValue("FontHeight") >>= fFontHeight;
+ if (i == 1)
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 24.0f, fFontHeight);
+ else
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 14.0f, fFontHeight);
+ }
+
+ xDocShRef->DoClose();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SdActiveXControlsTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ \ No newline at end of file
diff --git a/sd/qa/unit/data/pptx/activex_checkbox.pptx b/sd/qa/unit/data/pptx/activex_checkbox.pptx
index 66eac985b203..acca5f696b4c 100755
--- a/sd/qa/unit/data/pptx/activex_checkbox.pptx
+++ b/sd/qa/unit/data/pptx/activex_checkbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_combobox.pptx b/sd/qa/unit/data/pptx/activex_combobox.pptx
new file mode 100755
index 000000000000..21bb21a1ba01
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_combobox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_commandbutton.pptx b/sd/qa/unit/data/pptx/activex_commandbutton.pptx
new file mode 100755
index 000000000000..29a2556172d9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_commandbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_fontproperties.pptx b/sd/qa/unit/data/pptx/activex_fontproperties.pptx
new file mode 100755
index 000000000000..2f117d326d1d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_fontproperties.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_label.pptx b/sd/qa/unit/data/pptx/activex_label.pptx
new file mode 100755
index 000000000000..3e1404e68947
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_label.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_listbox.pptx b/sd/qa/unit/data/pptx/activex_listbox.pptx
new file mode 100755
index 000000000000..5e232579f1f1
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_listbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_optionbutton.pptx b/sd/qa/unit/data/pptx/activex_optionbutton.pptx
new file mode 100755
index 000000000000..e75498484caf
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_optionbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_picture.pptx b/sd/qa/unit/data/pptx/activex_picture.pptx
new file mode 100755
index 000000000000..425a909e16f6
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_picture.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_scrollbar.pptx b/sd/qa/unit/data/pptx/activex_scrollbar.pptx
new file mode 100755
index 000000000000..ba7c14d93000
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_scrollbar.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_spinbutton.pptx b/sd/qa/unit/data/pptx/activex_spinbutton.pptx
new file mode 100755
index 000000000000..32b5f73e88f3
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_spinbutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_textbox.pptx b/sd/qa/unit/data/pptx/activex_textbox.pptx
new file mode 100755
index 000000000000..68dec15d5a0d
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_textbox.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/activex_togglebutton.pptx b/sd/qa/unit/data/pptx/activex_togglebutton.pptx
new file mode 100755
index 000000000000..3d4bfd287dd9
--- /dev/null
+++ b/sd/qa/unit/data/pptx/activex_togglebutton.pptx
Binary files differ
diff --git a/sd/qa/unit/data/pptx/control_background_color.pptx b/sd/qa/unit/data/pptx/control_background_color.pptx
new file mode 100755
index 000000000000..5d3fe61c5c69
--- /dev/null
+++ b/sd/qa/unit/data/pptx/control_background_color.pptx
Binary files differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index ba1a44485f25..47daa04cd3ce 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -167,7 +167,6 @@ public:
void testSmartArtChildren();
void testSmartArtText();
void testTdf109223();
- void testActiveXCheckbox();
void testTdf109187();
bool checkPattern(sd::DrawDocShellRef const & rDocRef, int nShapeNumber, std::vector<sal_uInt8>& rExpected);
@@ -243,7 +242,6 @@ public:
CPPUNIT_TEST(testSmartArtChildren);
CPPUNIT_TEST(testSmartArtText);
CPPUNIT_TEST(testTdf109223);
- CPPUNIT_TEST(testActiveXCheckbox);
CPPUNIT_TEST(testTdf109187);
CPPUNIT_TEST_SUITE_END();
@@ -2350,40 +2348,6 @@ void SdImportTest::testTdf109223()
xDocShRef->DoClose();
}
-void SdImportTest::testActiveXCheckbox()
-{
- // ActiveX controls were imported as images
- sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/activex_checkbox.pptx"), PPTX);
- uno::Reference< drawing::XControlShape > xControlShape(getShapeFromPage(0, 0, xDocShRef), uno::UNO_QUERY_THROW);
- CPPUNIT_ASSERT(xControlShape.is());
-
- // Check control type
- uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
- uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
- CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.CheckBox")));
-
- // Check custom label
- OUString sLabel;
- xPropertySet->getPropertyValue("Label") >>= sLabel;
- CPPUNIT_ASSERT_EQUAL(OUString("Custom Caption"), sLabel);
-
- // Check background color (highlight system color)
- sal_Int32 nColor;
- xPropertySet->getPropertyValue("BackgroundColor") >>= nColor;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0x316AC5), nColor);
-
- // Check Text color (active border system color)
- xPropertySet->getPropertyValue("TextColor") >>= nColor;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(0xD4D0C8), nColor);
-
- // Check state of the checkbox
- sal_Int16 nState;
- xPropertySet->getPropertyValue("State") >>= nState;
- CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nState);
-
- xDocShRef->DoClose();
-}
-
void SdImportTest::testTdf109187()
{
sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf109187.pptx"), PPTX);