1
/****************************************************************************
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
6
** This file is part of the test suite of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
40
****************************************************************************/
44
import QtOrganizer 5.0
49
QOrganizerTestUtility {
54
name: "test_audibleReminder"
56
function test_audibleReminder_data() {
58
{ tag: " no properties",
59
code: "import QtOrganizer 5.0;"
63
{ tag: " 1 properties",
64
code: "import QtOrganizer 5.0;"
66
+ " repetitionCount: 3; }"
68
{ tag: " 2 properties",
69
code: "import QtOrganizer 5.0;"
71
+ " repetitionCount: 3; "
72
+ " repetitionDelay: 30;}"
74
{ tag: " 3 properties",
75
code: "import QtOrganizer 5.0;"
77
+ " repetitionCount: 0; "
78
+ " secondsBeforeStart: 100;}"
80
{ tag: " 4 properties",
81
code: "import QtOrganizer 5.0;"
83
+ " repetitionCount: 3; "
84
+ " repetitionDelay: 30; "
85
+ " secondsBeforeStart: 40; "
86
+ " dataUrl: \"www.nokia.com\" }"
91
function test_audibleReminder(data) {
93
var list = utility.getManagerList();
94
if (list.length < 0) {
95
console.log("No manager to test");
98
//Test all manager backends
99
for (var i = 0; i < list.length; i ++) {
100
var managerName = list[i];
102
console.log("AudibleReminder test start! :" + managerName);
103
var model = Qt.createQmlObject(
104
"import QtOrganizer 5.0;"
106
+ " manager: \"qtorganizer:" + managerName + ":id=qml\";"
107
+ " startPeriod:'2009-01-01';"
108
+ " endPeriod:'2012-12-31';"
109
+ " autoUpdate:true; }"
112
var event = Qt.createQmlObject(
113
"import QtOrganizer 5.0;"
116
+ " displayLabel: \"organizer qml reminder test event\"; "
117
+ " description: \"This is a new reminder event!!!\"; "
118
+ " startDateTime: '2010-12-12'; "
119
+ " endDateTime: '2010-12-13'; }"
122
var audibleReminderDetail = Qt.createQmlObject(data.code , event);
124
utility.waitModelChange();
125
utility.empty_calendar();
126
//------Create and save the detail test------//
127
utility.debug("Create and save the detail test", debugFlag);
128
audibleReminderDetail.dataUrl = "http://www.test0.com";
129
event.setDetail(audibleReminderDetail);
130
if (managerName == "jsondb") {
131
// custom fields allowed in JsonDb for audible reminder
132
// simple test here, since already fully tested in C++
133
var extendedDetail = Qt.createQmlObject(
134
"import QtOrganizer 5.0;"
136
+ " name: \"reminder\";"
138
+ " Qt: \"Everywhere\";"
139
+ " Url: \"http://www.qt-project.org/\";"
143
event.setDetail(extendedDetail);
145
model.saveItem(event);
146
//Let's wait for the model to be up-to-date
147
utility.waitModelChange(1);
148
compare(model.itemCount, 1);
150
var fetchlist = model.items;
151
var savedEvent = fetchlist[0];
152
verify(savedEvent != undefined);
153
verify(savedEvent.detail(Detail.AudibleReminder) != undefined);
154
utility.compareReminderDetails(audibleReminderDetail, savedEvent.detail(Detail.AudibleReminder));
156
//------update the detail test------//
157
var savedEventDetail = savedEvent.detail(Detail.AudibleReminder);
158
savedEventDetail.dataUrl = "http://www.test222.com";
159
savedEventDetail.secondsBeforeStart = 300;
160
savedEventDetail.repetitionCount = 0;
162
audibleReminderDetail.dataUrl = "http://www.test222.com";
163
audibleReminderDetail.secondsBeforeStart = 300;
164
audibleReminderDetail.repetitionCount = 0;
166
savedEvent.setDetail(savedEventDetail);
168
model.saveItem(savedEvent);
169
utility.organizerChangedSpy.wait();
170
//no new event created
171
compare(model.itemCount, 1)
172
fetchlist = model.items;
173
var updatedEvent = fetchlist[0];
174
var updatedEventDetail = updatedEvent.detail(Detail.AudibleReminder);
175
verify(updatedEvent != undefined);
176
utility.compareReminderDetails(audibleReminderDetail, updatedEventDetail);
178
//------remove the detail test------//
179
utility.debug("Remove the detail test", debugFlag);
180
var removeEventDetail = updatedEvent.detail(Detail.AudibleReminder);
181
updatedEvent.removeDetail(removeEventDetail);
182
model.saveItem(updatedEvent);
183
utility.organizerChangedSpy.wait();
184
//no new event created
185
compare(model.itemCount, 1)
186
fetchlist = model.items;
187
var detailRemovedEvent = fetchlist[0];
188
var detailRemovedEventDetailList = detailRemovedEvent.details(Detail.AudibleReminder);
189
if (detailRemovedEventDetailList.length > 0)
190
utility.outputDetail(detailRemovedEvent.detail(Detail.AudibleReminder));
191
verify(detailRemovedEventDetailList.length == 0)
192
verify(removeEventDetail != undefined)
193
utility.empty_calendar();
194
utility.organizerChangedSpy.clear();
195
utility.organizerChangedSpy.destroy();
198
audibleReminderDetail.destroy();