homescreenapp/stateplugins/hshomescreenstateplugin/tsrc/t_hshomescreenstateplugin/src/t_hswallpaperselectionstate.cpp
author hgs
Mon, 20 Sep 2010 10:19:07 +0300
changeset 90 3ac3aaebaee5
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QStateMachine>
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <HbInstance>
hgs
parents:
diff changeset
    21
#include <HbMainWindow>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "t_hshomescreenstateplugin.h"
hgs
parents:
diff changeset
    24
#include "hswallpaperselectionstate.h"
hgs
parents:
diff changeset
    25
#include "hsscene.h"
hgs
parents:
diff changeset
    26
#include "hspage.h"
hgs
parents:
diff changeset
    27
#include "hsspinnerdialog.h"
hgs
parents:
diff changeset
    28
#include "hsconfiguration.h"
hgs
parents:
diff changeset
    29
#include "hsgui.h"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    32
#include "hsimagehandlingclient.h"
hgs
parents:
diff changeset
    33
#else
hgs
parents:
diff changeset
    34
#include "xqaiwgetimageclient.h"
hgs
parents:
diff changeset
    35
#endif
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
void HomeScreenStatePluginTest::testWallpaperSelectionStateConstruction()
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    HsWallpaperSelectionState *s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
    40
    QVERIFY(!s->mImageHandler);
hgs
parents:
diff changeset
    41
    QVERIFY(!s->mWallpaper);
hgs
parents:
diff changeset
    42
    QVERIFY(!s->mWaitDialog);
hgs
parents:
diff changeset
    43
    QCOMPARE(s->findChildren<QState *>().count(), 5);
hgs
parents:
diff changeset
    44
    delete s;
hgs
parents:
diff changeset
    45
}
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
void HomeScreenStatePluginTest::testWallpaperSelectionStateImageSelection()
hgs
parents:
diff changeset
    48
{
hgs
parents:
diff changeset
    49
    HsWallpaperSelectionState *s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
    50
        
hgs
parents:
diff changeset
    51
    // Generate mImageHandler.
hgs
parents:
diff changeset
    52
    s->action_selectingImage_start();
hgs
parents:
diff changeset
    53
    
hgs
parents:
diff changeset
    54
    QSignalSpy assignImageSpy(s, SIGNAL(event_assignImage()));
hgs
parents:
diff changeset
    55
    QSignalSpy errorSpy(s, SIGNAL(event_error()));
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    s->mImageHandler->setProperty("testSetToFail", false);
hgs
parents:
diff changeset
    58
    s->mImageHandler->fetch();
hgs
parents:
diff changeset
    59
    
hgs
parents:
diff changeset
    60
    QCOMPARE(assignImageSpy.count(), 1);
hgs
parents:
diff changeset
    61
    assignImageSpy.clear();
hgs
parents:
diff changeset
    62
    QCOMPARE(errorSpy.count(), 0);
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    s->mImageHandler->setProperty("testSetToFail", true);
hgs
parents:
diff changeset
    65
    s->mImageHandler->fetch();
hgs
parents:
diff changeset
    66
    
hgs
parents:
diff changeset
    67
    QCOMPARE(assignImageSpy.count(), 0);    
hgs
parents:
diff changeset
    68
    QCOMPARE(errorSpy.count(), 1);
hgs
parents:
diff changeset
    69
    errorSpy.clear();
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
    delete s;
hgs
parents:
diff changeset
    72
}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
void HomeScreenStatePluginTest::testWallpaperSelectionStateImageAssignment()
hgs
parents:
diff changeset
    75
{    
hgs
parents:
diff changeset
    76
    createSceneAndWindow(1, 0);    
hgs
parents:
diff changeset
    77
    HsWallpaperSelectionState *s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
    78
        
hgs
parents:
diff changeset
    79
    QSignalSpy waitInputSpy(s, SIGNAL(event_waitInput()));
hgs
parents:
diff changeset
    80
    s->action_assigningImage_start();
hgs
parents:
diff changeset
    81
    QCOMPARE(waitInputSpy.count(), 1);
hgs
parents:
diff changeset
    82
    QVERIFY(s->mWallpaper);
hgs
parents:
diff changeset
    83
    s->action_assigningImage_cleanup();
hgs
parents:
diff changeset
    84
    QVERIFY(!s->mWallpaper);
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    delete s;
hgs
parents:
diff changeset
    87
    deleteSceneAndWindow();    
hgs
parents:
diff changeset
    88
}
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
void HomeScreenStatePluginTest::testWallpaperSelectionStateSimpleMethods()
hgs
parents:
diff changeset
    91
{
hgs
parents:
diff changeset
    92
    HbInstance::instance();
hgs
parents:
diff changeset
    93
    HbMainWindow *window = new HbMainWindow;
hgs
parents:
diff changeset
    94
    window->move(0, 0);
hgs
parents:
diff changeset
    95
    window->show();
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
    HsWallpaperSelectionState *s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    // Cleanup
hgs
parents:
diff changeset
   100
    s->action_selectingImage_start();
hgs
parents:
diff changeset
   101
    s->action_imageHandler_cleanup();
hgs
parents:
diff changeset
   102
    QVERIFY(!s->mImageHandler);
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    delete s;
hgs
parents:
diff changeset
   105
    s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
    // Wait dialog
hgs
parents:
diff changeset
   108
    s->action_assigningImage_showWaitDialog();
hgs
parents:
diff changeset
   109
    QVERIFY(s->mWaitDialog);
hgs
parents:
diff changeset
   110
    s->mWaitDialog->stop();
hgs
parents:
diff changeset
   111
    s->action_assigningImage_hideWaitDialog();
hgs
parents:
diff changeset
   112
    QVERIFY(!s->mWaitDialog);
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    delete s;
hgs
parents:
diff changeset
   115
    s = new HsWallpaperSelectionState;
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    QSignalSpy waitInputSpy(s, SIGNAL(event_waitInput()));
hgs
parents:
diff changeset
   118
    s->action_errorMessage_show();
hgs
parents:
diff changeset
   119
    QCOMPARE(waitInputSpy.count(), 1);    
hgs
parents:
diff changeset
   120
    waitInputSpy.clear();
hgs
parents:
diff changeset
   121
    
hgs
parents:
diff changeset
   122
    s->onImageSet();
hgs
parents:
diff changeset
   123
    QCOMPARE(waitInputSpy.count(), 1);
hgs
parents:
diff changeset
   124
    waitInputSpy.clear();
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    QSignalSpy errorSpy(s, SIGNAL(event_error()));
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
    s->onImageSetFailed();
hgs
parents:
diff changeset
   129
    QCOMPARE(errorSpy.count(), 1);
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    delete s;
hgs
parents:
diff changeset
   132
    // main window deleted -> HsGui must be deleted also
hgs
parents:
diff changeset
   133
    delete HsGui::takeInstance();
hgs
parents:
diff changeset
   134
    delete window;
hgs
parents:
diff changeset
   135
}
hgs
parents:
diff changeset
   136