[Libreoffice-commits] core.git: Branch 'feature/dialog-screenshots' - include/vcl sd/qa sd/source

Katarina Behrens Katarina.Behrens at cib.de
Fri Jun 24 15:56:59 UTC 2016


 include/vcl/abstdlg.hxx        |    1 +
 sd/qa/unit/dialogs-test.cxx    |   30 ++++++++++++++++++++++++++----
 sd/source/ui/dlg/sddlgfact.hxx |    2 ++
 3 files changed, 29 insertions(+), 4 deletions(-)

New commits:
commit ab2fc97c3cf6a7dc5798d0e67830bf081492d4ff
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Fri Jun 24 17:54:18 2016 +0200

    Screenshot names to copy screenshot IDs
    
    for simple (!tab) dialogs. Some more tweaking needed for tab ones
    still
    
    Change-Id: Ic7e0bf09e41e1d2e15a80beae9e5fbf94c443e0c

diff --git a/include/vcl/abstdlg.hxx b/include/vcl/abstdlg.hxx
index 676154e..9a6842b 100644
--- a/include/vcl/abstdlg.hxx
+++ b/include/vcl/abstdlg.hxx
@@ -39,6 +39,7 @@ public:
     virtual std::vector<OString> getAllPageUIXMLDescriptions() const;
     virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription);
     virtual Bitmap createScreenshot() const;
+    virtual OString GetScreenshotId() const { return OString(); };
 };
 
 class VCL_DLLPUBLIC VclAbstractDialog2
diff --git a/sd/qa/unit/dialogs-test.cxx b/sd/qa/unit/dialogs-test.cxx
index 59f1cc4..2295be4 100644
--- a/sd/qa/unit/dialogs-test.cxx
+++ b/sd/qa/unit/dialogs-test.cxx
@@ -60,7 +60,20 @@
 
 using namespace ::com::sun::star;
 
-static const char* SCREENSHOT_DIRECTORY = "/workdir/screenshots";
+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
@@ -641,9 +654,18 @@ void SdDialogsTest::dumpDialogToPath(VclAbstractDialog& rDlg, const OUString& rP
 
         if (!aScreenshot.IsEmpty())
         {
-            const OUString aPath = rPath + ".png";
-            SvFileStream aNew(aPath, StreamMode::WRITE | StreamMode::TRUNC);
-            CPPUNIT_ASSERT_MESSAGE( OUStringToOString( "Failed to create " + aPath, RTL_TEXTENCODING_UTF8).getStr(), aNew.IsOpen() );
+            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);
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 86bc1f7..9bb135c 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -32,6 +32,7 @@ public:                                                 \
     virtual std::vector<OString> getAllPageUIXMLDescriptions() const override; \
     virtual bool selectPageByUIXMLDescription(const OString& rUIXMLDescription) override; \
     virtual Bitmap createScreenshot() const override;   \
+    virtual OString GetScreenshotId() const;   \
     virtual         ~Class();                           \
     virtual short   Execute() override ;
 
@@ -39,6 +40,7 @@ public:                                                 \
 std::vector<OString> Class::getAllPageUIXMLDescriptions() const { return pDlg->getAllPageUIXMLDescriptions(); } \
 bool Class::selectPageByUIXMLDescription(const OString& rUIXMLDescription) { return pDlg->selectPageByUIXMLDescription(rUIXMLDescription); } \
 Bitmap Class::createScreenshot() const { return pDlg->createScreenshot();} \
+OString Class::GetScreenshotId() const { return pDlg->GetScreenshotId();} \
 Class::~Class()                                     \
 {                                                   \
 }                                                   \


More information about the Libreoffice-commits mailing list