~timo-jyrinki/ubuntu/trusty/maliit-framework/fix_qt52

« back to all changes in this revision

Viewing changes to tests/ut_mimsettings/ut_mimsettings.cpp

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2013-01-31 13:26:48 UTC
  • Revision ID: package-import@ubuntu.com-20130131132648-w1u9d2279tppxcft
Tags: upstream-0.94.1
ImportĀ upstreamĀ versionĀ 0.94.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* * This file is part of Maliit framework *
 
2
 *
 
3
 * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
 
4
 * All rights reserved.
 
5
 *
 
6
 * Contact: maliit-discuss@lists.maliit.org
 
7
 *
 
8
 * This library is free software; you can redistribute it and/or
 
9
 * modify it under the terms of the GNU Lesser General Public
 
10
 * License version 2.1 as published by the Free Software Foundation
 
11
 * and appearing in the file LICENSE.LGPL included in the packaging
 
12
 * of this file.
 
13
 */
 
14
 
 
15
#include "ut_mimsettings.h"
 
16
 
 
17
#include "mimsettings.h"
 
18
#include "mimsettingsqsettings.h"
 
19
 
 
20
namespace
 
21
{
 
22
    const QString Organization = "maliit.org";
 
23
    const QString Application = "server";
 
24
}
 
25
 
 
26
 
 
27
void Ut_MImSettings::initTestCase()
 
28
{
 
29
    MImSettings::setImplementationFactory(new MImSettingsQSettingsBackendFactory);
 
30
}
 
31
 
 
32
void Ut_MImSettings::cleanupTestCase()
 
33
{
 
34
}
 
35
 
 
36
// the test code is generic, by writing a backend-specific
 
37
// init()/cleanup() pair it could be reused for multiple backends
 
38
void Ut_MImSettings::init()
 
39
{
 
40
    cleanup();
 
41
 
 
42
    QSettings settings(Organization, Application);
 
43
    settings.beginGroup("ut_mimsettings");
 
44
 
 
45
    settings.beginGroup("group");
 
46
    settings.setValue("integer", 42);
 
47
    settings.setValue("string", "forty-two");
 
48
    settings.endGroup();
 
49
 
 
50
    settings.beginGroup("group2");
 
51
    settings.setValue("integer", 43);
 
52
    settings.setValue("string", "forty-three");
 
53
    settings.endGroup();
 
54
}
 
55
 
 
56
void Ut_MImSettings::cleanup()
 
57
{
 
58
    QSettings settings(Organization, Application);
 
59
    settings.beginGroup("ut_mimsettings");
 
60
 
 
61
    Q_FOREACH (QString key, settings.childKeys()) {
 
62
        settings.remove(key);
 
63
    }
 
64
 
 
65
    Q_FOREACH (QString key, settings.childGroups()) {
 
66
        settings.remove(key);
 
67
    }
 
68
}
 
69
 
 
70
 
 
71
// Test methods..............................................................
 
72
 
 
73
void Ut_MImSettings::testValue()
 
74
{
 
75
    MImSettings integer("/ut_mimsettings/group/integer");
 
76
    MImSettings string("/ut_mimsettings/group/string");
 
77
    MImSettings empty("/ut_mimsettings/group/empty");
 
78
 
 
79
    // basic test for value
 
80
    QCOMPARE(integer.key(), QString("/ut_mimsettings/group/integer"));
 
81
    QCOMPARE(integer.value().toInt(), 42);
 
82
 
 
83
    QCOMPARE(string.key(), QString("/ut_mimsettings/group/string"));
 
84
    QCOMPARE(string.value().toString(), QString("forty-two"));
 
85
 
 
86
    // check default value handling
 
87
    QVERIFY(!empty.value().isValid());
 
88
    QCOMPARE(empty.value(42).toInt(), 42);
 
89
    QCOMPARE(empty.value("forty-two").toString(), QString("forty-two"));
 
90
    QVERIFY(!empty.value().isValid());
 
91
 
 
92
    QCOMPARE(integer.value(12).toInt(), 42);
 
93
    QCOMPARE(string.value(12).toString(), QString("forty-two"));
 
94
}
 
95
 
 
96
void Ut_MImSettings::testModifyValue()
 
97
{
 
98
    MImSettings integer("/ut_mimsettings/group/integer");
 
99
    MImSettings integer2("/ut_mimsettings/group/integer");
 
100
    MImSettings string("/ut_mimsettings/group/string");
 
101
    MImSettings string2("/ut_mimsettings/group/string");
 
102
 
 
103
    // basic set tests
 
104
    QCOMPARE(integer.value().toInt(), 42);
 
105
    integer.set(43);
 
106
    QCOMPARE(integer.value().toInt(), 43);
 
107
    QCOMPARE(integer2.value().toInt(), 43);
 
108
 
 
109
    QCOMPARE(string.value().toString(), QString("forty-two"));
 
110
    string.set("forty-three");
 
111
    QCOMPARE(string.value().toString(), QString("forty-three"));
 
112
    QCOMPARE(string2.value().toString(), QString("forty-three"));
 
113
 
 
114
    // basic unset tests
 
115
    integer.unset();
 
116
    QVERIFY(!integer.value().isValid());
 
117
    QVERIFY(!integer2.value().isValid());
 
118
 
 
119
    string.unset();
 
120
    QVERIFY(!string.value().isValid());
 
121
    QVERIFY(!string2.value().isValid());
 
122
}
 
123
 
 
124
void Ut_MImSettings::testModifyValueNotification()
 
125
{
 
126
    MImSettings integer("/ut_mimsettings/group/integer");
 
127
    MImSettings integer2("/ut_mimsettings/group/integer");
 
128
    MImSettings string("/ut_mimsettings/group/string");
 
129
    MImSettings string2("/ut_mimsettings/group/string");
 
130
 
 
131
    QSignalSpy spy_integer(&integer, SIGNAL(valueChanged()));
 
132
    QSignalSpy spy_integer2(&integer2, SIGNAL(valueChanged()));
 
133
    QSignalSpy spy_string(&string, SIGNAL(valueChanged()));
 
134
    QSignalSpy spy_string2(&string2, SIGNAL(valueChanged()));
 
135
 
 
136
    integer.set(43);
 
137
 
 
138
    QCOMPARE(spy_integer.count(), 1);
 
139
    QCOMPARE(spy_integer2.count(), 1);
 
140
    QCOMPARE(spy_string.count(), 0);
 
141
    QCOMPARE(spy_string2.count(), 0);
 
142
 
 
143
    integer.set(43);
 
144
 
 
145
    QCOMPARE(spy_integer.count(), 1);
 
146
    QCOMPARE(spy_integer2.count(), 1);
 
147
    QCOMPARE(spy_string.count(), 0);
 
148
    QCOMPARE(spy_string2.count(), 0);
 
149
 
 
150
    integer.set(42);
 
151
 
 
152
    QCOMPARE(spy_integer.count(), 2);
 
153
    QCOMPARE(spy_integer2.count(), 2);
 
154
    QCOMPARE(spy_string.count(), 0);
 
155
    QCOMPARE(spy_string2.count(), 0);
 
156
 
 
157
    integer2.unset();
 
158
 
 
159
    QCOMPARE(spy_integer.count(), 3);
 
160
    QCOMPARE(spy_integer2.count(), 3);
 
161
    QCOMPARE(spy_string.count(), 0);
 
162
    QCOMPARE(spy_string2.count(), 0);
 
163
 
 
164
    string.unset();
 
165
 
 
166
    QCOMPARE(spy_integer.count(), 3);
 
167
    QCOMPARE(spy_integer2.count(), 3);
 
168
    QCOMPARE(spy_string.count(), 1);
 
169
    QCOMPARE(spy_string2.count(), 1);
 
170
 
 
171
    string.unset();
 
172
 
 
173
    QCOMPARE(spy_integer.count(), 3);
 
174
    QCOMPARE(spy_integer2.count(), 3);
 
175
    QCOMPARE(spy_string.count(), 1);
 
176
    QCOMPARE(spy_string2.count(), 1);
 
177
}
 
178
 
 
179
void Ut_MImSettings::testUnsetValue()
 
180
{
 
181
    MImSettings integer("/ut_mimsettings/group/integer");
 
182
    MImSettings group("/ut_mimsettings/group");
 
183
    QSignalSpy spy_integer(&integer, SIGNAL(valueChanged()));
 
184
 
 
185
    // unset(), then set(Qvariant())
 
186
    integer.unset();
 
187
 
 
188
    QVERIFY(!integer.value().isValid());
 
189
    QCOMPARE(group.listEntries(),
 
190
             QList<QString>() << "/ut_mimsettings/group/string");
 
191
    QCOMPARE(spy_integer.count(), 1);
 
192
 
 
193
    integer.set(QVariant());
 
194
 
 
195
    QCOMPARE(spy_integer.count(), 1);
 
196
 
 
197
    // set(Qvariant()), then unset()
 
198
    integer.set(42);
 
199
    spy_integer.clear();
 
200
 
 
201
    integer.set(QVariant());
 
202
 
 
203
    QVERIFY(!integer.value().isValid());
 
204
    QCOMPARE(group.listEntries(),
 
205
             QList<QString>() << "/ut_mimsettings/group/string");
 
206
    QCOMPARE(spy_integer.count(), 1);
 
207
 
 
208
    integer.unset();
 
209
 
 
210
    QCOMPARE(spy_integer.count(), 1);
 
211
}
 
212
 
 
213
void Ut_MImSettings::testListDirs()
 
214
{
 
215
    QCOMPARE(MImSettings("/ut_mimsettings").listDirs(),
 
216
             QList<QString>()
 
217
                 << "/ut_mimsettings/group"
 
218
                 << "/ut_mimsettings/group2");
 
219
    QCOMPARE(MImSettings("/ut_mimsettings/group").listDirs(),
 
220
             QList<QString>());
 
221
    QCOMPARE(MImSettings("/ut_mimsettings/dummy").listDirs(),
 
222
             QList<QString>());
 
223
}
 
224
 
 
225
void Ut_MImSettings::testListEntries()
 
226
{
 
227
    QCOMPARE(MImSettings("/ut_mimsettings").listEntries(),
 
228
             QList<QString>());
 
229
    QCOMPARE(MImSettings("/ut_mimsettings/group").listEntries(),
 
230
             QList<QString>()
 
231
                 << "/ut_mimsettings/group/integer"
 
232
                 << "/ut_mimsettings/group/string");
 
233
    QCOMPARE(MImSettings("/ut_mimsettings/dummy").listEntries(),
 
234
             QList<QString>());
 
235
}
 
236
 
 
237
QTEST_MAIN(Ut_MImSettings)