Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
malwaredllc
GitHub Repository: malwaredllc/byob
Path: blob/master/web-gui/buildyourownbotnet/assets/js/codemirror/test/search_test.js
1293 views
1
(function() {
2
"use strict";
3
4
function test(name) {
5
var text = Array.prototype.slice.call(arguments, 1, arguments.length - 1).join("\n");
6
var body = arguments[arguments.length - 1];
7
return window.test("search_" + name, function() {
8
body(new CodeMirror.Doc(text));
9
});
10
}
11
12
function run(doc, query, insensitive) {
13
var cursor = doc.getSearchCursor(query, null, insensitive);
14
for (var i = 3; i < arguments.length; i += 4) {
15
var found = cursor.findNext();
16
is(found, "not enough results (forward)");
17
eqPos(Pos(arguments[i], arguments[i + 1]), cursor.from(), "from, forward, " + (i - 3) / 4);
18
eqPos(Pos(arguments[i + 2], arguments[i + 3]), cursor.to(), "to, forward, " + (i - 3) / 4);
19
}
20
is(!cursor.findNext(), "too many matches (forward)");
21
for (var i = arguments.length - 4; i >= 3; i -= 4) {
22
var found = cursor.findPrevious();
23
is(found, "not enough results (backwards)");
24
eqPos(Pos(arguments[i], arguments[i + 1]), cursor.from(), "from, backwards, " + (i - 3) / 4);
25
eqPos(Pos(arguments[i + 2], arguments[i + 3]), cursor.to(), "to, backwards, " + (i - 3) / 4);
26
}
27
is(!cursor.findPrevious(), "too many matches (backwards)");
28
}
29
30
test("simple", "abcdefg", "abcdefg", function(doc) {
31
run(doc, "cde", false, 0, 2, 0, 5, 1, 2, 1, 5);
32
});
33
34
test("multiline", "hallo", "goodbye", function(doc) {
35
run(doc, "llo\ngoo", false, 0, 2, 1, 3);
36
run(doc, "blah\nhall", false);
37
run(doc, "bye\neye", false);
38
});
39
40
test("regexp", "abcde", "abcde", function(doc) {
41
run(doc, /bcd/, false, 0, 1, 0, 4, 1, 1, 1, 4);
42
run(doc, /BCD/, false);
43
run(doc, /BCD/i, false, 0, 1, 0, 4, 1, 1, 1, 4);
44
});
45
46
test("insensitive", "hallo", "HALLO", "oink", "hAllO", function(doc) {
47
run(doc, "All", false, 3, 1, 3, 4);
48
run(doc, "All", true, 0, 1, 0, 4, 1, 1, 1, 4, 3, 1, 3, 4);
49
});
50
51
test("multilineInsensitive", "zie ginds komT", "De Stoomboot", "uit Spanje weer aan", function(doc) {
52
run(doc, "komt\nde stoomboot\nuit", false);
53
run(doc, "komt\nde stoomboot\nuit", true, 0, 10, 2, 3);
54
run(doc, "kOMt\ndE stOOmboot\nuiT", true, 0, 10, 2, 3);
55
});
56
57
test("expandingCaseFold", "<b>İİ İİ</b>", "<b>uu uu</b>", function(doc) {
58
if (phantom) return; // A Phantom bug makes this hang
59
run(doc, "</b>", true, 0, 8, 0, 12, 1, 8, 1, 12);
60
run(doc, "İİ", true, 0, 3, 0, 5, 0, 6, 0, 8);
61
});
62
})();
63
64