[Libreoffice-commits] core.git: Branch 'feature/dialog-screenshots' - sc/qa sd/qa sw/CppunitTest_sw_dialogs_test.mk sw/CppunitTest_sw_filters_test.mk sw/Module_sw.mk sw/qa

Armin Le Grand Armin.Le.Grand at cib.de
Thu Jul 21 16:24:03 UTC 2016


 sc/qa/unit/screenshots/data/screenshots.txt |    5 
 sc/qa/unit/screenshots/screenshots.cxx      |    2 
 sd/qa/unit/data/dialogs-test.txt            |    5 
 sd/qa/unit/dialogs-test.cxx                 |    2 
 sw/CppunitTest_sw_dialogs_test.mk           |   71 +++++++++
 sw/CppunitTest_sw_filters_test.mk           |    2 
 sw/Module_sw.mk                             |    3 
 sw/qa/unit/data/sw-dialogs-test.txt         |  203 ++++++++++++++++++++++++++++
 sw/qa/unit/sw-dialogs-test.cxx              |  193 ++++++++++++++++++++++++++
 9 files changed, 479 insertions(+), 7 deletions(-)

New commits:
commit e02bea12d36cd83d2ea1ae781ebaa4df45724454
Author: Armin Le Grand <Armin.Le.Grand at cib.de>
Date:   Thu Jul 21 18:20:00 2016 +0200

    Added dialog test case for screenshot creation for writer
    
    Writer has currently no known dialogs that get created
    with an opened writer document. There are some ui files
    that do not work with fallback (7), but most work (167).
    Not all look good, though.
    
    Change-Id: I92a6a5077e3a8c93148e162455093399ba1f99ed

diff --git a/sc/qa/unit/screenshots/data/screenshots.txt b/sc/qa/unit/screenshots/data/screenshots.txt
index 40a3629..f2baf82 100644
--- a/sc/qa/unit/screenshots/data/screenshots.txt
+++ b/sc/qa/unit/screenshots/data/screenshots.txt
@@ -41,8 +41,9 @@ modules/scalc/ui/formatcellsdialog.ui
 # be visualized using a fallback based on VclBuilder
 #
 
-# modules/scalc/ui/headerfootercontent.ui <- deactivated, leads to problems and the test to not work
-# modules/scalc/ui/pivottablelayoutdialog.ui <- deactivated, leads to problems and the test to not work
+# deactivated, leads to problems and the test to not work
+# modules/scalc/ui/headerfootercontent.ui
+# modules/scalc/ui/pivottablelayoutdialog.ui
 
 modules/scalc/ui/autoformattable.ui
 modules/scalc/ui/sortwarning.ui
diff --git a/sc/qa/unit/screenshots/screenshots.cxx b/sc/qa/unit/screenshots/screenshots.cxx
index 927ec01..255fe9c 100644
--- a/sc/qa/unit/screenshots/screenshots.cxx
+++ b/sc/qa/unit/screenshots/screenshots.cxx
@@ -283,7 +283,7 @@ void ScScreenshotTest::testOpeningModalDialogs()
         OUString aURL = aDirectories.getURLFromSrc("sc/qa/unit/screenshots/data/screenshots.txt");
         SvFileStream aStream(aURL, StreamMode::READ);
         OString aNextUIFile;
-        OString aComment("#");
+        const OString aComment("#");
 
         while (aStream.ReadLine(aNextUIFile))
         {
diff --git a/sd/qa/unit/data/dialogs-test.txt b/sd/qa/unit/data/dialogs-test.txt
index 81fc5f0..b54688f 100644
--- a/sd/qa/unit/data/dialogs-test.txt
+++ b/sd/qa/unit/data/dialogs-test.txt
@@ -53,7 +53,10 @@ modules/simpress/ui/headerfooterdialog.ui
 modules/sdraw/ui/paranumberingtab.ui
 modules/sdraw/ui/namedesign.ui
 modules/sdraw/ui/tabledesigndialog.ui
-# modules/simpress/ui/assistentdialog.ui <- deactivated, leads to problems and the test to not work
+
+# deactivated, leads to problems and the test to not work
+# modules/simpress/ui/assistentdialog.ui
+
 modules/simpress/ui/headerfootertab.ui
 modules/simpress/ui/customanimationproperties.ui
 modules/simpress/ui/customanimationeffecttab.ui
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index 368a96a..1b0cf2b 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -612,7 +612,7 @@ void SdDialogsTest::openAnyDialog()
         OUString aURL = aDirectories.getURLFromSrc("sd/qa/unit/data/dialogs-test.txt");
         SvFileStream aStream(aURL, StreamMode::READ);
         OString aNextUIFile;
-        OString aComment("#");
+        const OString aComment("#");
 
         while (aStream.ReadLine(aNextUIFile))
         {
diff --git a/sw/CppunitTest_sw_dialogs_test.mk b/sw/CppunitTest_sw_dialogs_test.mk
new file mode 100644
index 0000000..7d98a2b
--- /dev/null
+++ b/sw/CppunitTest_sw_dialogs_test.mk
@@ -0,0 +1,71 @@
+# -*- 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,sw_dialogs_test))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sw_dialogs_test, \
+    sw/qa/unit/sw-dialogs-test \
+))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,sw_dialogs_test))
+
+$(eval $(call gb_CppunitTest_set_include,sw_dialogs_test,\
+    -I$(SRCDIR)/sw/source/ui/inc \
+    -I$(SRCDIR)/sw/inc \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sw_dialogs_test, \
+    basegfx \
+    comphelper \
+    cppu \
+    cppuhelper \
+    drawinglayer \
+    editeng \
+    i18nlangtag \
+    i18nutil \
+    msfilter \
+    oox \
+    sal \
+    salhelper \
+    sax \
+    sw \
+    swui \
+    sfx \
+    sot \
+    svl \
+    svt \
+    svx \
+    svxcore \
+    test \
+    tl \
+    tk \
+    ucbhelper \
+    unotest \
+    utl \
+    vcl \
+    xo \
+    $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_external,sw_dialogs_test,boost_headers))
+
+$(eval $(call gb_CppunitTest_use_sdk_api,sw_dialogs_test))
+
+$(eval $(call gb_CppunitTest_use_ure,sw_dialogs_test))
+$(eval $(call gb_CppunitTest_use_vcl_non_headless_with_windows,sw_dialogs_test))
+
+$(eval $(call gb_CppunitTest_use_rdb,sw_dialogs_test,services))
+
+# $(eval $(call gb_CppunitTest_use_configuration,sw_dialogs_test))
+$(eval $(call gb_CppunitTest_use_instdir_configuration,sw_dialogs_test))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/CppunitTest_sw_filters_test.mk b/sw/CppunitTest_sw_filters_test.mk
index d3cf68b..5d07ee3 100644
--- a/sw/CppunitTest_sw_filters_test.mk
+++ b/sw/CppunitTest_sw_filters_test.mk
@@ -16,9 +16,11 @@ $(eval $(call gb_CppunitTest_use_externals,sw_filters_test,\
 	libxml2 \
 ))
 
+ifneq ($(DISABLE_CVE_TESTS),TRUE)
 $(eval $(call gb_CppunitTest_add_exception_objects,sw_filters_test, \
     sw/qa/core/filters-test \
 ))
+endif
 
 $(eval $(call gb_CppunitTest_use_libraries,sw_filters_test, \
     sw \
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 39b466f..890a051 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -79,11 +79,10 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\
 ))
 endif
 
-ifneq ($(DISABLE_CVE_TESTS),TRUE)
 $(eval $(call gb_Module_add_slowcheck_targets,sw,\
     CppunitTest_sw_filters_test \
+    CppunitTest_sw_dialogs_test \
 ))
-endif
 
 ifneq ($(OOO_JUNIT_JAR),)
 $(eval $(call gb_Module_add_subsequentcheck_targets,sw,\
diff --git a/sw/qa/unit/data/sw-dialogs-test.txt b/sw/qa/unit/data/sw-dialogs-test.txt
new file mode 100644
index 0000000..5e910a5
--- /dev/null
+++ b/sw/qa/unit/data/sw-dialogs-test.txt
@@ -0,0 +1,203 @@
+# -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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/.
+#
+
+# This file contains all dialogs that the test dialogs-test
+# will test. It will read one-by-one, try to open it and create a
+# screenshot that will be saved in workdir/screenshots using the
+# pattern of the ui-file name.
+#
+# You may use empty lines, or lines starrting with '#' which are treated
+# as comments. All other lines have to end with <CR> and will be interpreted
+# as ui-files.
+
+#
+# The known dialogs which have a hard-coded representation
+#
+
+#
+# Dialogs without a hard-coded representation. These will
+# be visualized using a fallback based on VclBuilder
+#
+
+# deactivated, leads to problems and the test to not work
+# modules/swriter/ui/templatedialog(nRegion).ui
+# modules/swriter/ui/autoformattable.ui
+# modules/swriter/ui/endnotepage.ui
+# modules/swriter/ui/footnotesendnotestabpage.ui
+# modules/swriter/ui/linenumbering.ui
+# modules/swriter/ui/footnotepage.ui
+# modules/swriter/ui/outlinenumberingpage.ui
+
+modules/swriter/ui/abstractdialog.ui
+modules/swriter/ui/addentrydialog.ui
+modules/swriter/ui/addressblockdialog.ui
+modules/swriter/ui/alreadyexistsdialog.ui
+modules/swriter/ui/asciifilterdialog.ui
+modules/swriter/ui/asksearchdialog.ui
+modules/swriter/ui/assignfieldsdialog.ui
+modules/swriter/ui/assignstylesdialog.ui
+modules/swriter/ui/attachnamedialog.ui
+modules/swriter/ui/authenticationsettingsdialog.ui
+modules/swriter/ui/autotext.ui
+modules/swriter/ui/bibliographyentry.ui
+modules/swriter/ui/bulletsandnumbering.ui
+modules/swriter/ui/businessdatapage.ui
+modules/swriter/ui/cannotsavelabeldialog.ui
+modules/swriter/ui/captiondialog.ui
+modules/swriter/ui/captionoptions.ui
+modules/swriter/ui/cardformatpage.ui
+modules/swriter/ui/cardmediumpage.ui
+modules/swriter/ui/ccdialog.ui
+modules/swriter/ui/characterproperties.ui
+modules/swriter/ui/charurlpage.ui
+modules/swriter/ui/columndialog.ui
+modules/swriter/ui/columnpage.ui
+modules/swriter/ui/columnwidth.ui
+modules/swriter/ui/conditionpage.ui
+modules/swriter/ui/converttexttable.ui
+modules/swriter/ui/createaddresslist.ui
+modules/swriter/ui/createauthorentry.ui
+modules/swriter/ui/createautomarkdialog.ui
+modules/swriter/ui/customizeaddrlistdialog.ui
+modules/swriter/ui/datasourcesunavailabledialog.ui
+modules/swriter/ui/dropcapspage.ui
+modules/swriter/ui/dropdownfielddialog.ui
+modules/swriter/ui/editcategories.ui
+modules/swriter/ui/editfielddialog.ui
+modules/swriter/ui/editsectiondialog.ui
+modules/swriter/ui/envaddresspage.ui
+modules/swriter/ui/envdialog.ui
+modules/swriter/ui/envformatpage.ui
+modules/swriter/ui/envprinterpage.ui
+modules/swriter/ui/exchangedatabases.ui
+modules/swriter/ui/fielddialog.ui
+modules/swriter/ui/findentrydialog.ui
+modules/swriter/ui/flddbpage.ui
+modules/swriter/ui/flddocinfopage.ui
+modules/swriter/ui/flddocumentpage.ui
+modules/swriter/ui/fldfuncpage.ui
+modules/swriter/ui/fldrefpage.ui
+modules/swriter/ui/fldvarpage.ui
+modules/swriter/ui/floatingsync.ui
+modules/swriter/ui/footendnotedialog.ui
+modules/swriter/ui/footnoteareapage.ui
+modules/swriter/ui/formatsectiondialog.ui
+modules/swriter/ui/formattablepage.ui
+modules/swriter/ui/frmaddpage.ui
+modules/swriter/ui/frmtypepage.ui
+modules/swriter/ui/frmurlpage.ui
+modules/swriter/ui/indentpage.ui
+modules/swriter/ui/indexentry.ui
+modules/swriter/ui/infonotfounddialog.ui
+modules/swriter/ui/inforeadonlydialog.ui
+modules/swriter/ui/inputfielddialog.ui
+modules/swriter/ui/insertautotextdialog.ui
+modules/swriter/ui/insertbookmark.ui
+modules/swriter/ui/insertbreak.ui
+modules/swriter/ui/insertcaption.ui
+modules/swriter/ui/insertdbcolumnsdialog.ui
+modules/swriter/ui/insertfootnote.ui
+modules/swriter/ui/insertscript.ui
+modules/swriter/ui/insertsectiondialog.ui
+modules/swriter/ui/inserttable.ui
+modules/swriter/ui/labeldialog.ui
+modules/swriter/ui/labelformatpage.ui
+modules/swriter/ui/labeloptionspage.ui
+modules/swriter/ui/mailconfigpage.ui
+modules/swriter/ui/mailmerge.ui
+modules/swriter/ui/mailmergedialog.ui
+modules/swriter/ui/managechangessidebar.ui
+modules/swriter/ui/mergeconnectdialog.ui
+modules/swriter/ui/mergetabledialog.ui
+modules/swriter/ui/mmaddressblockpage.ui
+modules/swriter/ui/mmcreatingdialog.ui
+modules/swriter/ui/mmlayoutpage.ui
+modules/swriter/ui/mmmailbody.ui
+modules/swriter/ui/mmoutputtypepage.ui
+modules/swriter/ui/mmresultemaildialog.ui
+modules/swriter/ui/mmresultprintdialog.ui
+modules/swriter/ui/mmresultsavedialog.ui
+modules/swriter/ui/mmsalutationpage.ui
+modules/swriter/ui/mmselectpage.ui
+modules/swriter/ui/mmsendmails.ui
+modules/swriter/ui/newuserindexdialog.ui
+modules/swriter/ui/notebookbar.ui
+modules/swriter/ui/numberingnamedialog.ui
+modules/swriter/ui/numparapage.ui
+modules/swriter/ui/optcaptionpage.ui
+modules/swriter/ui/optcomparison.ui
+modules/swriter/ui/optcompatpage.ui
+modules/swriter/ui/optfonttabpage.ui
+modules/swriter/ui/optformataidspage.ui
+modules/swriter/ui/optgeneralpage.ui
+modules/swriter/ui/optredlinepage.ui
+modules/swriter/ui/opttablepage.ui
+modules/swriter/ui/opttestpage.ui
+modules/swriter/ui/outlinenumbering.ui
+modules/swriter/ui/outlinepositionpage.ui
+modules/swriter/ui/paradialog.ui
+modules/swriter/ui/picturepage.ui
+modules/swriter/ui/previewzoomdialog.ui
+modules/swriter/ui/printeroptions.ui
+modules/swriter/ui/printmergedialog.ui
+modules/swriter/ui/printmonitordialog.ui
+modules/swriter/ui/printoptionspage.ui
+modules/swriter/ui/privateuserpage.ui
+modules/swriter/ui/querycontinuebegindialog.ui
+modules/swriter/ui/querycontinueenddialog.ui
+modules/swriter/ui/querydefaultcompatdialog.ui
+modules/swriter/ui/queryrotateintostandarddialog.ui
+modules/swriter/ui/querysavelabeldialog.ui
+modules/swriter/ui/queryshowchangesdialog.ui
+modules/swriter/ui/renameautotextdialog.ui
+modules/swriter/ui/renameentrydialog.ui
+modules/swriter/ui/renameobjectdialog.ui
+modules/swriter/ui/rowheight.ui
+modules/swriter/ui/saveashtmldialog.ui
+modules/swriter/ui/savelabeldialog.ui
+modules/swriter/ui/sectionpage.ui
+modules/swriter/ui/selectaddressdialog.ui
+modules/swriter/ui/selectautotextdialog.ui
+modules/swriter/ui/selectblockdialog.ui
+modules/swriter/ui/selectindexdialog.ui
+modules/swriter/ui/selecttabledialog.ui
+modules/swriter/ui/sidebarpage.ui
+modules/swriter/ui/sidebarstylepresets.ui
+modules/swriter/ui/sidebartheme.ui
+modules/swriter/ui/sidebarwrap.ui
+modules/swriter/ui/sortdialog.ui
+modules/swriter/ui/splittable.ui
+modules/swriter/ui/statisticsinfopage.ui
+modules/swriter/ui/stringinput.ui
+modules/swriter/ui/subjectdialog.ui
+modules/swriter/ui/tablecolumnpage.ui
+modules/swriter/ui/tablepreviewdialog.ui
+modules/swriter/ui/tableproperties.ui
+modules/swriter/ui/tabletextflowpage.ui
+modules/swriter/ui/testmailsettings.ui
+modules/swriter/ui/textgridpage.ui
+modules/swriter/ui/titlepage.ui
+modules/swriter/ui/tocdialog.ui
+modules/swriter/ui/tocentriespage.ui
+modules/swriter/ui/tocindexpage.ui
+modules/swriter/ui/tocstylespage.ui
+modules/swriter/ui/tokenwidget.ui
+modules/swriter/ui/viewoptionspage.ui
+modules/swriter/ui/warndatasourcedialog.ui
+modules/swriter/ui/warnemaildialog.ui
+modules/swriter/ui/wordcount.ui
+modules/swriter/ui/wrapdialog.ui
+modules/swriter/ui/wrappage.ui
+modules/swriter/ui/indexentry.ui
+modules/swriter/ui/bibliographyentry.ui
+modules/swriter/ui/inforeadonlydialog.ui
+modules/swriter/ui/inforeadonlydialog.ui
+modules/swriter/ui/inforeadonlydialog.ui
+modules/swriter/ui/floatingnavigation.ui
+modules/swriter/ui/queryrotateintostandarddialog.ui
diff --git a/sw/qa/unit/sw-dialogs-test.cxx b/sw/qa/unit/sw-dialogs-test.cxx
new file mode 100644
index 0000000..33e7e84
--- /dev/null
+++ b/sw/qa/unit/sw-dialogs-test.cxx
@@ -0,0 +1,193 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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 <sal/config.h>
+#include <test/screenshot_test.hxx>
+#include <rtl/strbuf.hxx>
+#include <osl/file.hxx>
+//#include <com/sun/star/lang/XComponent.hpp>
+//#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+//#include <com/sun/star/presentation/AnimationEffect.hpp>
+//#include <com/sun/star/presentation/ClickAction.hpp>
+
+#include <sfx2/app.hxx>
+//#include <sfx2/docfilt.hxx>
+//#include <sfx2/docfile.hxx>
+//#include <sfx2/sfxmodelfactory.hxx>
+//#include <svl/stritem.hxx>
+//#include <svl/aeitem.hxx>
+//#include <editeng/colritem.hxx>
+//#include <svx/svdtext.hxx>
+//#include <svx/svdotext.hxx>
+//#include <vcl/sound.hxx>
+
+//#include "drawdoc.hxx"
+//#include "../source/ui/inc/DrawDocShell.hxx"
+
+// #include <osl/process.h>
+// #include <osl/thread.h>
+// #include <osl/file.hxx>
+
+// #include "sdabstdlg.hxx"
+// #include <vcl/pngwrite.hxx>
+// #include "unomodel.hxx"
+// #include "ViewShell.hxx"
+// #include "Window.hxx"
+// #include "drawview.hxx"
+// #include "DrawViewShell.hxx"
+// #include <app.hrc>
+// #include "stlsheet.hxx"
+// #include "sdattr.hrc"
+// #include "strings.hrc"
+// #include "sdresid.hxx"
+// #include "sdattr.hxx"
+// #include "prltempl.hrc"
+
+//#include <comphelper/servicehelper.hxx>
+//#include <com/sun/star/frame/Desktop.hpp>
+//#include <com/sun/star/frame/XDesktop2.hpp>
+//#include <comphelper/processfactory.hxx>
+//#include <unotest/macros_test.hxx>
+
+#include <vcl/abstdlg.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in sd
+class SwDialogsTest : public ScreenshotTest
+{
+private:
+    /// helper method to populate KnownDialogs, called in setUp(). Needs to be
+    /// written and has to add entries to KnownDialogs
+    virtual void registerKnownDialogsByID(mapType& rKnownDialogs) override;
+
+    /// dialog creation for known dialogs by ID. Has to be implemented for
+    /// each registered known dialog
+    virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
+
+public:
+    SwDialogsTest();
+    virtual ~SwDialogsTest();
+
+    virtual void setUp() override;
+
+    // try to open a dialog
+    void openAnyDialog();
+
+    CPPUNIT_TEST_SUITE(SwDialogsTest);
+    CPPUNIT_TEST(openAnyDialog);
+    CPPUNIT_TEST_SUITE_END();
+};
+
+SwDialogsTest::SwDialogsTest()
+{
+}
+
+SwDialogsTest::~SwDialogsTest()
+{
+}
+
+void SwDialogsTest::setUp()
+{
+    ScreenshotTest::setUp();
+}
+
+void SwDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
+{
+    // fill map of known dilogs
+}
+
+VclAbstractDialog* SwDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
+{
+    return nullptr;
+}
+
+void SwDialogsTest::openAnyDialog()
+{
+    /// example how to process an input file containing the UXMLDescriptions of the dialogs
+    /// to dump
+    if (true)
+    {
+        test::Directories aDirectories;
+        OUString aURL = aDirectories.getURLFromSrc("sw/qa/unit/data/sw-dialogs-test.txt");
+        SvFileStream aStream(aURL, StreamMode::READ);
+        OString aNextUIFile;
+        const OString aComment("#");
+
+        while (aStream.ReadLine(aNextUIFile))
+        {
+            if (!aNextUIFile.isEmpty() && !aNextUIFile.startsWith(aComment))
+            {
+                // first check if it's a known dialog
+                std::unique_ptr<VclAbstractDialog> pDlg(createDialogByName(aNextUIFile));
+
+                if (pDlg)
+                {
+                    // known dialog, dump screenshot to path
+                    dumpDialogToPath(*pDlg);
+                }
+                else
+                {
+                    // unknown dialog, try fallback to generic created
+                    // VclBuilder-generated instance. Keep in mind that Dialogs
+                    // using this mechanism will probably not be layouted well
+                    // since the setup/initialization part is missing. Thus,
+                    // only use for fallback when only the UI file is available.
+                    dumpDialogToPath(aNextUIFile);
+                }
+            }
+        }
+    }
+
+    /// example how to dump all known dialogs
+    if (false)
+    {
+        // example for SfxTabDialog: 5 -> "modules/sdraw/ui/drawpagedialog.ui"
+        // example for TabDialog: 22 -> "modules/simpress/ui/headerfooterdialog.ui"
+        // example for self-adapted wizard: 0 -> "modules/simpress/ui/publishingdialog.ui"
+        for (mapType::const_iterator i = getKnownDialogs().begin(); i != getKnownDialogs().end(); i++)
+        {
+            std::unique_ptr<VclAbstractDialog> pDlg(createDialogByID((*i).second));
+
+            if (pDlg)
+            {
+                // known dialog, dump screenshot to path
+                dumpDialogToPath(*pDlg);
+            }
+            else
+            {
+                // unknown dialog, should not happen in this basic loop.
+                // You have probably forgotten to add a case and
+                // implementastion to createDialogByID, please do this
+            }
+        }
+    }
+
+    /// example how to dump a dialog using fallback functionality
+    if (false)
+    {
+        // unknown dialog, try fallback to generic created
+        // VclBuilder-generated instance. Keep in mind that Dialogs
+        // using this mechanism will probably not be layouted well
+        // since the setup/initialization part is missing. Thus,
+        // only use for fallback when only the UI file is available.
+        //
+        // Take any example here, it's only for demonstration - using
+        // even a known one to demonstrate the fallback possibility
+        const OString aUIXMLDescription("modules/swriter/ui/abstractdialog.ui");
+
+        dumpDialogToPath(aUIXMLDescription);
+    }
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(SwDialogsTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list