--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/hsdomainmodel/tsrc/t_hsdomainmodel/src/t_hswallpaper.cpp Mon Sep 20 10:19:07 2010 +0300
@@ -0,0 +1,174 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include "t_hsdomainmodel.h"
+#include "hswallpaper.h"
+#include "hsscene.h"
+#include "hspage.h"
+
+void TestHsDomainModel::testHsWallpaperConstruction()
+{
+ {
+ HsSceneWallpaper wallpaper(HsScene::instance());
+ QVERIFY(!wallpaper.parent());
+ }
+
+ HsPage *page = new HsPage();
+ page->setDatabaseId(1);
+ {
+ HbWidget parent;
+ HsPageWallpaper wallpaper(page, &parent);
+ QVERIFY(wallpaper.parentItem() == &parent);
+ }
+
+ HsPageWallpaper *pagewallpaper = new HsPageWallpaper(page);
+ QVERIFY(pagewallpaper);
+ QVERIFY(!pagewallpaper->parent());
+ delete pagewallpaper;
+
+ HbWidget *parent = new HbWidget();
+ HsSceneWallpaper *scenewallpaper = new HsSceneWallpaper(HsScene::instance(), parent);
+ QVERIFY(scenewallpaper);
+ QVERIFY(scenewallpaper->parentItem() == parent);
+ delete parent;
+
+ delete page;
+}
+
+void TestHsDomainModel::testHsWallpaperSetNRemoveDefaultImage()
+{
+ //Default image is set already at construction phase while scene DB id
+ //is not set.
+ QVERIFY(QFile::exists(sourceTestWallpaper()));
+ HsSceneWallpaper *wallpaper = new HsSceneWallpaper(HsScene::instance());
+ QVERIFY(QDir::toNativeSeparators(wallpaper->mPortraitImagePath) == sourceTestWallpaper());
+ wallpaper->setDefaultImage(); //Coverage improvement. Default image already set at construction phase.
+ QVERIFY(QDir::toNativeSeparators(wallpaper->mPortraitImagePath) == sourceTestWallpaper());
+ QVERIFY(wallpaper->mIsDefaultImage);
+ wallpaper->remove();
+ QVERIFY(!wallpaper->mIsDefaultImage);
+ QVERIFY(wallpaper->mPortraitImagePath.isEmpty());
+ QVERIFY(wallpaper->mLandscapeImagePath.isEmpty());
+ delete wallpaper;
+}
+
+void TestHsDomainModel::testHsWallpaperSetNRemoveImage()
+{
+ mWallpaperTypeScene = false; //Use page wallpaper at this test
+ //Prepare test case by checking that source file exists and
+ //deleting any page specific wallpapers existing in target folder
+ QVERIFY(QFile::exists(sourceTestWallpaper()));
+ cleanupTargetWallpaperFiles();
+
+ HsPage *page = new HsPage();
+ page->setDatabaseId(1);
+ //Construction phase sets default image since Id based image does not exist, yet.
+ HsPageWallpaper *wallpaper = new HsPageWallpaper(page);
+ QVERIFY(QDir::toNativeSeparators(wallpaper->mPortraitImagePath) == sourceTestWallpaper());
+
+ //TEST EMPTY SOURCE STRING
+ QSignalSpy setImageFailedSpy(wallpaper, SIGNAL(imageSetFailed()));
+ wallpaper->setImage(QString());
+ QCOMPARE(setImageFailedSpy.count(), 1);
+
+ QSignalSpy imageSetSpy(wallpaper, SIGNAL(imageSet()));
+ QEventLoop waitFinished;
+ QTimer eventLoopTimer;
+ eventLoopTimer.setInterval(15000);
+ eventLoopTimer.setSingleShot(true);
+ connect(wallpaper, SIGNAL(imageSet()), &waitFinished, SLOT(quit()));
+ connect(&eventLoopTimer, SIGNAL(timeout()), &waitFinished, SLOT(quit()));
+ //TEST SETIMAGE
+ wallpaper->setImage(sourceTestWallpaper());
+ eventLoopTimer.start();
+ waitFinished.exec();
+
+ QCOMPARE(imageSetSpy.count(), 1);
+ QVERIFY(eventLoopTimer.isActive());
+ eventLoopTimer.stop();
+
+ //Now we have Id based images.
+ QVERIFY(QDir::toNativeSeparators(wallpaper->mPortraitImagePath) == targetPortraitTestWallpaper());
+ QVERIFY(QDir::toNativeSeparators(wallpaper->mLandscapeImagePath) == targetLandscapeTestWallpaper());
+ QVERIFY(QFile::exists(targetPortraitTestWallpaper()));
+ QVERIFY(QFile::exists(targetLandscapeTestWallpaper()));
+
+ //TEST REMOVE
+ wallpaper->remove();
+ QVERIFY(wallpaper->mPortraitImagePath.isEmpty());
+ QVERIFY(wallpaper->mLandscapeImagePath.isEmpty());
+ QVERIFY(!QFile::exists(targetPortraitTestWallpaper()));
+ QVERIFY(!QFile::exists(targetLandscapeTestWallpaper()));
+
+ delete wallpaper;
+ delete page;
+}
+
+void TestHsDomainModel::testHsWallpaperLoaderFailed()
+{
+ cleanupTargetWallpaperFiles();
+
+ HsPage *page = new HsPage();
+ page->setDatabaseId(1);
+ //Construction phase sets default image since Id based image does not exist, yet.
+ HsPageWallpaper *wallpaper = new HsPageWallpaper(page);
+ QSignalSpy loaderFailedSpy(wallpaper, SIGNAL(imageSetFailed()));
+ wallpaper->onLoaderFailed();
+ QCOMPARE(loaderFailedSpy.count(), 1);
+
+ delete wallpaper;
+ delete page;
+}
+
+void TestHsDomainModel::testHsWallpaperScene()
+{
+ cleanupTargetWallpaperFiles();
+ //Construction phase sets default image since Id based image does not exist, yet.
+ HsSceneWallpaper *wallpaper = new HsSceneWallpaper(HsScene::instance());
+ QVariantHash papers = wallpaper->createTargets(".");
+ QVERIFY(papers.count()==2);
+ wallpaper->setScene(0);
+ QVERIFY(HsScene::instance() == wallpaper->mScene);
+
+ delete wallpaper;
+}
+void TestHsDomainModel::testHsWallpaperPage()
+{
+ cleanupTargetWallpaperFiles();
+
+ HsPage *page = new HsPage();
+ page->setDatabaseId(1);
+ //Construction phase sets default image since Id based image does not exist, yet.
+ HsPageWallpaper *wallpaper = new HsPageWallpaper(page);
+ wallpaper->setPage(0);
+ QVERIFY(page == wallpaper->mPage);
+ delete wallpaper;
+ delete page;
+}
+
+void TestHsDomainModel::testHsWallpaperSetImages()
+{
+ HsPageWallpaper wp(0);
+ QSignalSpy spyIS(&wp, SIGNAL(imageSet()));
+ QSignalSpy spyISF(&wp, SIGNAL(imageSetFailed()));
+
+ wp.setImages(QString(), QString());
+
+ QCOMPARE(spyIS.count(), 0);
+ QCOMPARE(spyISF.count(), 1);
+}