blob: 9b6bca930350549585b0ef659e09ba0f9d3b26c7 (
plain)
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
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/*
* Test suite for msg database functions.
*/
/* import-globals-from ../../../../test/resources/MessageGenerator.jsm */
load("../../../../resources/MessageGenerator.jsm");
var dbService;
var gTestFolder;
var gCurTestNum = 0;
var kNumTestMessages = 10;
var gTestArray = [
function test_db_open() {
dbService = Cc["@mozilla.org/msgDatabase/msgDBService;1"].getService(
Ci.nsIMsgDBService
);
// Get the root folder
let root = localAccountUtils.incomingServer.rootFolder;
root.createSubfolder("dbTest", null);
gTestFolder = root.getChildNamed("dbTest");
let db = dbService.openFolderDB(gTestFolder, true);
Assert.notEqual(db, null);
db.dBFolderInfo.highWater = 10;
db.close(true);
db = dbService.openFolderDB(gTestFolder, true);
Assert.notEqual(db, null);
Assert.equal(db.dBFolderInfo.highWater, 10);
db.dBFolderInfo.onKeyAdded(15);
Assert.equal(db.dBFolderInfo.highWater, 15);
db.close(true);
db.forceClosed();
db = null;
doTest(++gCurTestNum);
},
];
function doTest(test) {
if (test <= gTestArray.length) {
dump("Doing test " + test + "\n");
gCurTestNum = test;
var testFn = gTestArray[test - 1];
// Set a limit of 10 seconds; if the notifications haven't arrived by then there's a problem.
do_timeout(10000, function () {
if (gCurTestNum == test) {
do_throw(
"Notifications not received in 10000 ms for operation " + testFn.name
);
}
});
try {
testFn();
} catch (ex) {
do_throw(ex);
}
} else {
do_test_finished(); // for the one in run_test()
}
}
function run_test() {
localAccountUtils.loadLocalMailAccount();
do_test_pending();
doTest(1);
}
|