aboutsummaryrefslogtreecommitdiff
path: root/test/shared/settings/Blacklist.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/shared/settings/Blacklist.test.ts')
-rw-r--r--test/shared/settings/Blacklist.test.ts210
1 files changed, 124 insertions, 86 deletions
diff --git a/test/shared/settings/Blacklist.test.ts b/test/shared/settings/Blacklist.test.ts
index bcddf18..1ccb32a 100644
--- a/test/shared/settings/Blacklist.test.ts
+++ b/test/shared/settings/Blacklist.test.ts
@@ -1,140 +1,178 @@
-import Blacklist, { BlacklistItem } from '../../../src/shared/settings/Blacklist';
-import { expect } from 'chai';
-import Key from '../../../src/shared/settings/Key';
-
-describe('BlacklistItem', () => {
- describe('#fromJSON', () => {
- it('parses string pattern', () => {
- const item = BlacklistItem.fromJSON('example.com');
- expect(item.pattern).to.equal('example.com');
+import Blacklist, {
+ BlacklistItem,
+} from "../../../src/shared/settings/Blacklist";
+import { expect } from "chai";
+import Key from "../../../src/shared/settings/Key";
+
+describe("BlacklistItem", () => {
+ describe("#fromJSON", () => {
+ it("parses string pattern", () => {
+ const item = BlacklistItem.fromJSON("example.com");
+ expect(item.pattern).to.equal("example.com");
expect(item.partial).to.be.false;
});
- it('parses partial blacklist item', () => {
- const item = BlacklistItem.fromJSON({ url: 'example.com', keys: ['j', 'k']});
- expect(item.pattern).to.equal('example.com');
+ it("parses partial blacklist item", () => {
+ const item = BlacklistItem.fromJSON({
+ url: "example.com",
+ keys: ["j", "k"],
+ });
+ expect(item.pattern).to.equal("example.com");
expect(item.partial).to.be.true;
- expect(item.keys).to.deep.equal(['j', 'k']);
+ expect(item.keys).to.deep.equal(["j", "k"]);
});
});
- describe('#matches', () => {
+ describe("#matches", () => {
it('matches by "*"', () => {
- const item = BlacklistItem.fromJSON('*');
- expect(item.matches(new URL('https://github.com/abc'))).to.be.true;
+ const item = BlacklistItem.fromJSON("*");
+ expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
});
- it('matches by hostname', () => {
- const item = BlacklistItem.fromJSON('github.com');
- expect(item.matches(new URL('https://github.com'))).to.be.true;
- expect(item.matches(new URL('https://gist.github.com'))).to.be.false;
- expect(item.matches(new URL('https://github.com/ueokande'))).to.be.true;
- expect(item.matches(new URL('https://github.org'))).to.be.false;
- expect(item.matches(new URL('https://google.com/search?q=github.org'))).to.be.false;
+ it("matches by hostname", () => {
+ const item = BlacklistItem.fromJSON("github.com");
+ expect(item.matches(new URL("https://github.com"))).to.be.true;
+ expect(item.matches(new URL("https://gist.github.com"))).to.be.false;
+ expect(item.matches(new URL("https://github.com/ueokande"))).to.be.true;
+ expect(item.matches(new URL("https://github.org"))).to.be.false;
+ expect(item.matches(new URL("https://google.com/search?q=github.org"))).to
+ .be.false;
});
- it('matches by hostname with wildcard', () => {
- const item = BlacklistItem.fromJSON('*.github.com');
+ it("matches by hostname with wildcard", () => {
+ const item = BlacklistItem.fromJSON("*.github.com");
- expect(item.matches(new URL('https://github.com'))).to.be.false;
- expect(item.matches(new URL('https://gist.github.com'))).to.be.true;
+ expect(item.matches(new URL("https://github.com"))).to.be.false;
+ expect(item.matches(new URL("https://gist.github.com"))).to.be.true;
});
- it('matches by path', () => {
- const item = BlacklistItem.fromJSON('github.com/abc');
+ it("matches by path", () => {
+ const item = BlacklistItem.fromJSON("github.com/abc");
- expect(item.matches(new URL('https://github.com/abc'))).to.be.true;
- expect(item.matches(new URL('https://github.com/abcdef'))).to.be.false;
- expect(item.matches(new URL('https://gist.github.com/abc'))).to.be.false;
+ expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
+ expect(item.matches(new URL("https://github.com/abcdef"))).to.be.false;
+ expect(item.matches(new URL("https://gist.github.com/abc"))).to.be.false;
});
- it('matches by path with wildcard', () => {
- const item = BlacklistItem.fromJSON('github.com/abc*');
+ it("matches by path with wildcard", () => {
+ const item = BlacklistItem.fromJSON("github.com/abc*");
- expect(item.matches(new URL('https://github.com/abc'))).to.be.true;
- expect(item.matches(new URL('https://github.com/abcdef'))).to.be.true;
- expect(item.matches(new URL('https://gist.github.com/abc'))).to.be.false;
+ expect(item.matches(new URL("https://github.com/abc"))).to.be.true;
+ expect(item.matches(new URL("https://github.com/abcdef"))).to.be.true;
+ expect(item.matches(new URL("https://gist.github.com/abc"))).to.be.false;
});
- it('matches address and port', () => {
- const item = BlacklistItem.fromJSON('127.0.0.1:8888');
+ it("matches address and port", () => {
+ const item = BlacklistItem.fromJSON("127.0.0.1:8888");
- expect(item.matches(new URL('http://127.0.0.1:8888/'))).to.be.true;
- expect(item.matches(new URL('http://127.0.0.1:8888/hello'))).to.be.true;
+ expect(item.matches(new URL("http://127.0.0.1:8888/"))).to.be.true;
+ expect(item.matches(new URL("http://127.0.0.1:8888/hello"))).to.be.true;
});
- it('matches with partial blacklist', () => {
- const item = BlacklistItem.fromJSON({ url: 'google.com', keys: ['j', 'k'] });
+ it("matches with partial blacklist", () => {
+ const item = BlacklistItem.fromJSON({
+ url: "google.com",
+ keys: ["j", "k"],
+ });
- expect(item.matches(new URL('https://google.com'))).to.be.true;
- expect(item.matches(new URL('https://yahoo.com'))).to.be.false;
- })
+ expect(item.matches(new URL("https://google.com"))).to.be.true;
+ expect(item.matches(new URL("https://yahoo.com"))).to.be.false;
+ });
});
- describe('#includesPartialKeys', () => {
- it('matches with partial keys', () => {
- const item = BlacklistItem.fromJSON({url: 'google.com', keys: ['j', 'k', '<C-U>']});
-
- expect(item.includeKey(new URL('http://google.com/maps'), Key.fromMapKey('j'))).to.be.true;
- expect(item.includeKey(new URL('http://google.com/maps'), Key.fromMapKey('<C-U>'))).to.be.true;
- expect(item.includeKey(new URL('http://google.com/maps'), Key.fromMapKey('z'))).to.be.false;
- expect(item.includeKey(new URL('http://google.com/maps'), Key.fromMapKey('u'))).to.be.false;
- expect(item.includeKey(new URL('http://maps.google.com/'), Key.fromMapKey('j'))).to.be.false;
- })
+ describe("#includesPartialKeys", () => {
+ it("matches with partial keys", () => {
+ const item = BlacklistItem.fromJSON({
+ url: "google.com",
+ keys: ["j", "k", "<C-U>"],
+ });
+
+ expect(
+ item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("j"))
+ ).to.be.true;
+ expect(
+ item.includeKey(
+ new URL("http://google.com/maps"),
+ Key.fromMapKey("<C-U>")
+ )
+ ).to.be.true;
+ expect(
+ item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("z"))
+ ).to.be.false;
+ expect(
+ item.includeKey(new URL("http://google.com/maps"), Key.fromMapKey("u"))
+ ).to.be.false;
+ expect(
+ item.includeKey(new URL("http://maps.google.com/"), Key.fromMapKey("j"))
+ ).to.be.false;
+ });
});
});
-describe('Blacklist', () => {
- describe('#fromJSON', () => {
- it('parses string list', () => {
- const blacklist = Blacklist.fromJSON(['example.com', 'example.org']);
- expect(blacklist.toJSON()).to.deep.equals([
- 'example.com', 'example.org',
- ]);
+describe("Blacklist", () => {
+ describe("#fromJSON", () => {
+ it("parses string list", () => {
+ const blacklist = Blacklist.fromJSON(["example.com", "example.org"]);
+ expect(blacklist.toJSON()).to.deep.equals(["example.com", "example.org"]);
});
- it('parses mixed blacklist', () => {
+ it("parses mixed blacklist", () => {
const blacklist = Blacklist.fromJSON([
- { url: 'example.com', keys: ['j', 'k']},
- 'example.org',
+ { url: "example.com", keys: ["j", "k"] },
+ "example.org",
]);
expect(blacklist.toJSON()).to.deep.equals([
- { url: 'example.com', keys: ['j', 'k']},
- 'example.org',
+ { url: "example.com", keys: ["j", "k"] },
+ "example.org",
]);
});
- it('parses empty blacklist', () => {
+ it("parses empty blacklist", () => {
const blacklist = Blacklist.fromJSON([]);
expect(blacklist.toJSON()).to.deep.equals([]);
});
});
- describe('#includesEntireBlacklist', () => {
- it('matches a url with entire blacklist', () => {
- const blacklist = Blacklist.fromJSON(['google.com', '*.github.com']);
- expect(blacklist.includesEntireBlacklist(new URL('https://google.com'))).to.be.true;
- expect(blacklist.includesEntireBlacklist(new URL('https://github.com'))).to.be.false;
- expect(blacklist.includesEntireBlacklist(new URL('https://gist.github.com'))).to.be.true;
+ describe("#includesEntireBlacklist", () => {
+ it("matches a url with entire blacklist", () => {
+ const blacklist = Blacklist.fromJSON(["google.com", "*.github.com"]);
+ expect(blacklist.includesEntireBlacklist(new URL("https://google.com")))
+ .to.be.true;
+ expect(blacklist.includesEntireBlacklist(new URL("https://github.com")))
+ .to.be.false;
+ expect(
+ blacklist.includesEntireBlacklist(new URL("https://gist.github.com"))
+ ).to.be.true;
});
- it('does not matches with partial blacklist', () => {
- const blacklist = Blacklist.fromJSON(['google.com', { url: 'yahoo.com', keys: ['j', 'k'] }]);
- expect(blacklist.includesEntireBlacklist(new URL('https://google.com'))).to.be.true;
- expect(blacklist.includesEntireBlacklist(new URL('https://yahoo.com'))).to.be.false;
+ it("does not matches with partial blacklist", () => {
+ const blacklist = Blacklist.fromJSON([
+ "google.com",
+ { url: "yahoo.com", keys: ["j", "k"] },
+ ]);
+ expect(blacklist.includesEntireBlacklist(new URL("https://google.com")))
+ .to.be.true;
+ expect(blacklist.includesEntireBlacklist(new URL("https://yahoo.com"))).to
+ .be.false;
});
});
- describe('#includesKeys', () => {
- it('matches with entire blacklist or keys in the partial blacklist', () => {
+ describe("#includesKeys", () => {
+ it("matches with entire blacklist or keys in the partial blacklist", () => {
const blacklist = Blacklist.fromJSON([
- 'google.com',
- { url: 'github.com', keys: ['j', 'k'] },
+ "google.com",
+ { url: "github.com", keys: ["j", "k"] },
]);
- expect(blacklist.includeKey(new URL('https://google.com'), Key.fromMapKey('j'))).to.be.false;
- expect(blacklist.includeKey(new URL('https://github.com'), Key.fromMapKey('j'))).to.be.true;
- expect(blacklist.includeKey(new URL('https://github.com'), Key.fromMapKey('a'))).to.be.false;
+ expect(
+ blacklist.includeKey(new URL("https://google.com"), Key.fromMapKey("j"))
+ ).to.be.false;
+ expect(
+ blacklist.includeKey(new URL("https://github.com"), Key.fromMapKey("j"))
+ ).to.be.true;
+ expect(
+ blacklist.includeKey(new URL("https://github.com"), Key.fromMapKey("a"))
+ ).to.be.false;
});
});
});