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
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
var { MsgKeySet } = ChromeUtils.import("resource:///modules/MsgKeySet.jsm");
/**
* Test MsgKeySet.addRange works correctly.
*/
add_task(function testAddRange() {
// Init an empty set.
let keySet = new MsgKeySet();
ok(!keySet.has(1));
// Add two ranges.
keySet.addRange(90, 99);
keySet.addRange(2, 19);
// Test members.
ok(!keySet.has(1));
ok(keySet.has(2));
ok(keySet.has(16));
ok(!keySet.has(20));
ok(keySet.has(99));
equal(keySet.toString(), "2-19,90-99");
// Init a set from a string.
keySet = new MsgKeySet("102,199");
ok(!keySet.has(22));
ok(keySet.has(199));
// Add two ranges.
keySet.addRange(2, 19);
keySet.addRange(12, 29);
// Test members.
ok(keySet.has(2));
ok(keySet.has(22));
ok(keySet.has(199));
equal(keySet.toString(), "2-29,102,199");
});
/**
* Test MsgKeySet.add works correctly.
*/
add_task(function testAdd() {
// Init an empty set.
let keySet = new MsgKeySet();
ok(!keySet.has(1));
// Add three values.
keySet.add(1);
keySet.add(2);
keySet.add(4);
// Test members.
ok(keySet.has(1));
ok(keySet.has(2));
ok(!keySet.has(3));
ok(keySet.has(4));
equal(keySet.toString(), "1-2,4");
});
/**
* Test MsgKeySet.getLastMissingRange works correctly.
*/
add_task(function testGetLastMissingRange() {
// Init a set.
let keySet = new MsgKeySet("2-9,12-29");
// Test `start` should be a value not already in keySet.
let [start, end] = keySet.getLastMissingRange(2, 33);
equal(start, 30);
equal(end, 33);
// Test `start` should be the lowest input value.
[start, end] = keySet.getLastMissingRange(33, 33);
equal(start, 33);
equal(end, 33);
// Test get missing old messages range works.
[start, end] = keySet.getLastMissingRange(3, 23);
equal(start, 10);
equal(end, 11);
});
|