forked from mozilla-b2g/gaia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mock_mozContacts.js
executable file
·109 lines (97 loc) · 2.22 KB
/
mock_mozContacts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
'use strict';
var MockMozContacts;
function MockMozContactsObj(contacts) {
this.contacts = contacts;
}
MockMozContactsObj.prototype = {
limit: 20,
_getRequest: function(result) {
function Req(result) {
var self = this;
Object.defineProperty(self, 'onsuccess', { set: function(cb) {
self.result = result;
cb({ target: self });
}});
}
return new Req(result);
},
find: function find(aOptions) {
return this._getRequest(this.contacts);
},
total: 0,
set number(n) {
this.total = n;
},
getCount: function() {
return this._getRequest(MockMozContacts.total);
},
getAll: function getAll() {
return {
set onsuccess(callback) {
var count = 0;
this.continue = function() {
count++;
var evt = {
target: {}
};
if (count <= MockMozContacts.limit) {
evt.target.result = {
id: count,
givenName: ['givenName ' + count],
lastName: ['lastName ' + count]
};
}
callback.call(this, evt);
};
var evt = {
target: {
result: {
id: count,
givenName: ['givenName ' + count],
lastName: ['lastName ' + count]
}
}
};
callback.call(this, evt);
},
set onerror(callback) {
}
};
},
save: function save(ct) {
this.contacts.push(ct);
return {
set onsuccess(callback) {
var self = this;
setTimeout(function() {
callback.call(self);
}, 10);
},
set onerror(callback) {
}
};
},
getRevision: function(callback) {
return 'fakeRevision';
},
setContacts: function(contacts) {
this.contacts = contacts;
},
remove: function remove(ct) {
var contactsIndex = this.contacts.indexOf(ct);
if (contactsIndex > -1) {
this.contacts.splice(contactsIndex, 1);
}
return {
set onsuccess(callback) {
var self = this;
setTimeout(function() {
callback.call(self);
}, 0);
},
set onerror(callback) {
}
};
}
};
MockMozContacts = new MockMozContactsObj([]);