[Libreoffice-commits] core.git: Branch 'feature/dialog-screenshots' - sc/qa sd/qa
Katarina Behrens
Katarina.Behrens at cib.de
Fri Jul 1 15:06:00 UTC 2016
sc/qa/unit/screenshots/screenshots.cxx | 91 ------------------------------
sd/qa/unit/dialogs-test.cxx | 100 +--------------------------------
2 files changed, 7 insertions(+), 184 deletions(-)
New commits:
commit f740c77f82215a7962428a88289e203655bc3ab1
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Fri Jul 1 17:03:42 2016 +0200
Use the new bootstrap fixture in both sc and sd screenshot test
Change-Id: Ida0d3179726896b32b0876b1855b1f0be12d3b48
diff --git a/sc/qa/unit/screenshots/screenshots.cxx b/sc/qa/unit/screenshots/screenshots.cxx
index d331ffa..a6d1e5a 100644
--- a/sc/qa/unit/screenshots/screenshots.cxx
+++ b/sc/qa/unit/screenshots/screenshots.cxx
@@ -7,9 +7,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-#include <test/bootstrapfixture.hxx>
-#include <unotest/macros_test.hxx>
-#include <test/xmltesttools.hxx>
+#include <test/screenshot_test.hxx>
#include <com/sun/star/frame/Desktop.hpp>
#include <comphelper/dispatchcommand.hxx>
@@ -47,29 +45,12 @@ using namespace css;
#if !defined(WNT) && !defined(MACOSX)
static const char* DATA_DIRECTORY = "/sc/qa/unit/screenshots/data/";
-static const char* SCREENSHOT_DIRECTORY = "/workdir/screenshots/";
#endif
-namespace {
- void splitHelpId( OString& rHelpId, OUString& rDirname, OUString &rBasename )
- {
- sal_Int32 nIndex = rHelpId.lastIndexOf( '/' );
-
- if( nIndex > 0 )
- rDirname = OStringToOUString( rHelpId.copy( 0, nIndex ), RTL_TEXTENCODING_UTF8 );
-
- if( rHelpId.getLength() > nIndex+1 )
- rBasename= OStringToOUString( rHelpId.copy( nIndex+1 ), RTL_TEXTENCODING_UTF8 );
- }
-}
-
-
-class ScScreenshotTest : public test::BootstrapFixture, public unotest::MacrosTest, public XmlTestTools
+class ScScreenshotTest : public ScreenshotTest
{
public:
ScScreenshotTest();
- virtual void setUp() SAL_OVERRIDE;
- virtual void tearDown() SAL_OVERRIDE;
#if !defined(WNT) && !defined(MACOSX)
void testOpeningModalDialogs();
@@ -88,8 +69,6 @@ private:
void initializeWithDoc(const char* pName);
VclAbstractDialog* createDialogByID( sal_uInt32 nID);
- void dumpDialogToPath( VclAbstractDialog& rDialog );
- void saveScreenshot( VclAbstractDialog& rDialog );
#endif
@@ -107,24 +86,6 @@ ScScreenshotTest::ScScreenshotTest()
{
}
-void ScScreenshotTest::setUp()
-{
- test::BootstrapFixture::setUp();
-
- mxDesktop.set(css::frame::Desktop::create(comphelper::getComponentContext(getMultiServiceFactory())));
-
- osl::FileBase::RC err = osl::Directory::create( m_directories.getURLFromSrc( SCREENSHOT_DIRECTORY ) );
- CPPUNIT_ASSERT_MESSAGE( "Failed to create screenshot directory", (err == osl::FileBase::E_None || err == osl::FileBase::E_EXIST) );
-}
-
-void ScScreenshotTest::tearDown()
-{
- if (mxComponent.is())
- mxComponent->dispose();
-
- test::BootstrapFixture::tearDown();
-}
-
#if !defined(WNT) && !defined(MACOSX)
void ScScreenshotTest::initializeWithDoc(const char* pName)
{
@@ -283,54 +244,6 @@ VclAbstractDialog* ScScreenshotTest::createDialogByID( sal_uInt32 nID )
return pReturnDialog;
}
-void ScScreenshotTest::saveScreenshot( VclAbstractDialog& rDialog )
-{
- const Bitmap aScreenshot(rDialog.createScreenshot());
-
- if (!aScreenshot.IsEmpty())
- {
- OString aScreenshotId = rDialog.GetScreenshotId();
- OUString aDirname, aBasename;
- splitHelpId( aScreenshotId, aDirname, aBasename );
- aDirname = OUString::createFromAscii( SCREENSHOT_DIRECTORY ) + aDirname;
-
- osl::FileBase::RC err = osl::Directory::createPath( m_directories.getURLFromSrc( aDirname ));
- CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to create " + aDirname, RTL_TEXTENCODING_UTF8).getStr(),
- (err == osl::FileBase::E_None || err == osl::FileBase::E_EXIST) );
-
- OUString aFullPath = m_directories.getSrcRootPath() + aDirname + "/" + aBasename + ".png";
- SvFileStream aNew(aFullPath, StreamMode::WRITE | StreamMode::TRUNC);
- CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to open " + OUString::number(aNew.GetErrorCode()), RTL_TEXTENCODING_UTF8).getStr(), aNew.IsOpen() );
-
- vcl::PNGWriter aPNGWriter(aScreenshot);
- aPNGWriter.Write(aNew);
- }
-}
-
-void ScScreenshotTest::dumpDialogToPath( VclAbstractDialog& rDialog )
-{
- const std::vector<OString> aPageDescriptions(rDialog.getAllPageUIXMLDescriptions());
-
- if (aPageDescriptions.size())
- {
- for (sal_uInt32 a(0); a < aPageDescriptions.size(); a++)
- {
- if (rDialog.selectPageByUIXMLDescription(aPageDescriptions[a]))
- {
- saveScreenshot( rDialog );
- }
- else
- {
- CPPUNIT_ASSERT(false);
- }
- }
- }
- else
- {
- saveScreenshot( rDialog );
- }
-}
-
void ScScreenshotTest::testOpeningModalDialogs()
{
initializeWithDoc("empty.ods");
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index f3e51d2..02dfa20 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -8,7 +8,7 @@
*/
#include <sal/config.h>
-#include <test/bootstrapfixture.hxx>
+#include <test/screenshot_test.hxx>
#include <rtl/strbuf.hxx>
#include <osl/file.hxx>
#include <com/sun/star/lang/XComponent.hpp>
@@ -55,32 +55,13 @@
#include <comphelper/processfactory.hxx>
#include <unotest/macros_test.hxx>
-//#include "DrawController.hxx"
-//#include "ViewShellBase.hxx"
-
using namespace ::com::sun::star;
-static const char* SCREENSHOT_DIRECTORY = "/workdir/screenshots/";
-
-namespace {
- void splitHelpId( OString& rHelpId, OUString& rDirname, OUString &rBasename )
- {
- sal_Int32 nIndex = rHelpId.lastIndexOf( '/' );
-
- if( nIndex > 0 )
- rDirname = OStringToOUString( rHelpId.copy( 0, nIndex ), RTL_TEXTENCODING_UTF8 );
-
- if( rHelpId.getLength() > nIndex+1 )
- rBasename= OStringToOUString( rHelpId.copy( nIndex+1 ), RTL_TEXTENCODING_UTF8 );
- }
-}
-
/// Test opening a dialog in sd
-class SdDialogsTest : public test::BootstrapFixture, public unotest::MacrosTest
+class SdDialogsTest : public ScreenshotTest
{
private:
/// Document and ComponentContext
- uno::Reference<uno::XComponentContext> mxComponentContext;
uno::Reference<lang::XComponent> mxComponent;
/// initially created SdAbstractDialogFactory and pointer to document
@@ -106,17 +87,14 @@ private:
const SfxItemSet& getEmptySfxItemSet();
const SfxItemSet& getEmptyFillStyleSfxItemSet();
- /// central methods: dialog creation and dumping to target directory (path)
+ /// central method: dialog creation and dumping to target directory (path)
VclAbstractDialog* createDialogByID(sal_uInt32 nID);
- void dumpDialogToPath(VclAbstractDialog& rDlg);
- void saveScreenshot( VclAbstractDialog& rDlg);
public:
SdDialogsTest();
~SdDialogsTest();
virtual void setUp() override;
- virtual void tearDown() override;
// try to open a dialog
void openAnyDialog();
@@ -127,8 +105,7 @@ public:
};
SdDialogsTest::SdDialogsTest()
-: mxComponentContext(),
- mxComponent(),
+: mxComponent(),
mpFact(nullptr),
mpImpressDocument(nullptr),
mpDocShell(nullptr),
@@ -146,31 +123,16 @@ SdDialogsTest::~SdDialogsTest()
void SdDialogsTest::setUp()
{
- test::BootstrapFixture::setUp();
+ ScreenshotTest::setUp();
- mxComponentContext.set(comphelper::getComponentContext(getMultiServiceFactory()));
- mxDesktop.set(frame::Desktop::create(mxComponentContext));
mpFact = SdAbstractDialogFactory::Create();
mxComponent = loadFromDesktop("private:factory/simpress", "com.sun.star.presentation.PresentationDocument");
CPPUNIT_ASSERT(mxComponent.is());
- osl::FileBase::RC err = osl::Directory::create( m_directories.getURLFromSrc( SCREENSHOT_DIRECTORY ) );
- CPPUNIT_ASSERT_MESSAGE( "Failed to create screenshot directory", (err == osl::FileBase::E_None || err == osl::FileBase::E_EXIST) );
-
mpImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
CPPUNIT_ASSERT(mpImpressDocument);
}
-void SdDialogsTest::tearDown()
-{
- //if (mxComponent.is())
- //{
- // mxComponent->dispose();
- //}
-
- test::BootstrapFixture::tearDown();
-}
-
SdAbstractDialogFactory* SdDialogsTest::getSdAbstractDialogFactory()
{
return mpFact;
@@ -611,58 +573,6 @@ VclAbstractDialog* SdDialogsTest::createDialogByID(sal_uInt32 nID)
return pRetval;
}
-void SdDialogsTest::saveScreenshot(VclAbstractDialog& rDlg)
-{
- const Bitmap aScreenshot(rDlg.createScreenshot());
-
- if (!aScreenshot.IsEmpty())
- {
- OString aScreenshotId = rDlg.GetScreenshotId();
- OUString aDirname, aBasename;
- splitHelpId( aScreenshotId, aDirname, aBasename );
- aDirname = OUString::createFromAscii( SCREENSHOT_DIRECTORY ) + aDirname;
-
- osl::FileBase::RC err = osl::Directory::createPath( m_directories.getURLFromSrc( aDirname ));
- CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to create " + aDirname, RTL_TEXTENCODING_UTF8).getStr(),
- (err == osl::FileBase::E_None || err == osl::FileBase::E_EXIST) );
-
- OUString aFullPath = m_directories.getSrcRootPath() + aDirname + "/" + aBasename + ".png";
- SvFileStream aNew(aFullPath, StreamMode::WRITE | StreamMode::TRUNC);
- CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to open " + OUString::number(aNew.GetErrorCode()), RTL_TEXTENCODING_UTF8).getStr(), aNew.IsOpen() );
-
- vcl::PNGWriter aPNGWriter(aScreenshot);
- aPNGWriter.Write(aNew);
- }
-}
-
-void SdDialogsTest::dumpDialogToPath(VclAbstractDialog& rDlg)
-{
-
- // for dumping, a lossless format is needed. It may be seen if the created data
- // will be further modified/reduced, but for a input creating step it is
- // unavoidable to use a lossless format initially
- const std::vector<OString> aPageDescriptions(rDlg.getAllPageUIXMLDescriptions());
-
- if (aPageDescriptions.size())
- {
- for (sal_uInt32 a(0); a < aPageDescriptions.size(); a++)
- {
- if (rDlg.selectPageByUIXMLDescription(aPageDescriptions[a]))
- {
- saveScreenshot( rDlg );
- }
- else
- {
- CPPUNIT_ASSERT(false);
- }
- }
- }
- else
- {
- saveScreenshot( rDlg );
- }
-}
-
void SdDialogsTest::openAnyDialog()
{
// example for SfxTabDialog: 5
More information about the Libreoffice-commits
mailing list