summaryrefslogtreecommitdiffstats
path: root/svx/qa/unit/gallery/test_gallery.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/qa/unit/gallery/test_gallery.cxx')
-rw-r--r--svx/qa/unit/gallery/test_gallery.cxx482
1 files changed, 482 insertions, 0 deletions
diff --git a/svx/qa/unit/gallery/test_gallery.cxx b/svx/qa/unit/gallery/test_gallery.cxx
new file mode 100644
index 000000000..da224b439
--- /dev/null
+++ b/svx/qa/unit/gallery/test_gallery.cxx
@@ -0,0 +1,482 @@
+/* -*- 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 <test/bootstrapfixture.hxx>
+
+#include <tools/urlobj.hxx>
+#include <sfx2/app.hxx>
+#include <unotools/tempfile.hxx>
+#include <comphelper/DirectoryHelper.hxx>
+
+#include <svx/gallery1.hxx>
+#include <svx/galtheme.hxx>
+#include <svx/gallerybinarystoragelocations.hxx>
+#include <svx/gallerystoragelocations.hxx>
+#include <galobj.hxx>
+
+#include <cppunit/TestAssert.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+class GalleryObjTest : public test::BootstrapFixture
+{
+public:
+ void TestCreateTheme();
+ void TestDeleteTheme();
+ void TestSetThemeName();
+ void TestThemeURLCase();
+ void TestThemeCount();
+ void TestGalleryThemeEntry();
+ void TestInsertGalleryObject();
+ void TestRemoveGalleryObject();
+ void TestChangePositionGalleryObject();
+ void TestGetThemeNameFromGalleryTheme();
+
+ CPPUNIT_TEST_SUITE(GalleryObjTest);
+
+ CPPUNIT_TEST(TestCreateTheme);
+ CPPUNIT_TEST(TestDeleteTheme);
+ CPPUNIT_TEST(TestSetThemeName);
+ CPPUNIT_TEST(TestThemeURLCase);
+ CPPUNIT_TEST(TestThemeCount);
+ CPPUNIT_TEST(TestGalleryThemeEntry);
+ CPPUNIT_TEST(TestInsertGalleryObject);
+ CPPUNIT_TEST(TestRemoveGalleryObject);
+ CPPUNIT_TEST(TestChangePositionGalleryObject);
+ CPPUNIT_TEST(TestGetThemeNameFromGalleryTheme);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// Create and Dereference a theme, check that file exists
+void GalleryObjTest::TestCreateTheme()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // check if files exist
+ CPPUNIT_ASSERT_MESSAGE(
+ "Could not find .thm file inside it",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".thm"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "Could not find .sdv file inside it",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".sdv"));
+}
+
+// Create and Delete Theme, check the file doesn't exist
+void GalleryObjTest::TestDeleteTheme()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Delete Theme
+ CPPUNIT_ASSERT_MESSAGE("Could not remove theme", pGallery->RemoveTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not remove theme, theme found even after trying to remove",
+ !pGallery->HasTheme(myThemeName));
+
+ // Check that files do not exist
+ CPPUNIT_ASSERT_MESSAGE(
+ "Found .thm file inside it after deletion",
+ !comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".thm"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "Found .sdv file inside it after deletion",
+ !comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".sdv"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "Found .sdg file inside it after deletion",
+ !comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".sdg"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "Found .str file inside it after deletion",
+ !comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".str"));
+}
+
+// Create theme, set name, assert the name is expected
+void GalleryObjTest::TestSetThemeName()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Rename theme
+ static const OUStringLiteral myNewThemeName = u"addytestthemenew";
+ pGallery->RenameTheme(myThemeName, myNewThemeName);
+ CPPUNIT_ASSERT_MESSAGE("Could not rename theme because old theme name still exists",
+ !pGallery->HasTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find new renamed theme", pGallery->HasTheme(myNewThemeName));
+
+ // Check that files are not renamed
+ CPPUNIT_ASSERT_MESSAGE(
+ "Could not find .thm file inside it",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".thm"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "Could not find .sdv file inside it",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".sdv"));
+}
+
+void GalleryObjTest::TestThemeURLCase()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+
+ // Mixed Case Theme Name
+ const OUString myThemeName = "AddyTestTheme";
+
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+#if defined(LINUX)
+ CPPUNIT_ASSERT_MESSAGE("[LINUX] Could not find .thm in lowercase",
+ comphelper::DirectoryHelper::fileExists(
+ aGalleryURL + "/" + myThemeName.toAsciiLowerCase() + ".thm"));
+ CPPUNIT_ASSERT_MESSAGE("[LINUX] Could not find .sdv in lowercase",
+ comphelper::DirectoryHelper::fileExists(
+ aGalleryURL + "/" + myThemeName.toAsciiLowerCase() + ".sdv"));
+#else
+ CPPUNIT_ASSERT_MESSAGE(
+ "[WINDOWS] Could not find .thm in mixed case",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".thm"));
+ CPPUNIT_ASSERT_MESSAGE(
+ "[WINDOWS] Could not find .sdv in mixed case",
+ comphelper::DirectoryHelper::fileExists(aGalleryURL + "/" + myThemeName + ".sdv"));
+#endif
+}
+
+void GalleryObjTest::TestThemeCount()
+{
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+
+ // Loop through and test theme count in each pass.
+ sal_uInt32 nLimit = 10;
+ for (sal_uInt32 i = 1; i <= nLimit; i++)
+ {
+ OUString myThemeName = "addytesttheme" + OUString::number(i);
+ // Create theme
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent theme count",
+ static_cast<sal_uInt32>(pGallery->GetThemeCount()), i);
+ }
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent theme count",
+ static_cast<sal_uInt32>(pGallery->GetThemeCount()), nLimit);
+ for (sal_uInt32 i = nLimit; i > 0; i--)
+ {
+ OUString myThemeName = "addytesttheme" + OUString::number(i);
+ // Delete Theme
+ CPPUNIT_ASSERT_MESSAGE("Could not remove theme", pGallery->RemoveTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not remove theme, theme found even after trying to remove",
+ !pGallery->HasTheme(myThemeName));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent theme count",
+ static_cast<sal_uInt32>(pGallery->GetThemeCount()), i - 1);
+ }
+}
+
+void GalleryObjTest::TestGalleryThemeEntry()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ const OUString myThemeName = "addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Get Theme Entry Object
+ const GalleryThemeEntry* mpThemeEntry = pGallery->GetThemeInfo(myThemeName);
+
+ // Check Theme Name
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Theme name doesn't match", mpThemeEntry->GetThemeName(),
+ myThemeName);
+
+ // Check URLs
+ GalleryBinaryStorageLocations& aGalleryBinaryStorageLocations
+ = dynamic_cast<GalleryBinaryStorageLocations&>(mpThemeEntry->getGalleryStorageLocations());
+ INetURLObject aURL(aGalleryURL);
+ aURL.Append(myThemeName);
+ INetURLObject aThemeURL(aURL), aSdvURL(aURL), aSdgURL(aURL), aStrURL(aURL);
+ aThemeURL.setExtension(u"thm");
+ aSdvURL.setExtension(u"sdv");
+ aSdgURL.setExtension(u"sdg");
+ aStrURL.setExtension(u"str");
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Theme URL doesn't match",
+ aGalleryBinaryStorageLocations.GetThmURL().GetMainURL(
+ INetURLObject::DecodeMechanism::Unambiguous),
+ aThemeURL.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Sdv URL doesn't match",
+ aGalleryBinaryStorageLocations.GetSdvURL().GetMainURL(
+ INetURLObject::DecodeMechanism::Unambiguous),
+ aSdvURL.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Sdg URL doesn't match",
+ aGalleryBinaryStorageLocations.GetSdgURL().GetMainURL(
+ INetURLObject::DecodeMechanism::Unambiguous),
+ aSdgURL.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Str URL doesn't match",
+ aGalleryBinaryStorageLocations.GetStrURL().GetMainURL(
+ INetURLObject::DecodeMechanism::Unambiguous),
+ aStrURL.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
+}
+
+void GalleryObjTest::TestInsertGalleryObject()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Create Sfx Instance
+ SfxListener aListener;
+ SfxApplication::GetOrCreate();
+
+ // Insert Objects Into Theme
+ GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
+ pGalleryTheme->GetObjectCount());
+
+ std::vector<OUString> imageList{ "galtest1.png", "galtest2.png", "galtest3.jpg" };
+
+ for (sal_uInt32 i = 0; i < static_cast<sal_uInt32>(imageList.size()); i++)
+ {
+ OUString imageNameFromList(imageList[i]);
+ OUString aURL(m_directories.getURLFromSrc(u"/svx/qa/unit/gallery/data/")
+ + imageNameFromList);
+ CPPUNIT_ASSERT_MESSAGE("Could not insert object into theme",
+ pGalleryTheme->InsertURL(INetURLObject(aURL)));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent object Count", pGalleryTheme->GetObjectCount(),
+ i + 1);
+ std::unique_ptr<SgaObject> pObj = pGalleryTheme->AcquireObject(i);
+ CPPUNIT_ASSERT_MESSAGE("Acquired Object Invalid", pObj->IsValid());
+ }
+ pGallery->ReleaseTheme(pGalleryTheme, aListener);
+}
+
+void GalleryObjTest::TestRemoveGalleryObject()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Create Sfx Instance
+ SfxListener aListener;
+ SfxApplication::GetOrCreate();
+
+ // Insert Objects Into Theme
+ GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
+ pGalleryTheme->GetObjectCount());
+
+ std::vector<OUString> imageList{ "galtest1.png", "galtest2.png", "galtest3.jpg" };
+
+ for (sal_uInt32 i = 0; i < static_cast<sal_uInt32>(imageList.size()); i++)
+ {
+ OUString imageNameFromList(imageList[i]);
+ OUString aURL(m_directories.getURLFromSrc(u"/svx/qa/unit/gallery/data/")
+ + imageNameFromList);
+ CPPUNIT_ASSERT_MESSAGE("Could not insert object into theme",
+ pGalleryTheme->InsertURL(INetURLObject(aURL)));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent object Count", pGalleryTheme->GetObjectCount(),
+ i + 1);
+ std::unique_ptr<SgaObject> pObj = pGalleryTheme->AcquireObject(i);
+ CPPUNIT_ASSERT_MESSAGE("Acquired Object Invalid", pObj->IsValid());
+ }
+
+ for (sal_uInt32 i = static_cast<sal_uInt32>(imageList.size()); i > 0; i--)
+ {
+ std::unique_ptr<SgaObject> pObj = pGalleryTheme->AcquireObject(i - 1);
+ CPPUNIT_ASSERT_MESSAGE("Acquired Object Invalid", pObj->IsValid());
+ pGalleryTheme->RemoveObject(i - 1);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent object Count", pGalleryTheme->GetObjectCount(),
+ i - 1);
+ }
+
+ pGallery->ReleaseTheme(pGalleryTheme, aListener);
+}
+
+void GalleryObjTest::TestChangePositionGalleryObject()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ static const OUStringLiteral myThemeName = u"addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Create Sfx Instance
+ SfxListener aListener;
+ SfxApplication::GetOrCreate();
+
+ // Insert Objects Into Theme
+ GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
+ pGalleryTheme->GetObjectCount());
+
+ OUString imageList[] = { "galtest1.png", "galtest2.png", "galtest3.jpg" };
+
+ for (sal_uInt32 i = 0; i < (sizeof(imageList) / sizeof(imageList[0])); i++)
+ {
+ OUString imageNameFromList(imageList[i]);
+ OUString aURL(m_directories.getURLFromSrc(u"/svx/qa/unit/gallery/data/")
+ + imageNameFromList);
+ CPPUNIT_ASSERT_MESSAGE("Could not insert object into theme",
+ pGalleryTheme->InsertURL(INetURLObject(aURL)));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Inconsistent object Count", pGalleryTheme->GetObjectCount(),
+ i + 1);
+ std::unique_ptr<SgaObject> pObj = pGalleryTheme->AcquireObject(i);
+ CPPUNIT_ASSERT_MESSAGE("Acquired Object Invalid", pObj->IsValid());
+ }
+
+ CPPUNIT_ASSERT(pGalleryTheme->ChangeObjectPos(1, 3));
+ std::unique_ptr<SgaObject> pObj = pGalleryTheme->AcquireObject(0);
+ INetURLObject aURL = pObj->GetURL();
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Failure to change object position", imageList[0],
+ aURL.GetLastName());
+
+ pObj = pGalleryTheme->AcquireObject(1);
+ aURL = pObj->GetURL();
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Failure to change object position", imageList[2],
+ aURL.GetLastName());
+
+ pObj = pGalleryTheme->AcquireObject(2);
+ aURL = pObj->GetURL();
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Failure to change object position", imageList[1],
+ aURL.GetLastName());
+
+ pGallery->ReleaseTheme(pGalleryTheme, aListener);
+}
+
+void GalleryObjTest::TestGetThemeNameFromGalleryTheme()
+{
+ // Create theme
+ std::unique_ptr<utl::TempFile> pTempDir;
+ pTempDir.reset(new utl::TempFile(nullptr, true));
+ CPPUNIT_ASSERT_MESSAGE("Could not create valid temporary directory", pTempDir->IsValid());
+ pTempDir->EnableKillingFile();
+ const OUString aGalleryURL = pTempDir->GetURL();
+
+ // Check if directory exists
+ CPPUNIT_ASSERT_MESSAGE("Could not create temporary directory",
+ comphelper::DirectoryHelper::dirExists(aGalleryURL));
+
+ std::unique_ptr<Gallery> pGallery(new Gallery(aGalleryURL));
+ CPPUNIT_ASSERT_MESSAGE("Could not create gallery instance", (pGallery != nullptr));
+ const OUString myThemeName = "addytesttheme";
+ CPPUNIT_ASSERT_MESSAGE("Could not create theme", pGallery->CreateTheme(myThemeName));
+ CPPUNIT_ASSERT_MESSAGE("Could not find theme", pGallery->HasTheme(myThemeName));
+
+ // Create Sfx Instance
+ SfxListener aListener;
+ SfxApplication::GetOrCreate();
+
+ GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, aListener);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
+ pGalleryTheme->GetObjectCount());
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Theme name not matching", myThemeName, pGalleryTheme->GetName());
+
+ pGallery->ReleaseTheme(pGalleryTheme, aListener);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(GalleryObjTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();