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 QtPim module 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
****************************************************************************/
46
ContactsSavingTestCase {
47
name: "ContactsRemoveContactsE2ETests"
48
id: contactsRemoveContactsE2ETests
52
manager: getManagerUnderTest()
65
initTestForModel(model);
68
model.saveContact(firstContact);
69
waitForContactsChanged();
70
model.saveContact(secondContact);
71
waitForContactsChanged();
80
function test_removeEmptyList() {
81
model.removeContacts([]);
84
compare(model.contacts.length, 2, "contacts.length");
87
function test_removeInvalidId() {
88
model.removeContacts(["invalid"]);
91
compare(model.contacts.length, 2, "contacts.length");
94
function test_removeOneContact() {
95
var id1 = model.contacts[0].contactId;
96
var id2 = model.contacts[1].contactId;
98
model.removeContacts([id1]);
99
waitForContactsChanged();
101
compare(model.contacts.length, 1, "contacts.length");
102
compare(model.contacts[0].contactId, id2, "id of the second contact");
105
function test_removeMultipleContacts() {
106
var id1 = model.contacts[0].contactId;
107
var id2 = model.contacts[1].contactId;
109
model.removeContacts([id1, id2]);
110
waitForContactsChanged();
111
if (model.contacts.length > 0)
112
waitForContactsChanged();
115
compare(model.contacts.length, 0, "contacts is empty");
118
function test_saveRemovedContactFails() {
119
var id1 = model.contacts[0].contactId;
120
var contactToFirstRemoveAndThenSave = model.contacts[0];
122
model.removeContacts([id1]);
123
waitForContactsChanged();
125
var errorSpy = initTestForTargetListeningToSignal(model, "errorChanged");
126
model.saveContact(contactToFirstRemoveAndThenSave);
127
waitForTargetSignal(errorSpy);
129
compare(model.error, "DoesNotExist", "model.error");
135
function initTestCase() {
136
initTestForModel(model);
137
waitForContactsChanged();
138
// The wait is needed so the model is populated
139
// (e.g. with garbage left from previous test runs)
140
// before cleanup() is called.
141
emptyContacts(model);
144
function cleanupTestCase() {
145
emptyContacts(model);
146
finishTestForModel(model);
151
function verifyIsUndefined(object) {
152
verify(!object, "Object " + object + " is undefined");