Kaydet (Commit) 62b84ba9 authored tarafından Armin Le Grand's avatar Armin Le Grand Kaydeden (comit) Thorsten Behrens

screenshots: add dialog test cases for svx

All *.ui files create a screenshot, but not all look useful

Change-Id: I5aeec438b90488ea19cdb1251fee7dcf23e1c2cb
üst 2db8b3a8
......@@ -7,17 +7,20 @@
# 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.
# 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.
#
# 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.
# Syntax:
# - emty 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
# The 'known' dialogs which have a hard-coded representation
# in registerKnownDialogsByID/createDialogByID
#
modules/scalc/ui/insertsheet.ui
......@@ -41,7 +44,10 @@ modules/scalc/ui/formatcellsdialog.ui
# be visualized using a fallback based on VclBuilder
#
# deactivated, leads to problems and the test to not work
# 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
#
# modules/scalc/ui/headerfootercontent.ui
# modules/scalc/ui/pivottablelayoutdialog.ui
......
......@@ -7,17 +7,20 @@
# 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.
# 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.
#
# 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.
# Syntax:
# - emty 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
# The 'known' dialogs which have a hard-coded representation
# in registerKnownDialogsByID/createDialogByID
#
modules/sdraw/ui/breakdialog.ui
......@@ -54,7 +57,10 @@ modules/sdraw/ui/paranumberingtab.ui
modules/sdraw/ui/namedesign.ui
modules/sdraw/ui/tabledesigndialog.ui
# deactivated, leads to problems and the test to not work
# 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
#
# modules/simpress/ui/assistentdialog.ui
modules/simpress/ui/headerfootertab.ui
......
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#*************************************************************************
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#*************************************************************************
$(eval $(call gb_CppunitTest_CppunitTest,svx_dialogs_test))
$(eval $(call gb_CppunitTest_add_exception_objects,svx_dialogs_test, \
svx/qa/unit/svx-dialogs-test \
))
$(eval $(call gb_CppunitTest_use_sdk_api,svx_dialogs_test))
$(eval $(call gb_CppunitTest_set_include,svx_dialogs_test,\
-I$(SRCDIR)/svx/source/inc \
-I$(SRCDIR)/svx/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_libraries,svx_dialogs_test, \
basegfx \
comphelper \
cppu \
cppuhelper \
drawinglayer \
editeng \
i18nlangtag \
i18nutil \
msfilter \
oox \
sal \
salhelper \
sax \
sfx \
sot \
svl \
svt \
svx \
svxcore \
test \
tl \
tk \
ucbhelper \
unotest \
utl \
vcl \
xo \
$(gb_UWINAPI) \
))
$(eval $(call gb_CppunitTest_use_external,svx_dialogs_test,boost_headers))
$(eval $(call gb_CppunitTest_use_sdk_api,svx_dialogs_test))
$(eval $(call gb_CppunitTest_use_ure,svx_dialogs_test))
$(eval $(call gb_CppunitTest_use_vcl_non_headless_with_windows,svx_dialogs_test))
$(eval $(call gb_CppunitTest_use_rdb,svx_dialogs_test,services))
# $(eval $(call gb_CppunitTest_use_configuration,svx_dialogs_test))
$(eval $(call gb_CppunitTest_use_instdir_configuration,svx_dialogs_test))
# vim: set noet sw=4 ts=4:
......@@ -36,6 +36,10 @@ $(eval $(call gb_Module_add_check_targets,svx,\
CppunitTest_svx_unit \
))
$(eval $(call gb_Module_add_slowcheck_targets,svx,\
CppunitTest_svx_dialogs_test \
))
ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
$(eval $(call gb_Module_add_targets,svx,\
Executable_gengal \
......
# -*- 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:
# - emty 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
#
# No known dialogs in svx for now
#
# 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
#
svx/ui/textcontrolchardialog.ui
svx/ui/textcontrolparadialog.ui
svx/ui/datanavigator.ui
svx/ui/redlineviewpage.ui
svx/ui/redlinefilterpage.ui
svx/ui/headfootformatpage.ui
svx/ui/optgridpage.ui
svx/ui/xformspage.ui
svx/ui/compressgraphicdialog.ui
svx/ui/compressgraphicdialog.ui
svx/ui/docrecoveryprogressdialog.ui
svx/ui/docrecoverybrokendialog.ui
svx/ui/passwd.ui
svx/ui/adddataitemdialog.ui
svx/ui/addconditiondialog.ui
svx/ui/namespacedialog.ui
svx/ui/addnamespacedialog.ui
svx/ui/addsubmissiondialog.ui
svx/ui/addmodeldialog.ui
svx/ui/addinstancedialog.ui
svx/ui/extrustiondepthdialog.ui
svx/ui/fontworkgallerydialog.ui
svx/ui/fontworkspacingdialog.ui
svx/ui/chinesedictionary.ui
svx/ui/chineseconversiondialog.ui
svx/ui/imapdialog.ui
svx/ui/asianphoneticguidedialog.ui
svx/ui/findreplacedialog.ui
svx/ui/crashreportdlg.ui
svx/ui/docrecoverysavedialog.ui
svx/ui/docrecoveryrecoverdialog.ui
svx/ui/querysavecontchangesdialog.ui
svx/ui/querydeletecontourdialog.ui
svx/ui/queryunlinkgraphicsdialog.ui
svx/ui/querynewcontourdialog.ui
svx/ui/querymodifyimagemapchangesdialog.ui
svx/ui/querysaveimagemapchangesdialog.ui
svx/ui/querysaveimagemapchangesdialog.ui
svx/ui/linkwarndialog.ui
svx/ui/formlinkwarndialog.ui
svx/ui/savemodifieddialog.ui
svx/ui/querydeletethemedialog.ui
svx/ui/querydeleteobjectdialog.ui
/* -*- 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 svx
class SvxDialogsTest : 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:
SvxDialogsTest();
virtual ~SvxDialogsTest();
virtual void setUp() override;
// try to open a dialog
void openAnyDialog();
CPPUNIT_TEST_SUITE(SvxDialogsTest);
CPPUNIT_TEST(openAnyDialog);
CPPUNIT_TEST_SUITE_END();
};
SvxDialogsTest::SvxDialogsTest()
{
}
SvxDialogsTest::~SvxDialogsTest()
{
}
void SvxDialogsTest::setUp()
{
ScreenshotTest::setUp();
}
void SvxDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
{
// fill map of known dilogs
}
VclAbstractDialog* SvxDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
void SvxDialogsTest::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("svx/qa/unit/data/svx-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(SvxDialogsTest);
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -7,25 +7,33 @@
# 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.
# 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.
#
# 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.
# Syntax:
# - emty 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
# The 'known' dialogs which have a hard-coded representation
# in registerKnownDialogsByID/createDialogByID
#
# No known dialogs in writer for now
#
# 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
# 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
#
# modules/swriter/ui/templatedialog(nRegion).ui
# modules/swriter/ui/autoformattable.ui
# modules/swriter/ui/endnotepage.ui
......
......@@ -11,55 +11,12 @@
#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
/// Test opening a dialog in sw
class SwDialogsTest : public ScreenshotTest
{
private:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment