~chris.gagnon/+junk/qtpim-coverage

« back to all changes in this revision

Viewing changes to tests/auto/organizer/qmlorganizer/testcases/tst_organizeraudiblereminder.qml

  • Committer: chris.gagnon
  • Date: 2013-12-10 23:09:37 UTC
  • Revision ID: chris.gagnon@canonical.com-20131210230937-2akf1ft1edcttk87
first post

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
 
4
** Contact: http://www.qt-project.org/legal
 
5
**
 
6
** This file is part of the test suite of the Qt Toolkit.
 
7
**
 
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.
 
16
**
 
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.
 
24
**
 
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.
 
28
**
 
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.
 
36
**
 
37
**
 
38
** $QT_END_LICENSE$
 
39
**
 
40
****************************************************************************/
 
41
 
 
42
import QtQuick 2.0
 
43
import QtTest 1.0
 
44
import QtOrganizer 5.0
 
45
 
 
46
Rectangle {
 
47
    id: test;
 
48
 
 
49
    QOrganizerTestUtility {
 
50
        id: utility
 
51
    }
 
52
 
 
53
    TestCase {
 
54
        name: "test_audibleReminder"
 
55
 
 
56
        function test_audibleReminder_data() {
 
57
            return [
 
58
                   { tag: "  no properties",
 
59
                     code: "import QtOrganizer 5.0;"
 
60
                        + "AudibleReminder {"
 
61
                        + "}"
 
62
                    },
 
63
                    { tag: "  1 properties",
 
64
                      code: "import QtOrganizer 5.0;"
 
65
                        + "AudibleReminder {"
 
66
                        + "    repetitionCount: 3; }"
 
67
                    },
 
68
                    { tag: "  2 properties",
 
69
                      code: "import QtOrganizer 5.0;"
 
70
                        + "AudibleReminder {"
 
71
                        + "    repetitionCount: 3; "
 
72
                        + "    repetitionDelay: 30;}"
 
73
                    },
 
74
                    { tag: "  3 properties",
 
75
                      code: "import QtOrganizer 5.0;"
 
76
                        + "AudibleReminder {"
 
77
                        + "    repetitionCount: 0; "
 
78
                        + "    secondsBeforeStart: 100;}"
 
79
                    },
 
80
                    { tag: "  4 properties",
 
81
                      code: "import QtOrganizer 5.0;"
 
82
                         + "AudibleReminder {"
 
83
                         + "    repetitionCount: 3; "
 
84
                         + "    repetitionDelay: 30; "
 
85
                         + "    secondsBeforeStart: 40; "
 
86
                         + "    dataUrl: \"www.nokia.com\"  }"
 
87
                    },
 
88
            ]
 
89
        }
 
90
 
 
91
        function test_audibleReminder(data) {
 
92
 
 
93
            var list = utility.getManagerList();
 
94
            if (list.length < 0) {
 
95
                console.log("No manager to test");
 
96
                return;
 
97
            }
 
98
            //Test all manager backends
 
99
            for (var i = 0; i < list.length; i ++) {
 
100
                var managerName = list[i];
 
101
                var debugFlag = 1;
 
102
                console.log("AudibleReminder test start! :" + managerName);
 
103
                var model = Qt.createQmlObject(
 
104
                      "import QtOrganizer 5.0;"
 
105
                    + "OrganizerModel {"
 
106
                    + "   manager: \"qtorganizer:" + managerName + ":id=qml\";"
 
107
                    + "   startPeriod:'2009-01-01';"
 
108
                    + "   endPeriod:'2012-12-31';"
 
109
                    + "   autoUpdate:true; }"
 
110
                    , test);
 
111
 
 
112
                var event = Qt.createQmlObject(
 
113
                          "import QtOrganizer 5.0;"
 
114
                        + "Event { "
 
115
                        + "   id:event;"
 
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'; }"
 
120
                        , test);
 
121
 
 
122
                var audibleReminderDetail = Qt.createQmlObject(data.code , event);
 
123
                utility.init(model);
 
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;"
 
135
                            + "ExtendedDetail {"
 
136
                            + "  name: \"reminder\";"
 
137
                            + "  data: \{"
 
138
                            + "    Qt: \"Everywhere\";"
 
139
                            + "    Url: \"http://www.qt-project.org/\";"
 
140
                            + "  }"
 
141
                            + "}"
 
142
                            , test);
 
143
                    event.setDetail(extendedDetail);
 
144
                }
 
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);
 
149
 
 
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));
 
155
 
 
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;
 
161
 
 
162
                audibleReminderDetail.dataUrl = "http://www.test222.com";
 
163
                audibleReminderDetail.secondsBeforeStart = 300;
 
164
                audibleReminderDetail.repetitionCount = 0;
 
165
 
 
166
                savedEvent.setDetail(savedEventDetail);
 
167
 
 
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);
 
177
 
 
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();
 
196
                model.destroy();
 
197
                event.destroy();
 
198
                audibleReminderDetail.destroy();
 
199
            }
 
200
        }
 
201
    }
 
202
}