summaryrefslogtreecommitdiffstats
path: root/cui/qa
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /cui/qa
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'cui/qa')
-rw-r--r--cui/qa/uitest/dialogs/chardlg.py103
-rw-r--r--cui/qa/uitest/dialogs/pastedlg.py47
-rw-r--r--cui/qa/uitest/dialogs/shortcuts.py43
-rw-r--r--cui/qa/unit/cui-dialogs-test.cxx108
-rw-r--r--cui/qa/unit/cui-dialogs-test_2.cxx66
-rw-r--r--cui/qa/unit/cui-dialogs-test_3.cxx66
-rw-r--r--cui/qa/unit/cui-dialogs-test_4.cxx66
-rw-r--r--cui/qa/unit/data/cui-dialogs-test.txt98
-rw-r--r--cui/qa/unit/data/cui-dialogs-test_2.txt61
-rw-r--r--cui/qa/unit/data/cui-dialogs-test_3.txt43
-rw-r--r--cui/qa/unit/data/cui-dialogs-test_4.txt72
11 files changed, 773 insertions, 0 deletions
diff --git a/cui/qa/uitest/dialogs/chardlg.py b/cui/qa/uitest/dialogs/chardlg.py
new file mode 100644
index 000000000..2545d2682
--- /dev/null
+++ b/cui/qa/uitest/dialogs/chardlg.py
@@ -0,0 +1,103 @@
+#
+# 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/.
+#
+
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.framework import UITestCase
+from uitest.uihelper.common import select_pos
+from uitest.uihelper.common import get_state_as_dict
+
+# Test for cui/source/tabpages/chardlg.cxx.
+class Test(UITestCase):
+
+ def testSvxCharEffectsPage(self):
+ # Start Impress.
+ self.ui_test.create_doc_in_start_center("impress")
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("cancel"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ self.ui_test.execute_dialog_through_command(".uno:FontDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontTransparency = xDialog.getChild("fonttransparencymtr")
+ for _ in range(5):
+ xFontTransparency.executeAction("UP", tuple())
+ self.ui_test.close_dialog_through_button(xDialog.getChild("ok"))
+
+ # Verify the result.
+ component = self.ui_test.get_component()
+ drawPage = component.getDrawPages().getByIndex(0)
+ shape = drawPage.getByIndex(0)
+
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 100 != 5
+ # i.e. the dialog did not set transparency to 5%, instead it left the character color at
+ # COL_AUTO.
+ self.assertEqual(shape.CharTransparence, 5)
+ self.ui_test.close_doc()
+
+ def testSvxCharEffectsPageWriter(self):
+ # Start Writer.
+ self.ui_test.create_doc_in_start_center("writer")
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("writer_edit")
+ # Type a character and select it.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+
+ # Now use Format -> Character.
+ self.ui_test.execute_dialog_through_command(".uno:FontDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontTransparency = xDialog.getChild("fonttransparencymtr")
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 'false' != 'true'
+ # i.e. the transparency widget was hidden.
+ self.assertEqual(get_state_as_dict(xFontTransparency)["Visible"], "true")
+ for _ in range(5):
+ xFontTransparency.executeAction("UP", tuple())
+ self.ui_test.close_dialog_through_button(xDialog.getChild("ok"))
+
+ # Verify the result.
+ component = self.ui_test.get_component()
+ paragraph = component.Text.createEnumeration().nextElement()
+
+ self.assertEqual(paragraph.CharTransparence, 5)
+ self.ui_test.close_doc()
+
+ def testSvxCharEffectsPageWriterAutomatic(self):
+ # Start Writer.
+ self.ui_test.create_doc_in_start_center("writer")
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("writer_edit")
+
+ # Use Format -> Character.
+ self.ui_test.execute_dialog_through_command(".uno:FontDialog")
+ xDialog = self.xUITest.getTopFocusWindow()
+ xTabs = xDialog.getChild("tabcontrol")
+ # Select RID_SVXPAGE_CHAR_EFFECTS.
+ select_pos(xTabs, "1")
+ xFontColorLB = xDialog.getChild("fontcolorlb")
+ # Without the accompanying fix in place, this test would have failed with:
+ # AssertionError: 'White' != 'Automatic'
+ # i.e. the auto color lost its alpha component and appeared as white.
+ self.assertEqual(get_state_as_dict(xFontColorLB)["Text"], "Automatic")
+
+ self.ui_test.close_dialog_through_button(xDialog.getChild("ok"))
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/cui/qa/uitest/dialogs/pastedlg.py b/cui/qa/uitest/dialogs/pastedlg.py
new file mode 100644
index 000000000..ccd33e02d
--- /dev/null
+++ b/cui/qa/uitest/dialogs/pastedlg.py
@@ -0,0 +1,47 @@
+#
+# 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/.
+#
+
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict
+
+
+# Test for SvPasteObjectDialog.
+class Test(UITestCase):
+
+ def testGetFormat(self):
+ # Copy a string in Impress.
+ self.ui_test.create_doc_in_start_center("impress")
+ template = self.xUITest.getTopFocusWindow()
+ self.ui_test.close_dialog_through_button(template.getChild("cancel"))
+ doc = self.xUITest.getTopFocusWindow()
+ editWin = doc.getChild("impress_win")
+ # Select the title shape.
+ editWin.executeAction("TYPE", mkPropertyValues({"KEYCODE": "TAB"}))
+ editWin.executeAction("TYPE", mkPropertyValues({"TEXT": "t"}))
+ self.xUITest.executeCommand(".uno:SelectAll")
+ self.xUITest.executeCommand(".uno:Copy")
+
+ # Now use paste special to see what formats are offered.
+ self.ui_test.execute_dialog_through_command(".uno:PasteSpecial")
+ pasteSpecial = self.xUITest.getTopFocusWindow()
+ formats = pasteSpecial.getChild("list")
+ entryCount = int(get_state_as_dict(formats)["Children"])
+ items = []
+ for index in range(entryCount):
+ entry = formats.getChild(str(index))
+ entry.executeAction("SELECT", tuple())
+ items.append(get_state_as_dict(formats)["SelectEntryText"])
+
+ # Make sure there is no RTF vs Richtext duplication.
+ self.assertTrue("Rich text formatting (RTF)" in items)
+ self.assertFalse("Rich text formatting (Richtext)" in items)
+
+ # Close the dialog and the document.
+ self.ui_test.close_dialog_through_button(pasteSpecial.getChild("cancel"))
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/cui/qa/uitest/dialogs/shortcuts.py b/cui/qa/uitest/dialogs/shortcuts.py
new file mode 100644
index 000000000..8a52ee423
--- /dev/null
+++ b/cui/qa/uitest/dialogs/shortcuts.py
@@ -0,0 +1,43 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+
+from uitest.framework import UITestCase
+from uitest.uihelper.common import select_pos
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict
+
+class Test(UITestCase):
+
+ def test_tab_navigation(self):
+ self.ui_test.create_doc_in_start_center("writer")
+ xWriterDoc = self.xUITest.getTopFocusWindow()
+ xWriterEdit = xWriterDoc.getChild("writer_edit")
+
+ self.ui_test.execute_dialog_through_command(".uno:EditStyle") #open style dialog
+ xDialog = self.xUITest.getTopFocusWindow()
+
+ xTabs = xDialog.getChild("tabcontrol")
+ select_pos(xTabs, "0")
+
+ for i in range(16):
+ self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i))
+
+ xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEDOWN"}))
+
+ self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], "0")
+
+ for i in reversed(range(16)):
+ xTabs.executeAction("TYPE", mkPropertyValues({"KEYCODE":"CTRL+PAGEUP"}))
+
+ self.assertEqual(get_state_as_dict(xTabs)["CurrPagePos"], str(i))
+
+ xOkBtn = xDialog.getChild("ok")
+ xOkBtn.executeAction("CLICK", tuple())
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/cui/qa/unit/cui-dialogs-test.cxx b/cui/qa/unit/cui-dialogs-test.cxx
new file mode 100644
index 000000000..fe8091a8e
--- /dev/null
+++ b/cui/qa/unit/cui-dialogs-test.cxx
@@ -0,0 +1,108 @@
+/* -*- 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 <sfx2/app.hxx>
+#include <svx/svdmodel.hxx>
+#include <svx/svxdlg.hxx>
+#include <vcl/abstdlg.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in cui
+class CuiDialogsTest : public ScreenshotTest
+{
+private:
+ std::unique_ptr<SdrModel> mxModel;
+ std::unique_ptr<SfxItemSet> mxAttr;
+ SvxAbstractDialogFactory* mpFact;
+
+ void initialize();
+
+ /// 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 VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;
+
+public:
+ CuiDialogsTest();
+
+ // try to open a dialog
+ void openAnyDialog();
+
+ CPPUNIT_TEST_SUITE(CuiDialogsTest);
+ CPPUNIT_TEST(openAnyDialog);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CuiDialogsTest::CuiDialogsTest()
+{
+}
+
+void CuiDialogsTest::initialize()
+{
+ mpFact = SvxAbstractDialogFactory::Create();
+ mxModel.reset(new SdrModel(nullptr, nullptr, true));
+ mxModel->GetItemPool().FreezeIdRanges();
+ mxAttr.reset(new SfxItemSet(mxModel->GetItemPool()));
+}
+
+void CuiDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs)
+{
+ // fill map of known dialogs
+ rKnownDialogs["cui/ui/formatcellsdialog.ui"] = 0;
+ rKnownDialogs["cui/ui/textdialog.ui"] = 1;
+}
+
+VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 nID)
+{
+ VclPtr<VclAbstractDialog> pReturnDialog;
+
+ switch ( nID )
+ {
+ case 0: // "cui/ui/formatcellsdialog.ui"
+ {
+ pReturnDialog = mpFact->CreateSvxFormatCellsDialog(
+ nullptr, mxAttr.get(), *mxModel);
+ break;
+ }
+
+ case 1: // "cui/ui/textdialog.ui"
+ {
+ pReturnDialog = mpFact->CreateTextTabDialog(
+ nullptr, mxAttr.get(), nullptr);
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ return pReturnDialog;
+}
+
+void CuiDialogsTest::openAnyDialog()
+{
+ initialize();
+
+ /// process input file containing the UXMLDescriptions of the dialogs to dump
+ processDialogBatchFile("cui/qa/unit/data/cui-dialogs-test.txt");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CuiDialogsTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/qa/unit/cui-dialogs-test_2.cxx b/cui/qa/unit/cui-dialogs-test_2.cxx
new file mode 100644
index 000000000..f9c040636
--- /dev/null
+++ b/cui/qa/unit/cui-dialogs-test_2.cxx
@@ -0,0 +1,66 @@
+/* -*- 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 <sfx2/app.hxx>
+#include <vcl/abstdlg.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in cui
+class CuiDialogsTest2 : 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 VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;
+
+public:
+ CuiDialogsTest2();
+
+ // try to open a dialog
+ void openAnyDialog();
+
+ CPPUNIT_TEST_SUITE(CuiDialogsTest2);
+ CPPUNIT_TEST(openAnyDialog);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CuiDialogsTest2::CuiDialogsTest2()
+{
+}
+
+void CuiDialogsTest2::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
+{
+ // leave empty should be in CuiDialogTest if any
+}
+
+VclPtr<VclAbstractDialog> CuiDialogsTest2::createDialogByID(sal_uInt32 /*nID*/)
+{
+ return nullptr;
+}
+
+void CuiDialogsTest2::openAnyDialog()
+{
+ /// process input file containing the UXMLDescriptions of the dialogs to dump
+ processDialogBatchFile("cui/qa/unit/data/cui-dialogs-test_2.txt");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CuiDialogsTest2);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/qa/unit/cui-dialogs-test_3.cxx b/cui/qa/unit/cui-dialogs-test_3.cxx
new file mode 100644
index 000000000..d13c75678
--- /dev/null
+++ b/cui/qa/unit/cui-dialogs-test_3.cxx
@@ -0,0 +1,66 @@
+/* -*- 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 <sfx2/app.hxx>
+#include <vcl/abstdlg.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in cui
+class CuiDialogsTest3 : 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 VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;
+
+public:
+ CuiDialogsTest3();
+
+ // try to open a dialog
+ void openAnyDialog();
+
+ CPPUNIT_TEST_SUITE(CuiDialogsTest3);
+ CPPUNIT_TEST(openAnyDialog);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CuiDialogsTest3::CuiDialogsTest3()
+{
+}
+
+void CuiDialogsTest3::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
+{
+ // leave empty should be in CuiDialogTest if any
+}
+
+VclPtr<VclAbstractDialog> CuiDialogsTest3::createDialogByID(sal_uInt32 /*nID*/)
+{
+ return nullptr;
+}
+
+void CuiDialogsTest3::openAnyDialog()
+{
+ /// process input file containing the UXMLDescriptions of the dialogs to dump
+ processDialogBatchFile("cui/qa/unit/data/cui-dialogs-test_3.txt");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CuiDialogsTest3);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/qa/unit/cui-dialogs-test_4.cxx b/cui/qa/unit/cui-dialogs-test_4.cxx
new file mode 100644
index 000000000..27449310b
--- /dev/null
+++ b/cui/qa/unit/cui-dialogs-test_4.cxx
@@ -0,0 +1,66 @@
+/* -*- 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 <sfx2/app.hxx>
+#include <vcl/abstdlg.hxx>
+
+using namespace ::com::sun::star;
+
+/// Test opening a dialog in cui
+class CuiDialogsTest4 : 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 VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;
+
+public:
+ CuiDialogsTest4();
+
+ // try to open a dialog
+ void openAnyDialog();
+
+ CPPUNIT_TEST_SUITE(CuiDialogsTest4);
+ CPPUNIT_TEST(openAnyDialog);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+CuiDialogsTest4::CuiDialogsTest4()
+{
+}
+
+void CuiDialogsTest4::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
+{
+ // leave empty should be in CuiDialogTest if any
+}
+
+VclPtr<VclAbstractDialog> CuiDialogsTest4::createDialogByID(sal_uInt32 /*nID*/)
+{
+ return nullptr;
+}
+
+void CuiDialogsTest4::openAnyDialog()
+{
+ /// process input file containing the UXMLDescriptions of the dialogs to dump
+ processDialogBatchFile("cui/qa/unit/data/cui-dialogs-test_4.txt");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(CuiDialogsTest4);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/qa/unit/data/cui-dialogs-test.txt b/cui/qa/unit/data/cui-dialogs-test.txt
new file mode 100644
index 000000000..f85ce1d12
--- /dev/null
+++ b/cui/qa/unit/data/cui-dialogs-test.txt
@@ -0,0 +1,98 @@
+# -*- 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 unit tests in the module
+# will work on if it is in script mode. 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.
+#
+# Syntax:
+# - empty lines are allowed
+# - lines starting with '#' are treated as comment
+# - all other lines should contain a *.ui filename in the same
+# notation as in the dialog constructors (see code)
+
+#
+# The 'known' dialogs which have a hard-coded representation
+# in registerKnownDialogsByID/createDialogByID
+#
+
+cui/ui/formatcellsdialog.ui
+cui/ui/textdialog.ui
+
+#
+# Dialogs without a hard-coded representation. These will
+# be visualized using a fallback based on VclBuilder
+#
+
+# currently deactivated, leads to problems and the test to not work
+# This is typically a hint that these should be hard-coded in the
+# test case since they need some document and model data to work
+#
+# cui/ui/bitmaptabpage.ui
+# cui/ui/connpooloptions.ui <- not calling DriverListControl::Init for
+# ConnectionPoolOptionsPage::m_pDriverList leaves its BrowseBox::mvCols empty, causing "implicit
+# conversion from type 'int' of value -1 (32-bit, signed) to type 'sal_uInt16' (aka 'unsigned
+# short') changed the value to 65535 (16-bit, unsigned)" when calling
+# GetColumnId( static_cast<sal_uInt16>(mvCols.size()) - 1 );
+# in BrowseBox::AutoSizeLastColumn (svtools/source/brwbox/brwbox1.cxx) with Clang
+# -fsanitize=implicit-signed-integer-truncation
+# cui/ui/thesaurus.ui <- problems under Linux
+
+# this is part 1. in order to help the build time when building all
+# lang, the list of ui is split in multiple parts to balance the run time
+# or all the tests, which improve the overall elapsed time
+# of make screenshot on big machines
+# covering a to e
+
+
+cui/ui/aboutconfigdialog.ui
+cui/ui/aboutconfigvaluedialog.ui
+cui/ui/aboutdialog.ui
+cui/ui/accelconfigpage.ui
+cui/ui/acorexceptpage.ui
+cui/ui/acoroptionspage.ui
+cui/ui/acorreplacepage.ui
+cui/ui/agingdialog.ui
+cui/ui/applyautofmtpage.ui
+cui/ui/applylocalizedpage.ui
+cui/ui/areadialog.ui
+cui/ui/areatabpage.ui
+cui/ui/asiantypography.ui
+cui/ui/assigncomponentdialog.ui
+cui/ui/autocorrectdialog.ui
+cui/ui/baselinksdialog.ui
+cui/ui/borderareatransparencydialog.ui
+cui/ui/borderbackgrounddialog.ui
+cui/ui/borderpage.ui
+cui/ui/breaknumberoption.ui
+cui/ui/calloutdialog.ui
+cui/ui/calloutpage.ui
+cui/ui/cellalignment.ui
+cui/ui/certdialog.ui
+cui/ui/charnamepage.ui
+cui/ui/colorconfigwin.ui
+cui/ui/colorpage.ui
+cui/ui/colorpickerdialog.ui
+cui/ui/comment.ui
+cui/ui/connectortabpage.ui
+cui/ui/croppage.ui
+cui/ui/cuiimapdlg.ui
+cui/ui/customizedialog.ui
+cui/ui/databaselinkdialog.ui
+cui/ui/dbregisterpage.ui
+cui/ui/dimensionlinestabpage.ui
+cui/ui/distributiondialog.ui
+cui/ui/distributionpage.ui
+cui/ui/editdictionarydialog.ui
+cui/ui/editmodulesdialog.ui
+cui/ui/effectspage.ui
+cui/ui/embossdialog.ui
+cui/ui/eventassigndialog.ui
+cui/ui/eventassignpage.ui
diff --git a/cui/qa/unit/data/cui-dialogs-test_2.txt b/cui/qa/unit/data/cui-dialogs-test_2.txt
new file mode 100644
index 000000000..bccb00563
--- /dev/null
+++ b/cui/qa/unit/data/cui-dialogs-test_2.txt
@@ -0,0 +1,61 @@
+# -*- 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/.
+#
+
+# See cui-dialogs-test.txt for explanations
+
+# covering f to n
+
+cui/ui/eventsconfigpage.ui
+cui/ui/fmsearchdialog.ui
+cui/ui/galleryapplyprogress.ui
+cui/ui/galleryfilespage.ui
+cui/ui/gallerygeneralpage.ui
+cui/ui/gallerysearchprogress.ui
+cui/ui/gallerythemedialog.ui
+cui/ui/gallerythemeiddialog.ui
+cui/ui/gallerytitledialog.ui
+cui/ui/galleryupdateprogress.ui
+cui/ui/gradientpage.ui
+cui/ui/hangulhanjaadddialog.ui
+cui/ui/hangulhanjaconversiondialog.ui
+cui/ui/hangulhanjaeditdictdialog.ui
+cui/ui/hangulhanjaoptdialog.ui
+cui/ui/hatchpage.ui
+cui/ui/hyperlinkdialog.ui
+cui/ui/hyperlinkdocpage.ui
+cui/ui/hyperlinkinternetpage.ui
+cui/ui/hyperlinkmailpage.ui
+cui/ui/hyperlinkmarkdialog.ui
+cui/ui/hyperlinknewdocpage.ui
+cui/ui/hyphenate.ui
+cui/ui/iconchangedialog.ui
+cui/ui/iconselectordialog.ui
+cui/ui/insertfloatingframe.ui
+cui/ui/insertoleobject.ui
+cui/ui/insertrowcolumn.ui
+cui/ui/javaclasspathdialog.ui
+cui/ui/javastartparametersdialog.ui
+cui/ui/linedialog.ui
+cui/ui/lineendstabpage.ui
+cui/ui/linestyletabpage.ui
+cui/ui/linetabpage.ui
+cui/ui/macroassigndialog.ui
+cui/ui/macroassignpage.ui
+cui/ui/macroselectordialog.ui
+cui/ui/menuassignpage.ui
+cui/ui/mosaicdialog.ui
+cui/ui/movemenu.ui
+cui/ui/multipathdialog.ui
+cui/ui/namedialog.ui
+cui/ui/newlibdialog.ui
+cui/ui/newtabledialog.ui
+cui/ui/newtoolbardialog.ui
+cui/ui/numberingformatpage.ui
+cui/ui/numberingoptionspage.ui
+cui/ui/numberingpositionpage.ui
diff --git a/cui/qa/unit/data/cui-dialogs-test_3.txt b/cui/qa/unit/data/cui-dialogs-test_3.txt
new file mode 100644
index 000000000..f2f0491ff
--- /dev/null
+++ b/cui/qa/unit/data/cui-dialogs-test_3.txt
@@ -0,0 +1,43 @@
+# -*- 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/.
+#
+
+# See cui-dialogs-test.txt for explanations
+
+# covering o
+
+cui/ui/objectnamedialog.ui
+cui/ui/objecttitledescdialog.ui
+cui/ui/optaccessibilitypage.ui
+cui/ui/optadvancedpage.ui
+cui/ui/optappearancepage.ui
+cui/ui/optasianpage.ui
+cui/ui/optbasicidepage.ui
+cui/ui/optchartcolorspage.ui
+cui/ui/optctlpage.ui
+cui/ui/optemailpage.ui
+cui/ui/optfltrembedpage.ui
+cui/ui/optfltrpage.ui
+cui/ui/optfontspage.ui
+cui/ui/optgeneralpage.ui
+cui/ui/opthtmlpage.ui
+cui/ui/optionsdialog.ui
+cui/ui/optionsdialog.ui
+cui/ui/optjsearchpage.ui
+cui/ui/optlanguagespage.ui
+cui/ui/optlingupage.ui
+cui/ui/optnewdictionarydialog.ui
+cui/ui/optonlineupdatepage.ui
+cui/ui/optopenclpage.ui
+cui/ui/optpathspage.ui
+cui/ui/optproxypage.ui
+cui/ui/optsavepage.ui
+cui/ui/optsecuritypage.ui
+cui/ui/optuserpage.ui
+cui/ui/optviewpage.ui
+
diff --git a/cui/qa/unit/data/cui-dialogs-test_4.txt b/cui/qa/unit/data/cui-dialogs-test_4.txt
new file mode 100644
index 000000000..a537b2b09
--- /dev/null
+++ b/cui/qa/unit/data/cui-dialogs-test_4.txt
@@ -0,0 +1,72 @@
+# -*- 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/.
+#
+
+# See cui-dialogs-test.txt for explanations
+
+# covering p to z
+
+cui/ui/pageformatpage.ui
+cui/ui/paragalignpage.ui
+cui/ui/paraindentspacing.ui
+cui/ui/paratabspage.ui
+cui/ui/password.ui
+cui/ui/pastespecial.ui
+cui/ui/percentdialog.ui
+cui/ui/personalization_tab.ui
+cui/ui/pickbulletpage.ui
+cui/ui/pickgraphicpage.ui
+cui/ui/picknumberingpage.ui
+cui/ui/pickoutlinepage.ui
+cui/ui/positionpage.ui
+cui/ui/positionsizedialog.ui
+cui/ui/possizetabpage.ui
+cui/ui/posterdialog.ui
+cui/ui/querychangelineenddialog.ui
+cui/ui/querydeletebitmapdialog.ui
+cui/ui/querydeletechartcolordialog.ui
+cui/ui/querydeletecolordialog.ui
+cui/ui/querydeletedictionarydialog.ui
+cui/ui/querydeletegradientdialog.ui
+cui/ui/querydeletehatchdialog.ui
+cui/ui/querydeletelineenddialog.ui
+cui/ui/querydeletelinestyledialog.ui
+cui/ui/queryduplicatedialog.ui
+cui/ui/querynoloadedfiledialog.ui
+cui/ui/querynosavefiledialog.ui
+cui/ui/querysavelistdialog.ui
+cui/ui/queryupdategalleryfilelistdialog.ui
+cui/ui/recordnumberdialog.ui
+cui/ui/rotationtabpage.ui
+cui/ui/scriptorganizer.ui
+cui/ui/searchattrdialog.ui
+cui/ui/searchformatdialog.ui
+cui/ui/securityoptionsdialog.ui
+cui/ui/selectpathdialog.ui
+cui/ui/shadowtabpage.ui
+cui/ui/showcoldialog.ui
+cui/ui/similaritysearchdialog.ui
+cui/ui/slantcornertabpage.ui
+cui/ui/smarttagoptionspage.ui
+cui/ui/smoothdialog.ui
+cui/ui/solarizedialog.ui
+cui/ui/specialcharacters.ui
+cui/ui/spellingdialog.ui
+cui/ui/spelloptionsdialog.ui
+cui/ui/splitcellsdialog.ui
+cui/ui/storedwebconnectiondialog.ui
+cui/ui/swpossizepage.ui
+cui/ui/textanimtabpage.ui
+cui/ui/textattrtabpage.ui
+cui/ui/textflowpage.ui
+cui/ui/transparencytabpage.ui
+cui/ui/tsaurldialog.ui
+cui/ui/twolinespage.ui
+cui/ui/wordcompletionpage.ui
+cui/ui/zoomdialog.ui
+