2 * This file is part of ofono-qt
4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
6 * Contact: Alexander Kanavin <alexander.kanavin@nokia.com>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * version 2.1 as published by the Free Software Foundation.
12 * This library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
24 #include <QtTest/QtTest>
25 #include <QtCore/QObject>
27 #include <ofonocallforwarding.h>
32 class TestOfonoCallForwarding : public QObject
39 m = new OfonoCallForwarding(OfonoModem::ManualSelect, "/phonesim", this);
40 QCOMPARE(m->modem()->isValid(), true);
42 if (!m->modem()->powered()) {
43 m->modem()->setPowered(true);
46 if (!m->modem()->online()) {
47 m->modem()->setOnline(true);
50 QCOMPARE(m->isValid(), true);
53 void testOfonoCallForwarding()
55 QSignalSpy voiceUnconditionalComplete(m, SIGNAL(voiceUnconditionalComplete(bool, QString)));
56 QSignalSpy voiceBusyComplete(m, SIGNAL(voiceBusyComplete(bool, QString)));
57 QSignalSpy voiceNoReplyComplete(m, SIGNAL(voiceNoReplyComplete(bool, QString)));
58 QSignalSpy voiceNoReplyTimeoutComplete(m, SIGNAL(voiceNoReplyTimeoutComplete(bool, ushort)));
59 QSignalSpy voiceNotReachableComplete(m, SIGNAL(voiceNotReachableComplete(bool, QString)));
61 QSignalSpy voiceUnconditionalChanged(m, SIGNAL(voiceUnconditionalChanged(QString)));
62 QSignalSpy voiceBusyChanged(m, SIGNAL(voiceBusyChanged(QString)));
63 QSignalSpy voiceNoReplyChanged(m, SIGNAL(voiceNoReplyChanged(QString)));
64 QSignalSpy voiceNoReplyTimeoutChanged(m, SIGNAL(voiceNoReplyTimeoutChanged(ushort)));
65 QSignalSpy voiceNotReachableChanged(m, SIGNAL(voiceNotReachableChanged(QString)));
67 QSignalSpy setVoiceUnconditionalFailed(m, SIGNAL(setVoiceUnconditionalFailed()));
68 QSignalSpy setVoiceBusyFailed(m, SIGNAL(setVoiceBusyFailed()));
69 QSignalSpy setVoiceNoReplyFailed(m, SIGNAL(setVoiceNoReplyFailed()));
70 QSignalSpy setVoiceNoReplyTimeoutFailed(m, SIGNAL(setVoiceNoReplyTimeoutFailed()));
71 QSignalSpy setVoiceNotReachableFailed(m, SIGNAL(setVoiceNotReachableFailed()));
73 QSignalSpy disableAllComplete(m, SIGNAL(disableAllComplete(bool)));
75 m->requestVoiceUnconditional();
77 QCOMPARE(voiceUnconditionalComplete.count(), 1);
78 QVariantList list = voiceUnconditionalComplete.takeFirst();
79 QCOMPARE(list.at(0).toBool(), true);
80 QCOMPARE(list.at(1).toString(), QString(""));
81 QCOMPARE(voiceUnconditionalChanged.count(), 1);
82 QCOMPARE(voiceUnconditionalChanged.takeFirst().at(0).toString(), QString(""));
83 m->requestVoiceBusy();
85 QCOMPARE(voiceBusyComplete.count(), 1);
86 list = voiceBusyComplete.takeFirst();
87 QCOMPARE(list.at(0).toBool(), true);
88 QCOMPARE(list.at(1).toString(), QString(""));
89 QCOMPARE(voiceBusyChanged.count(), 1);
90 QCOMPARE(voiceBusyChanged.takeFirst().at(0).toString(), QString(""));
91 m->requestVoiceNoReply();
93 QCOMPARE(voiceNoReplyComplete.count(), 1);
94 list = voiceNoReplyComplete.takeFirst();
95 QCOMPARE(list.at(0).toBool(), true);
96 QCOMPARE(list.at(1).toString(), QString(""));
97 QCOMPARE(voiceNoReplyChanged.count(), 1);
98 QCOMPARE(voiceNoReplyChanged.takeFirst().at(0).toString(), QString(""));
99 m->requestVoiceNoReplyTimeout();
101 QCOMPARE(voiceNoReplyTimeoutComplete.count(), 1);
102 list = voiceNoReplyTimeoutComplete.takeFirst();
103 QCOMPARE(list.at(0).toBool(), true);
104 QCOMPARE(list.at(1).toUInt(), uint(20));
105 QCOMPARE(voiceNoReplyTimeoutChanged.count(), 1);
106 QCOMPARE(voiceNoReplyTimeoutChanged.takeFirst().at(0).toUInt(), uint(20));
107 m->requestVoiceNotReachable();
109 QCOMPARE(voiceNotReachableComplete.count(), 1);
110 list = voiceNotReachableComplete.takeFirst();
111 QCOMPARE(list.at(0).toBool(), true);
112 QCOMPARE(list.at(1).toString(), QString(""));
113 QCOMPARE(voiceNotReachableChanged.count(), 1);
114 QCOMPARE(voiceNotReachableChanged.takeFirst().at(0).toString(), QString(""));
116 m->setVoiceUnconditional("abc");
118 QCOMPARE(setVoiceUnconditionalFailed.count(), 1);
119 setVoiceUnconditionalFailed.takeFirst();
120 m->setVoiceBusy("abc");
122 QCOMPARE(setVoiceBusyFailed.count(), 1);
123 setVoiceBusyFailed.takeFirst();
124 m->setVoiceNoReply("abc");
126 QCOMPARE(setVoiceNoReplyFailed.count(), 1);
127 setVoiceNoReplyFailed.takeFirst();
128 m->setVoiceNoReplyTimeout(-30);
130 QCOMPARE(setVoiceNoReplyTimeoutFailed.count(), 1);
131 setVoiceNoReplyTimeoutFailed.takeFirst();
132 m->setVoiceNotReachable("abc");
134 QCOMPARE(setVoiceNotReachableFailed.count(), 1);
135 setVoiceNotReachableFailed.takeFirst();
137 m->setVoiceBusy("12345678");
139 m->setVoiceNoReply("12345678");
141 m->setVoiceNoReplyTimeout(30);
143 m->setVoiceNotReachable("12345678");
145 m->setVoiceUnconditional("12345678");
148 m->requestVoiceUnconditional();
150 QCOMPARE(voiceUnconditionalComplete.count(), 1);
151 list = voiceUnconditionalComplete.takeFirst();
152 QCOMPARE(list.at(0).toBool(), true);
153 QCOMPARE(list.at(1).toString(), QString("12345678"));
154 QCOMPARE(voiceUnconditionalChanged.count(), 1);
155 QCOMPARE(voiceUnconditionalChanged.takeFirst().at(0).toString(), QString("12345678"));
156 m->requestVoiceBusy();
158 QCOMPARE(voiceBusyComplete.count(), 1);
159 list = voiceBusyComplete.takeFirst();
160 QCOMPARE(list.at(0).toBool(), true);
161 QCOMPARE(list.at(1).toString(), QString("12345678"));
162 QCOMPARE(voiceBusyChanged.count(), 1);
163 QCOMPARE(voiceBusyChanged.takeFirst().at(0).toString(), QString("12345678"));
164 m->requestVoiceNoReply();
166 QCOMPARE(voiceNoReplyComplete.count(), 1);
167 list = voiceNoReplyComplete.takeFirst();
168 QCOMPARE(list.at(0).toBool(), true);
169 QCOMPARE(list.at(1).toString(), QString("12345678"));
170 QCOMPARE(voiceNoReplyChanged.count(), 1);
171 QCOMPARE(voiceNoReplyChanged.takeFirst().at(0).toString(), QString("12345678"));
172 m->requestVoiceNoReplyTimeout();
174 QCOMPARE(voiceNoReplyTimeoutComplete.count(), 1);
175 list = voiceNoReplyTimeoutComplete.takeFirst();
176 QCOMPARE(list.at(0).toBool(), true);
177 QCOMPARE(list.at(1).toUInt(), uint(30));
178 QCOMPARE(voiceNoReplyTimeoutChanged.count(), 1);
179 QCOMPARE(voiceNoReplyTimeoutChanged.takeFirst().at(0).toUInt(), uint(30));
180 m->requestVoiceNotReachable();
182 QCOMPARE(voiceNotReachableComplete.count(), 1);
183 list = voiceNotReachableComplete.takeFirst();
184 QCOMPARE(list.at(0).toBool(), true);
185 QCOMPARE(list.at(1).toString(), QString("12345678"));
186 QCOMPARE(voiceNotReachableChanged.count(), 1);
187 QCOMPARE(voiceNotReachableChanged.takeFirst().at(0).toString(), QString("12345678"));
189 m->disableAll("all");
191 QCOMPARE(disableAllComplete.count(), 1);
192 QCOMPARE(disableAllComplete.takeFirst().at(0).toBool(), true);
193 QCOMPARE(voiceUnconditionalChanged.count(), 1);
194 QCOMPARE(voiceUnconditionalChanged.takeFirst().at(0).toString(), QString(""));
195 QCOMPARE(voiceBusyChanged.count(), 1);
196 QCOMPARE(voiceBusyChanged.takeFirst().at(0).toString(), QString(""));
197 QCOMPARE(voiceNoReplyChanged.count(), 1);
198 QCOMPARE(voiceNoReplyChanged.takeFirst().at(0).toString(), QString(""));
199 QCOMPARE(voiceNoReplyTimeoutChanged.count(), 1);
200 QCOMPARE(voiceNoReplyTimeoutChanged.takeFirst().at(0).toUInt(), uint(20));
201 QCOMPARE(voiceNotReachableChanged.count(), 1);
202 QCOMPARE(voiceNotReachableChanged.takeFirst().at(0).toString(), QString(""));
206 void cleanupTestCase()
213 OfonoCallForwarding *m;
216 QTEST_MAIN(TestOfonoCallForwarding)
217 #include "test_ofonocallforwarding.moc"