[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