[Libreoffice-commits] core.git: Branch 'feature/image_rework' - sc/CppunitTest_sc_subsequent_export_test.mk sc/qa sd/CppunitTest_sd_export_tests.mk sd/qa

Zolnai Tamás tamas.zolnai at collabora.com
Sun Nov 2 08:47:53 PST 2014


 dev/null                                         |binary
 sc/CppunitTest_sc_subsequent_export_test.mk      |    4 ++
 sc/qa/unit/data/ods/document_with_two_images.ods |binary
 sc/qa/unit/subsequent_export-test.cxx            |   42 ++++++++++++++---------
 sd/CppunitTest_sd_export_tests.mk                |    4 ++
 sd/qa/unit/data/odp/document_with_two_images.odp |binary
 sd/qa/unit/export-tests.cxx                      |   42 +++++++++++++++--------
 7 files changed, 64 insertions(+), 28 deletions(-)

New commits:
commit d3b48d987acea370bcfedb860009fb7a1487f13c
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Sun Nov 2 17:44:33 2014 +0100

    Improve Calc and Impress image tests based on auto swapping
    
    Change-Id: I6a784a68cb1a1936196d35fc15af691d2aeb5773

diff --git a/sc/CppunitTest_sc_subsequent_export_test.mk b/sc/CppunitTest_sc_subsequent_export_test.mk
index 3316beb..1cfaf69 100644
--- a/sc/CppunitTest_sc_subsequent_export_test.mk
+++ b/sc/CppunitTest_sc_subsequent_export_test.mk
@@ -117,6 +117,10 @@ $(eval $(call gb_CppunitTest_use_components,sc_subsequent_export_test,\
 ))
 endif
 
+$(eval $(call gb_CppunitTest_use_custom_headers,sc_subsequent_export_test,\
+	officecfg/registry \
+))
+
 $(eval $(call gb_CppunitTest_use_configuration,sc_subsequent_export_test))
 
 # vim: set noet sw=4 ts=4:
diff --git a/sc/qa/unit/data/ods/document_with_an_image.ods b/sc/qa/unit/data/ods/document_with_two_images.ods
similarity index 66%
rename from sc/qa/unit/data/ods/document_with_an_image.ods
rename to sc/qa/unit/data/ods/document_with_two_images.ods
index adfcd4c..6e1cc68 100644
Binary files a/sc/qa/unit/data/ods/document_with_an_image.ods and b/sc/qa/unit/data/ods/document_with_two_images.ods differ
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 9e058b2..b9a042e 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -7,6 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#include <officecfg/Office/Common.hxx>
 #include <sal/config.h>
 #include <rtl/strbuf.hxx>
 #include <osl/file.hxx>
@@ -60,7 +61,7 @@
 #include <tools/datetime.hxx>
 
 #include <test/xmltesttools.hxx>
-
+#include <comphelper/processfactory.hxx>
 #include <com/sun/star/table/BorderLineStyle.hpp>
 #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
 #include <com/sun/star/sheet/GeneralFunction.hpp>
@@ -2267,26 +2268,19 @@ void ScExportTest::testSwappedOutImageExport()
         "generic_HTML",
     };
 
+    // Set cache size to a very small value to make sure one of the images is swapped out
+    boost::shared_ptr< comphelper::ConfigurationChanges > xBatch(comphelper::ConfigurationChanges::create());
+    officecfg::Office::Common::Cache::GraphicManager::TotalCacheSize::set(sal_Int32(1), xBatch);
+    xBatch->commit();
+
     for( size_t nFilter = 0; nFilter < aFilterNames.size(); ++nFilter )
     {
         // Check whether the export code swaps in the image which was swapped out before.
-        ScDocShellRef xDocSh = loadDoc("document_with_an_image.", ODS);
+        ScDocShellRef xDocSh = loadDoc("document_with_two_images.", ODS);
 
         const OString sFailedMessage = OString("Failed on filter: ")
                                        + OUStringToOString(aFilterNames[nFilter], RTL_TEXTENCODING_ASCII_US);
-
-        // Find and swap out the image
         CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xDocSh.Is());
-        ScDocument* pDoc = &xDocSh->GetDocument();
-        CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), pDoc);
-        ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
-        CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), pDrawLayer);
-        const SdrPage* pPage = pDrawLayer->GetPage(0);
-        CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), pPage);
-        const SdrObject* pObj = pPage->GetObj(0);
-        CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), pObj->GetObjIdentifier() == OBJ_GRAF);
-        const SdrGrafObj& rGrafObj = static_cast<const SdrGrafObj&>(*pObj);
-        rGrafObj.ForceSwapOut();
 
         // Export the document and import again for a check
         ScDocShellRef xDocSh2 = saveAndReload(xDocSh, nFilter);
@@ -2298,7 +2292,7 @@ void ScExportTest::testSwappedOutImageExport()
         uno::Reference< container::XIndexAccess > xIA(xDoc->getSheets(), UNO_QUERY_THROW);
         uno::Reference< drawing::XDrawPageSupplier > xDrawPageSupplier( xIA->getByIndex(0), UNO_QUERY_THROW);
         uno::Reference< container::XIndexAccess > xDraws(xDrawPageSupplier->getDrawPage(), UNO_QUERY_THROW);
-        CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(1), xDraws->getCount());
+        CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(2), xDraws->getCount());
 
         uno::Reference<drawing::XShape> xImage(xDraws->getByIndex(0), uno::UNO_QUERY);
         uno::Reference< beans::XPropertySet > XPropSet( xImage, uno::UNO_QUERY_THROW );
@@ -2318,6 +2312,24 @@ void ScExportTest::testSwappedOutImageExport()
             CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(610), xBitmap->getSize().Width );
             CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(381), xBitmap->getSize().Height );
         }
+        // Second Image
+        xImage.set(xDraws->getByIndex(1), uno::UNO_QUERY);
+        XPropSet.set( xImage, uno::UNO_QUERY_THROW );
+        // Check URL
+        {
+            OUString sURL;
+            XPropSet->getPropertyValue("GraphicURL") >>= sURL;
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), OUString("vnd.sun.star.GraphicObject:1000000000000384000002580A24B597"), sURL);
+        }
+        // Check size
+        {
+            uno::Reference<graphic::XGraphic> xGraphic;
+            XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+            uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+            CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(900), xBitmap->getSize().Width );
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(600), xBitmap->getSize().Height );
+        }
         xDocSh2->DoClose();
     }
 }
diff --git a/sd/CppunitTest_sd_export_tests.mk b/sd/CppunitTest_sd_export_tests.mk
index 68bdb32..a8f3dbf 100644
--- a/sd/CppunitTest_sd_export_tests.mk
+++ b/sd/CppunitTest_sd_export_tests.mk
@@ -106,6 +106,10 @@ $(eval $(call gb_CppunitTest_use_components,sd_export_tests,\
     xmlsecurity/util/xmlsecurity \
 ))
 
+$(eval $(call gb_CppunitTest_use_custom_headers,sd_export_tests,\
+	officecfg/registry \
+))
+
 $(eval $(call gb_CppunitTest_use_configuration,sd_export_tests))
 
 $(eval $(call gb_CppunitTest_use_unittest_configuration,sd_export_tests))
diff --git a/sd/qa/unit/data/odp/document_with_an_image.odp b/sd/qa/unit/data/odp/document_with_an_image.odp
deleted file mode 100644
index 9e0bdce..0000000
Binary files a/sd/qa/unit/data/odp/document_with_an_image.odp and /dev/null differ
diff --git a/sd/qa/unit/data/odp/document_with_two_images.odp b/sd/qa/unit/data/odp/document_with_two_images.odp
new file mode 100644
index 0000000..33fb9bb
Binary files /dev/null and b/sd/qa/unit/data/odp/document_with_two_images.odp differ
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index 780240b..b040604 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -6,10 +6,10 @@
  * 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 <officecfg/Office/Common.hxx>
 #include "sdmodeltestbase.hxx"
 #include "Outliner.hxx"
-
+#include <comphelper/processfactory.hxx>
 #include <svl/stritem.hxx>
 #include <editeng/editobj.hxx>
 #include <editeng/outlobj.hxx>
@@ -493,21 +493,17 @@ void SdExportTest::testSwappedOutImageExport()
         PPTX,
     };
 
+    // Set cache size to a very small value to make sure one of the images is swapped out
+    boost::shared_ptr< comphelper::ConfigurationChanges > xBatch(comphelper::ConfigurationChanges::create());
+    officecfg::Office::Common::Cache::GraphicManager::TotalCacheSize::set(sal_Int32(1), xBatch);
+    xBatch->commit();
+
     for( size_t nExportFormat = 0; nExportFormat < vFormats.size(); ++nExportFormat )
     {
         // Load the original file with one image
-        ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/odp/document_with_an_image.odp"), ODP);
+        ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/odp/document_with_two_images.odp"), ODP);
         const OString sFailedMessage = OString("Failed on filter: ") + OString(aFileFormats[nExportFormat].pFilterName);
 
-        // Swap out the image
-        SdDrawDocument *pDoc = xDocShRef->GetDoc();
-        CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pDoc != NULL );
-        const SdrPage* pPage = pDoc->GetPage(1);
-        CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), pPage != NULL );
-        SdrGrafObj* pGrafObject = dynamic_cast<SdrGrafObj*>(pPage->GetObj(2));
-        CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), pGrafObject != NULL);
-        pGrafObject->ForceSwapOut();
-
         // Export the document and import again for a check
         uno::Reference< lang::XComponent > xComponent(xDocShRef->GetModel(), uno::UNO_QUERY);
         uno::Reference<frame::XStorable> xStorable(xComponent, uno::UNO_QUERY);
@@ -523,7 +519,7 @@ void SdExportTest::testSwappedOutImageExport()
 
         // Check whether graphic exported well after it was swapped out
         uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xDocShRef->GetModel(), uno::UNO_QUERY);
-        CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), xDrawPagesSupplier->getDrawPages()->getCount() == 1 );
+        CPPUNIT_ASSERT_MESSAGE( sFailedMessage.getStr(), xDrawPagesSupplier->getDrawPages()->getCount() == 2 );
         uno::Reference< drawing::XDrawPage > xDrawPage( xDrawPagesSupplier->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW );
 
         uno::Reference<drawing::XShape> xImage(xDrawPage->getByIndex(2), uno::UNO_QUERY);
@@ -543,6 +539,26 @@ void SdExportTest::testSwappedOutImageExport()
             CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(610), xBitmap->getSize().Width );
             CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(381), xBitmap->getSize().Height );
         }
+
+        // Second Image
+        xDrawPage.set(xDrawPagesSupplier->getDrawPages()->getByIndex(1), uno::UNO_QUERY_THROW );
+        xImage.set(xDrawPage->getByIndex(1), uno::UNO_QUERY);
+        XPropSet.set( xImage, uno::UNO_QUERY_THROW );
+        // Check URL
+        {
+            OUString sURL;
+            XPropSet->getPropertyValue("GraphicURL") >>= sURL;
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), OUString("vnd.sun.star.GraphicObject:1000000000000384000002580A24B597"), sURL);
+        }
+        // Check size
+        {
+            uno::Reference<graphic::XGraphic> xGraphic;
+            XPropSet->getPropertyValue("Graphic") >>= xGraphic;
+            uno::Reference<awt::XBitmap> xBitmap(xGraphic, uno::UNO_QUERY);
+            CPPUNIT_ASSERT_MESSAGE(sFailedMessage.getStr(), xBitmap.is());
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(900), xBitmap->getSize().Width );
+            CPPUNIT_ASSERT_EQUAL_MESSAGE(sFailedMessage.getStr(), static_cast<sal_Int32>(600), xBitmap->getSize().Height );
+        }
         xDocShRef->DoClose();
     }
 }


More information about the Libreoffice-commits mailing list