aboutsummaryrefslogtreecommitdiff
path: root/test/shared
diff options
context:
space:
mode:
authorShin'ya UEOKA <ueokande@i-beam.org>2019-10-05 06:39:20 +0000
committerShin'ya UEOKA <ueokande@i-beam.org>2019-10-06 12:58:59 +0000
commitb86b4680b6c2a3f0cceefaaf7c2e35417ec555df (patch)
tree79296d48f79ebba2496de5e8e09a4c8fc9e1ad41 /test/shared
parent574692551a27ea56660bf2061daeaa0d34beaff4 (diff)
Make Blacklist class
Diffstat (limited to 'test/shared')
-rw-r--r--test/shared/SettingData.test.ts11
-rw-r--r--test/shared/Settings.test.ts30
-rw-r--r--test/shared/blacklists.test.ts49
-rw-r--r--test/shared/settings/Blacklist.test.ts77
-rw-r--r--test/shared/utils/re.test.ts19
5 files changed, 85 insertions, 101 deletions
diff --git a/test/shared/SettingData.test.ts b/test/shared/SettingData.test.ts
index b5bf70e..4391e73 100644
--- a/test/shared/SettingData.test.ts
+++ b/test/shared/SettingData.test.ts
@@ -6,6 +6,7 @@ import { expect } from 'chai';
import Keymaps from '../../src/shared/settings/Keymaps';
import Search from '../../src/shared/settings/Search';
import Properties from '../../src/shared/settings/Properties';
+import Blacklist from '../../src/shared/settings/Blacklist'
describe('shared/SettingData', () => {
describe('FormKeymaps', () => {
@@ -64,7 +65,7 @@ describe('shared/SettingData', () => {
keymaps: settings.keymaps.toJSON(),
search: settings.search.toJSON(),
properties: settings.properties.toJSON(),
- blacklist: settings.blacklist,
+ blacklist: settings.blacklist.toJSON(),
}).to.deep.equal(JSON.parse(o));
});
});
@@ -84,7 +85,7 @@ describe('shared/SettingData', () => {
smoothscroll: false,
complete: "sbh"
}),
- blacklist: [],
+ blacklist: Blacklist.fromJSON([]),
};
let json = JSONTextSettings.fromSettings(o).toJSONText();
@@ -92,7 +93,7 @@ describe('shared/SettingData', () => {
keymaps: o.keymaps.toJSON(),
search: o.search.toJSON(),
properties: o.properties.toJSON(),
- blacklist: o.blacklist,
+ blacklist: o.blacklist.toJSON(),
});
});
});
@@ -125,7 +126,7 @@ describe('shared/SettingData', () => {
keymaps: settings.keymaps.toJSON(),
search: settings.search.toJSON(),
properties: settings.properties.toJSON(),
- blacklist: settings.blacklist,
+ blacklist: settings.blacklist.toJSON(),
}).to.deep.equal({
keymaps: {
'j': { type: 'scroll.vertically', count: 1 },
@@ -165,7 +166,7 @@ describe('shared/SettingData', () => {
smoothscroll: false,
complete: "sbh"
}),
- blacklist: []
+ blacklist: Blacklist.fromJSON([]),
};
let json = FormSettings.fromSettings(data).toJSON();
diff --git a/test/shared/Settings.test.ts b/test/shared/Settings.test.ts
index 6360bab..9688798 100644
--- a/test/shared/Settings.test.ts
+++ b/test/shared/Settings.test.ts
@@ -2,32 +2,6 @@ import * as settings from '../../src/shared/Settings';
import {expect} from 'chai';
describe('Settings', () => {
-
- describe('#blacklistValueOf', () => {
- it('returns empty array by empty settings', () => {
- let blacklist = settings.blacklistValueOf([]);
- expect(blacklist).to.be.empty;
- });
-
- it('returns blacklist by valid settings', () => {
- let blacklist = settings.blacklistValueOf([
- "github.com",
- "circleci.com",
- ]);
-
- expect(blacklist).to.deep.equal([
- "github.com",
- "circleci.com",
- ]);
- });
-
- it('throws a TypeError by invalid settings', () => {
- expect(() => settings.blacklistValueOf(null)).to.throw(TypeError);
- expect(() => settings.blacklistValueOf({})).to.throw(TypeError);
- expect(() => settings.blacklistValueOf([1,2,3])).to.throw(TypeError);
- });
- });
-
describe('#valueOf', () => {
it('returns settings by valid settings', () => {
let x = settings.valueOf({
@@ -46,7 +20,7 @@ describe('Settings', () => {
keymaps: x.keymaps.toJSON(),
search: x.search.toJSON(),
properties: x.properties.toJSON(),
- blacklist: x.blacklist,
+ blacklist: x.blacklist.toJSON(),
}).to.deep.equal({
keymaps: {},
search: {
@@ -70,7 +44,7 @@ describe('Settings', () => {
expect(value.properties.toJSON()).to.not.be.empty;
expect(value.search.defaultEngine).to.be.a('string');
expect(value.search.engines).to.be.an('object');
- expect(value.blacklist).to.be.empty;
+ expect(value.blacklist.toJSON()).to.be.empty;
});
it('throws a TypeError with an unknown field', () => {
diff --git a/test/shared/blacklists.test.ts b/test/shared/blacklists.test.ts
deleted file mode 100644
index 289ea0f..0000000
--- a/test/shared/blacklists.test.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { includes } from 'shared/blacklists';
-
-describe("shared/blacklist", () => {
- it('matches by *', () => {
- let blacklist = ['*'];
-
- expect(includes(blacklist, 'https://github.com/abc')).to.be.true;
- })
-
- it('matches by hostname', () => {
- let blacklist = ['github.com'];
-
- expect(includes(blacklist, 'https://github.com')).to.be.true;
- expect(includes(blacklist, 'https://gist.github.com')).to.be.false;
- expect(includes(blacklist, 'https://github.com/ueokande')).to.be.true;
- expect(includes(blacklist, 'https://github.org')).to.be.false;
- expect(includes(blacklist, 'https://google.com/search?q=github.org')).to.be.false;
- })
-
- it('matches by hostname with wildcard', () => {
- let blacklist = ['*.github.com'];
-
- expect(includes(blacklist, 'https://github.com')).to.be.false;
- expect(includes(blacklist, 'https://gist.github.com')).to.be.true;
- })
-
- it('matches by path', () => {
- let blacklist = ['github.com/abc'];
-
- expect(includes(blacklist, 'https://github.com/abc')).to.be.true;
- expect(includes(blacklist, 'https://github.com/abcdef')).to.be.false;
- expect(includes(blacklist, 'https://gist.github.com/abc')).to.be.false;
- })
-
- it('matches by path with wildcard', () => {
- let blacklist = ['github.com/abc*'];
-
- expect(includes(blacklist, 'https://github.com/abc')).to.be.true;
- expect(includes(blacklist, 'https://github.com/abcdef')).to.be.true;
- expect(includes(blacklist, 'https://gist.github.com/abc')).to.be.false;
- })
-
- it('matches address and port', () => {
- let blacklist = ['127.0.0.1:8888'];
-
- expect(includes(blacklist, 'http://127.0.0.1:8888/')).to.be.true;
- expect(includes(blacklist, 'http://127.0.0.1:8888/hello')).to.be.true;
- })
-});
diff --git a/test/shared/settings/Blacklist.test.ts b/test/shared/settings/Blacklist.test.ts
new file mode 100644
index 0000000..fbacf5d
--- /dev/null
+++ b/test/shared/settings/Blacklist.test.ts
@@ -0,0 +1,77 @@
+import Blacklist from '../../../src/shared/settings/Blacklist';
+import { expect } from 'chai';
+
+describe('Blacklist', () => {
+ describe('fromJSON', () => {
+ it('returns empty array by empty settings', () => {
+ let blacklist = Blacklist.fromJSON([]);
+ expect(blacklist.toJSON()).to.be.empty;
+ });
+
+ it('returns blacklist by valid settings', () => {
+ let blacklist = Blacklist.fromJSON([
+ 'github.com',
+ 'circleci.com',
+ ]);
+
+ expect(blacklist.toJSON()).to.deep.equal([
+ 'github.com',
+ 'circleci.com',
+ ]);
+ });
+
+ it('throws a TypeError by invalid settings', () => {
+ expect(() => Blacklist.fromJSON(null)).to.throw(TypeError);
+ expect(() => Blacklist.fromJSON({})).to.throw(TypeError);
+ expect(() => Blacklist.fromJSON([1,2,3])).to.throw(TypeError);
+ });
+ });
+
+ describe('#includes', () => {
+ it('matches by *', () => {
+ let blacklist = new Blacklist(['*']);
+
+ expect(blacklist.includes('https://github.com/abc')).to.be.true;
+ });
+
+ it('matches by hostname', () => {
+ let blacklist = new Blacklist(['github.com']);
+
+ expect(blacklist.includes('https://github.com')).to.be.true;
+ expect(blacklist.includes('https://gist.github.com')).to.be.false;
+ expect(blacklist.includes('https://github.com/ueokande')).to.be.true;
+ expect(blacklist.includes('https://github.org')).to.be.false;
+ expect(blacklist.includes('https://google.com/search?q=github.org')).to.be.false;
+ });
+
+ it('matches by hostname with wildcard', () => {
+ let blacklist = new Blacklist(['*.github.com']);
+
+ expect(blacklist.includes('https://github.com')).to.be.false;
+ expect(blacklist.includes('https://gist.github.com')).to.be.true;
+ })
+
+ it('matches by path', () => {
+ let blacklist = new Blacklist(['github.com/abc']);
+
+ expect(blacklist.includes('https://github.com/abc')).to.be.true;
+ expect(blacklist.includes('https://github.com/abcdef')).to.be.false;
+ expect(blacklist.includes('https://gist.github.com/abc')).to.be.false;
+ })
+
+ it('matches by path with wildcard', () => {
+ let blacklist = new Blacklist(['github.com/abc*']);
+
+ expect(blacklist.includes('https://github.com/abc')).to.be.true;
+ expect(blacklist.includes('https://github.com/abcdef')).to.be.true;
+ expect(blacklist.includes('https://gist.github.com/abc')).to.be.false;
+ })
+
+ it('matches address and port', () => {
+ let blacklist = new Blacklist(['127.0.0.1:8888']);
+
+ expect(blacklist.includes('http://127.0.0.1:8888/')).to.be.true;
+ expect(blacklist.includes('http://127.0.0.1:8888/hello')).to.be.true;
+ })
+ })
+});
diff --git a/test/shared/utils/re.test.ts b/test/shared/utils/re.test.ts
deleted file mode 100644
index d12ceb7..0000000
--- a/test/shared/utils/re.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as re from 'shared/utils/re';
-
-describe("re util", () => {
- it('matches by pattern', () => {
- let regex = re.fromWildcard('*.example.com/*');
- expect('foo.example.com/bar').to.match(regex);
- expect('foo.example.com').not.to.match(regex);
- expect('example.com/bar').not.to.match(regex);
-
- regex = re.fromWildcard('example.com/*')
- expect('example.com/foo').to.match(regex);
- expect('example.com/').to.match(regex);
-
- regex = re.fromWildcard('example.com/*bar')
- expect('example.com/foobar').to.match(regex);
- expect('example.com/bar').to.match(regex);
- expect('example.com/foobarfoo').not.to.match(regex);
- })
-});