homescreensrv_plat/contentstorage_api/tsrc/t_contentstorage_api/src/t_caclient_notifier.cpp
author hgs
Wed, 06 Oct 2010 16:00:22 +0300
changeset 125 26079c1bb561
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
125
26079c1bb561 201039_01
hgs
parents:
diff changeset
     1
/*
26079c1bb561 201039_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
26079c1bb561 201039_01
hgs
parents:
diff changeset
     3
* All rights reserved.
26079c1bb561 201039_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
26079c1bb561 201039_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
26079c1bb561 201039_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
26079c1bb561 201039_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
26079c1bb561 201039_01
hgs
parents:
diff changeset
     8
*
26079c1bb561 201039_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
26079c1bb561 201039_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
26079c1bb561 201039_01
hgs
parents:
diff changeset
    11
*
26079c1bb561 201039_01
hgs
parents:
diff changeset
    12
* Contributors:
26079c1bb561 201039_01
hgs
parents:
diff changeset
    13
*
26079c1bb561 201039_01
hgs
parents:
diff changeset
    14
* Description:  Main test class for hspluginmodel library.
26079c1bb561 201039_01
hgs
parents:
diff changeset
    15
*
26079c1bb561 201039_01
hgs
parents:
diff changeset
    16
*/
26079c1bb561 201039_01
hgs
parents:
diff changeset
    17
26079c1bb561 201039_01
hgs
parents:
diff changeset
    18
#include <QScopedPointer>
26079c1bb561 201039_01
hgs
parents:
diff changeset
    19
#include <qservicemanager.h>
26079c1bb561 201039_01
hgs
parents:
diff changeset
    20
26079c1bb561 201039_01
hgs
parents:
diff changeset
    21
#include "t_caclient.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    22
#include "caservice.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    23
#include "canotifier.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    24
#include "canotifierfilter.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    25
#include "caquery.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    26
#include "t_caclientNotifier.h"
26079c1bb561 201039_01
hgs
parents:
diff changeset
    27
26079c1bb561 201039_01
hgs
parents:
diff changeset
    28
const int entryIdFake(-1);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    29
const int waitTime500ms(500);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    30
const int waitTime1sec(1000);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    31
26079c1bb561 201039_01
hgs
parents:
diff changeset
    32
QTM_USE_NAMESPACE
26079c1bb561 201039_01
hgs
parents:
diff changeset
    33
26079c1bb561 201039_01
hgs
parents:
diff changeset
    34
QStringList pluginPaths;
26079c1bb561 201039_01
hgs
parents:
diff changeset
    35
QString xmlName("caapphandlerplugin.xml");
26079c1bb561 201039_01
hgs
parents:
diff changeset
    36
26079c1bb561 201039_01
hgs
parents:
diff changeset
    37
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    38
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    39
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    40
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    41
void TestCaClient::initTestCase()
26079c1bb561 201039_01
hgs
parents:
diff changeset
    42
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
    43
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    44
    startThread();
26079c1bb561 201039_01
hgs
parents:
diff changeset
    45
#endif //Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    46
    mService = CaService::instance();
26079c1bb561 201039_01
hgs
parents:
diff changeset
    47
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
    48
26079c1bb561 201039_01
hgs
parents:
diff changeset
    49
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    50
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    51
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    52
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    53
void TestCaClient::cleanupTestCase()
26079c1bb561 201039_01
hgs
parents:
diff changeset
    54
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
    55
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    56
    stopThread();
26079c1bb561 201039_01
hgs
parents:
diff changeset
    57
#endif //Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    58
    QSharedPointer<CaService> serviceNull(NULL);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    59
    mService = serviceNull;
26079c1bb561 201039_01
hgs
parents:
diff changeset
    60
    QTest::qWait(5000);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    61
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
    62
26079c1bb561 201039_01
hgs
parents:
diff changeset
    63
26079c1bb561 201039_01
hgs
parents:
diff changeset
    64
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    65
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    66
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    67
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    68
int threadFunction(void */*params*/)
26079c1bb561 201039_01
hgs
parents:
diff changeset
    69
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
    70
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    71
    while (ETrue) {
26079c1bb561 201039_01
hgs
parents:
diff changeset
    72
        User::ResetInactivityTime();//it should help for Viewserver11 panic
26079c1bb561 201039_01
hgs
parents:
diff changeset
    73
        User::After(5000000);
26079c1bb561 201039_01
hgs
parents:
diff changeset
    74
    }
26079c1bb561 201039_01
hgs
parents:
diff changeset
    75
#endif //Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    76
    return 0;
26079c1bb561 201039_01
hgs
parents:
diff changeset
    77
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
    78
26079c1bb561 201039_01
hgs
parents:
diff changeset
    79
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    80
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    81
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    82
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    83
void TestCaClient::startThread()
26079c1bb561 201039_01
hgs
parents:
diff changeset
    84
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
    85
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    86
    User::LeaveIfError(iThread.Create(
26079c1bb561 201039_01
hgs
parents:
diff changeset
    87
                           _L("thread_kill_viewsrv11"),
26079c1bb561 201039_01
hgs
parents:
diff changeset
    88
                           threadFunction,
26079c1bb561 201039_01
hgs
parents:
diff changeset
    89
                           16384,
26079c1bb561 201039_01
hgs
parents:
diff changeset
    90
                           4000,
26079c1bb561 201039_01
hgs
parents:
diff changeset
    91
                           4000,
26079c1bb561 201039_01
hgs
parents:
diff changeset
    92
                           NULL));
26079c1bb561 201039_01
hgs
parents:
diff changeset
    93
    iThread.Resume();
26079c1bb561 201039_01
hgs
parents:
diff changeset
    94
#endif //Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
    95
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
    96
26079c1bb561 201039_01
hgs
parents:
diff changeset
    97
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
    98
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
    99
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
   100
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
   101
void TestCaClient::stopThread()
26079c1bb561 201039_01
hgs
parents:
diff changeset
   102
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
   103
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   104
    iThread.Close();
26079c1bb561 201039_01
hgs
parents:
diff changeset
   105
#endif //Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   106
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
   107
26079c1bb561 201039_01
hgs
parents:
diff changeset
   108
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
   109
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
   110
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
   111
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
   112
void TestCaClient::Test_createNotifier()
26079c1bb561 201039_01
hgs
parents:
diff changeset
   113
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
   114
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   115
#ifdef UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   116
// __UHEAP_MARK;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   117
#endif//UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   118
#endif//Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   119
    {
26079c1bb561 201039_01
hgs
parents:
diff changeset
   120
26079c1bb561 201039_01
hgs
parents:
diff changeset
   121
        CaNotifierFilter *filter = new CaNotifierFilter();
26079c1bb561 201039_01
hgs
parents:
diff changeset
   122
        filter->setEntryRole(GroupEntryRole);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   123
        filter->setTypeNames(QStringList() << "TypeName");
26079c1bb561 201039_01
hgs
parents:
diff changeset
   124
        TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   125
        CaNotifier *notifier = clientNotifier->getNotifier();
26079c1bb561 201039_01
hgs
parents:
diff changeset
   126
26079c1bb561 201039_01
hgs
parents:
diff changeset
   127
        connect(notifier, SIGNAL(entryChanged(int,ChangeType)),
26079c1bb561 201039_01
hgs
parents:
diff changeset
   128
        clientNotifier, SLOT(entryChanged(int,ChangeType)));
26079c1bb561 201039_01
hgs
parents:
diff changeset
   129
        QTest::qWait(waitTime500ms);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   130
        CaEntry group(GroupEntryRole);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   131
        group.setText("Text");
26079c1bb561 201039_01
hgs
parents:
diff changeset
   132
        group.setEntryTypeName("TypeName");
26079c1bb561 201039_01
hgs
parents:
diff changeset
   133
26079c1bb561 201039_01
hgs
parents:
diff changeset
   134
        QSharedPointer<CaEntry> entry = mService->createEntry(group);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   135
        QTest::qWait(waitTime1sec);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   136
26079c1bb561 201039_01
hgs
parents:
diff changeset
   137
        QCOMPARE(clientNotifier->mChangeType, AddChangeType);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   138
        QVERIFY(clientNotifier->mEntryId > 0);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   139
        QCOMPARE(clientNotifier->mEntryId, entry->id());
26079c1bb561 201039_01
hgs
parents:
diff changeset
   140
26079c1bb561 201039_01
hgs
parents:
diff changeset
   141
        // cleanup
26079c1bb561 201039_01
hgs
parents:
diff changeset
   142
        disconnect(notifier, SIGNAL(entryChanged(int,ChangeType)),
26079c1bb561 201039_01
hgs
parents:
diff changeset
   143
        clientNotifier, SLOT(entryChanged(int,ChangeType)));
26079c1bb561 201039_01
hgs
parents:
diff changeset
   144
        QTest::qWait(waitTime500ms);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   145
        delete clientNotifier;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   146
        mService->removeEntry(entry->id());
26079c1bb561 201039_01
hgs
parents:
diff changeset
   147
    }
26079c1bb561 201039_01
hgs
parents:
diff changeset
   148
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   149
#ifdef UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   150
// __UHEAP_MARKEND;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   151
#endif//UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   152
#endif//Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   153
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
   154
26079c1bb561 201039_01
hgs
parents:
diff changeset
   155
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
   156
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
   157
// ---------------------------------------------------------------------------
26079c1bb561 201039_01
hgs
parents:
diff changeset
   158
//
26079c1bb561 201039_01
hgs
parents:
diff changeset
   159
void TestCaClient::Test_touch()
26079c1bb561 201039_01
hgs
parents:
diff changeset
   160
{
26079c1bb561 201039_01
hgs
parents:
diff changeset
   161
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   162
#ifdef UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   163
// __UHEAP_MARK;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   164
#endif//UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   165
#endif//Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   166
26079c1bb561 201039_01
hgs
parents:
diff changeset
   167
    CaEntry item;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   168
    item.setText("Text");
26079c1bb561 201039_01
hgs
parents:
diff changeset
   169
    item.setEntryTypeName("TypeName");
26079c1bb561 201039_01
hgs
parents:
diff changeset
   170
    QSharedPointer<CaEntry> entry = mService->createEntry(item);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   171
    QTest::qWait(waitTime1sec);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   172
26079c1bb561 201039_01
hgs
parents:
diff changeset
   173
    CaNotifierFilter *filter = new CaNotifierFilter();
26079c1bb561 201039_01
hgs
parents:
diff changeset
   174
    filter->setEntryRole(ItemEntryRole);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   175
    filter->setIds(QList<int>() << entry->id());
26079c1bb561 201039_01
hgs
parents:
diff changeset
   176
    TestCaClientNotifier *clientNotifier = new TestCaClientNotifier(*mService, filter);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   177
    CaNotifier *notifier = clientNotifier->getNotifier();
26079c1bb561 201039_01
hgs
parents:
diff changeset
   178
26079c1bb561 201039_01
hgs
parents:
diff changeset
   179
    connect(notifier, SIGNAL(entryTouched(int)),
26079c1bb561 201039_01
hgs
parents:
diff changeset
   180
            clientNotifier, SLOT(entryTouched(int)));
26079c1bb561 201039_01
hgs
parents:
diff changeset
   181
    QTest::qWait(waitTime500ms);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   182
26079c1bb561 201039_01
hgs
parents:
diff changeset
   183
    bool touched = mService->touch(*entry);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   184
    QTest::qWait(waitTime1sec);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   185
26079c1bb561 201039_01
hgs
parents:
diff changeset
   186
    QVERIFY(clientNotifier->mEntryId > 0);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   187
    QCOMPARE(clientNotifier->mEntryId, entry->id());
26079c1bb561 201039_01
hgs
parents:
diff changeset
   188
    QCOMPARE(touched, TRUE);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   189
26079c1bb561 201039_01
hgs
parents:
diff changeset
   190
    // cleanup
26079c1bb561 201039_01
hgs
parents:
diff changeset
   191
    disconnect(notifier, SIGNAL(entryTouched(int)),
26079c1bb561 201039_01
hgs
parents:
diff changeset
   192
               clientNotifier, SLOT(entryTouched(int)));
26079c1bb561 201039_01
hgs
parents:
diff changeset
   193
    QTest::qWait(waitTime500ms);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   194
    delete clientNotifier;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   195
    delete filter;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   196
    mService->removeEntry(entry->id());
26079c1bb561 201039_01
hgs
parents:
diff changeset
   197
    QTest::qWait(waitTime1sec);
26079c1bb561 201039_01
hgs
parents:
diff changeset
   198
26079c1bb561 201039_01
hgs
parents:
diff changeset
   199
#ifdef Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   200
#ifdef UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   201
// __UHEAP_MARKEND;
26079c1bb561 201039_01
hgs
parents:
diff changeset
   202
#endif//UT_MEMORY_CHECK
26079c1bb561 201039_01
hgs
parents:
diff changeset
   203
#endif//Q_OS_SYMBIAN
26079c1bb561 201039_01
hgs
parents:
diff changeset
   204
}
26079c1bb561 201039_01
hgs
parents:
diff changeset
   205
26079c1bb561 201039_01
hgs
parents:
diff changeset
   206
//QTEST_MAIN(homescreen::test::TestCaClient)