~ubuntu-branches/ubuntu/quantal/qtmobility/quantal

« back to all changes in this revision

Viewing changes to tests/auto/qgalleryremoverequest/tst_qgalleryremoverequest.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-11-16 16:18:07 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20101116161807-k2dzt2nyse975r3l
Tags: 1.1.0-0ubuntu1
* New upstream release
* Syncronise with Debian, no remaining changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
**
3
 
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
 
** All rights reserved.
5
 
** Contact: Nokia Corporation (qt-info@nokia.com)
6
 
**
7
 
** This file is part of the Qt Mobility Components.
8
 
**
9
 
** $QT_BEGIN_LICENSE:LGPL$
10
 
** Commercial Usage
11
 
** Licensees holding valid Qt Commercial licenses may use this file in
12
 
** accordance with the Qt Solutions Commercial License Agreement provided
13
 
** with the Software or, alternatively, in accordance with the terms
14
 
** contained in a written agreement between you and Nokia.
15
 
**
16
 
** GNU Lesser General Public License Usage
17
 
** Alternatively, this file may be used under the terms of the GNU Lesser
18
 
** General Public License version 2.1 as published by the Free Software
19
 
** Foundation and appearing in the file LICENSE.LGPL included in the
20
 
** packaging of this file.  Please review the following information to
21
 
** ensure the GNU Lesser General Public License version 2.1 requirements
22
 
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23
 
**
24
 
** In addition, as a special exception, Nokia gives you certain additional
25
 
** rights.  These rights are described in the Nokia Qt LGPL Exception
26
 
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27
 
**
28
 
** GNU General Public License Usage
29
 
** Alternatively, this file may be used under the terms of the GNU
30
 
** General Public License version 3.0 as published by the Free Software
31
 
** Foundation and appearing in the file LICENSE.GPL included in the
32
 
** packaging of this file.  Please review the following information to
33
 
** ensure the GNU General Public License version 3.0 requirements will be
34
 
** met: http://www.gnu.org/copyleft/gpl.html.
35
 
**
36
 
** Please note Third Party Software included with Qt Solutions may impose
37
 
** additional restrictions and it is the user's responsibility to ensure
38
 
** that they have met the licensing requirements of the GPL, LGPL, or Qt
39
 
** Solutions Commercial license and the relevant license of the Third
40
 
** Party Software they are using.
41
 
**
42
 
** If you are unsure which license is appropriate for your use, please
43
 
** contact the sales department at qt-sales@nokia.com.
44
 
** $QT_END_LICENSE$
45
 
**
46
 
****************************************************************************/
47
 
 
48
 
//TESTED_COMPONENT=src/documentgallery
49
 
 
50
 
#include <qgalleryremoverequest.h>
51
 
 
52
 
#include <qabstractgallery.h>
53
 
#include <qgalleryabstractresponse.h>
54
 
 
55
 
#include <QtTest/QtTest>
56
 
 
57
 
QTM_USE_NAMESPACE
58
 
 
59
 
class tst_QGalleryRemoveRequest : public QObject
60
 
{
61
 
    Q_OBJECT
62
 
 
63
 
private Q_SLOTS:
64
 
    void properties();
65
 
    void executeSynchronous();
66
 
    void executeAsynchronous();
67
 
};
68
 
 
69
 
class QtGalleryTestResponse : public QGalleryAbstractResponse
70
 
{
71
 
    Q_OBJECT
72
 
public:
73
 
    QtGalleryTestResponse(
74
 
            QGalleryAbstractRequest::Status status, int error, const QString &errorString)
75
 
    {
76
 
        if (error != QGalleryAbstractRequest::NoError)
77
 
            QGalleryAbstractResponse::error(error, errorString);
78
 
        else if (status == QGalleryAbstractRequest::Finished)
79
 
            finish();
80
 
        else if (status == QGalleryAbstractRequest::Idle)
81
 
            finish(true);
82
 
    }
83
 
 
84
 
    bool waitForFinished(int) { return false; }
85
 
 
86
 
public Q_SLOTS:
87
 
    void doFinish(bool idle) { finish(idle); }
88
 
    void doError(int error, const QString &errorString) {
89
 
        QGalleryAbstractResponse::error(error, errorString); }
90
 
};
91
 
 
92
 
class QtTestGallery : public QAbstractGallery
93
 
{
94
 
    Q_OBJECT
95
 
public:
96
 
    QtTestGallery()
97
 
        : m_status(QGalleryAbstractRequest::Active)
98
 
        , m_error(QGalleryAbstractRequest::NoError)
99
 
    {}
100
 
 
101
 
    bool isRequestSupported(QGalleryAbstractRequest::RequestType type) const {
102
 
        return type == QGalleryAbstractRequest::RemoveRequest; }
103
 
 
104
 
    void setStatus(QGalleryAbstractRequest::Status status) { m_status = status; }
105
 
    void setError(int error, const QString &errorString) {
106
 
        m_error = error; m_errorString = errorString; }
107
 
 
108
 
 
109
 
#ifdef Q_MOC_RUN
110
 
Q_SIGNALS:
111
 
#endif
112
 
    void finish(bool idle);
113
 
    void error(int error, const QString &errorString);
114
 
 
115
 
protected:
116
 
    QGalleryAbstractResponse *createResponse(QGalleryAbstractRequest *request)
117
 
    {
118
 
        if (request->type() == QGalleryAbstractRequest::RemoveRequest) {
119
 
            QtGalleryTestResponse *response = new QtGalleryTestResponse(
120
 
                    m_status, m_error, m_errorString);
121
 
 
122
 
            connect(this, SIGNAL(finish(bool)), response, SLOT(doFinish(bool)));
123
 
            connect(this, SIGNAL(error(int,QString)), response, SLOT(doError(int,QString)));
124
 
 
125
 
            return response;
126
 
        }
127
 
        return 0;
128
 
    }
129
 
 
130
 
private:
131
 
    QGalleryAbstractRequest::Status m_status;
132
 
    int m_error;
133
 
    QString m_errorString;
134
 
};
135
 
 
136
 
 
137
 
void tst_QGalleryRemoveRequest::properties()
138
 
{
139
 
    QGalleryRemoveRequest request;
140
 
 
141
 
    request.setItemId(QVariant(76));
142
 
    QCOMPARE(request.itemId(), QVariant(76));
143
 
 
144
 
    request.setItemId(QVariant(QLatin1String("65")));
145
 
    QCOMPARE(request.itemId(), QVariant(QLatin1String("65")));
146
 
}
147
 
 
148
 
void tst_QGalleryRemoveRequest::executeSynchronous()
149
 
{
150
 
    QtTestGallery gallery;
151
 
    gallery.setStatus(QGalleryAbstractRequest::Finished);
152
 
    gallery.setError(80, QString());
153
 
 
154
 
    QGalleryRemoveRequest request(&gallery);
155
 
 
156
 
    request.execute();
157
 
    QCOMPARE(request.error(), 80);
158
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Error);
159
 
 
160
 
    gallery.setError(QGalleryAbstractRequest::NoError, QString());
161
 
    request.execute();
162
 
    QCOMPARE(request.error(), int(QGalleryAbstractRequest::NoError));
163
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Finished);
164
 
 
165
 
    request.clear();
166
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Inactive);
167
 
}
168
 
 
169
 
void tst_QGalleryRemoveRequest::executeAsynchronous()
170
 
{
171
 
    QtTestGallery gallery;
172
 
    gallery.setStatus(QGalleryAbstractRequest::Active);
173
 
 
174
 
    QGalleryRemoveRequest request(&gallery);
175
 
 
176
 
    request.execute();
177
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Active);
178
 
 
179
 
    gallery.finish(false);
180
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Finished);
181
 
 
182
 
    request.clear();
183
 
    QCOMPARE(request.status(), QGalleryAbstractRequest::Inactive);
184
 
}
185
 
 
186
 
QTEST_MAIN(tst_QGalleryRemoveRequest)
187
 
 
188
 
#include "tst_qgalleryremoverequest.moc"