summaryrefslogtreecommitdiffstats
path: root/test/helpers/regExpEscapeSpec.js
blob: c50167b6e2a1fc663de01abbfc8b0fdba4df99b9 (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
describe("Awesomplete.$.regExpEscape", function () {

	subject(function () { return Awesomplete.$.regExpEscape(this.str) });

	describe("with regular expression special characters", function () {
		it("escapes backslashes", function () {
			this.str = "\\";
			expect(this.subject).toBe("\\\\");
		});

		it("escapes brackets, braces and parentheses", function () {
			this.str = "[]{}()";
			expect(this.subject).toBe("\\[\\]\\{\\}\\(\\)");
		});

		it("escapes other special characters", function () {
			this.str = "-^$*+?.|";
			expect(this.subject).toBe("\\-\\^\\$\\*\\+\\?\\.\\|");
		});

		it("escapes the whole string", function () {
			this.str = "**";
			expect(this.subject).toBe("\\*\\*");
		});
	});

	describe("with plain characters", function () {
		it("does not escape letters", function () {
			this.str = "abcdefjhijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ";
			expect(this.subject).toBe(this.str);
		});

		it("does not escape numbers", function () {
			this.str = "0123456789";
			expect(this.subject).toBe(this.str);
		});
	});
});