aboutsummaryrefslogtreecommitdiff
path: root/test/content/repositories
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-19 15:59:05 +0900
committerGitHub <noreply@github.com>2019-05-19 15:59:05 +0900
commit3f4bc62ed515f1c5da90ee1c3e42f3d435ea6e39 (patch)
tree8af9f8e5b12d007ce9628b40f3046b73f18e29f8 /test/content/repositories
parent6ec560bca33e774ff7e363270c423c919fdcf4ce (diff)
parentc4dcdff9844e2404e3bc035f4cea9fce2f7770ab (diff)
Merge pull request #587 from ueokande/refactor-content
Refactor content scripts
Diffstat (limited to 'test/content/repositories')
-rw-r--r--test/content/repositories/AddonEnabledRepository.test.ts15
-rw-r--r--test/content/repositories/FindRepository.test.ts15
-rw-r--r--test/content/repositories/FollowKeyRepository.test.ts31
-rw-r--r--test/content/repositories/FollowMasterRepository.test.ts49
-rw-r--r--test/content/repositories/FollowSlaveRepository.test.ts24
-rw-r--r--test/content/repositories/KeymapRepository.test.ts37
-rw-r--r--test/content/repositories/MarkKeyRepository.test.ts36
-rw-r--r--test/content/repositories/MarkRepository.test.ts13
-rw-r--r--test/content/repositories/SettingRepository.test.ts30
9 files changed, 250 insertions, 0 deletions
diff --git a/test/content/repositories/AddonEnabledRepository.test.ts b/test/content/repositories/AddonEnabledRepository.test.ts
new file mode 100644
index 0000000..3cea897
--- /dev/null
+++ b/test/content/repositories/AddonEnabledRepository.test.ts
@@ -0,0 +1,15 @@
+import { AddonEnabledRepositoryImpl } from '../../../src/content/repositories/AddonEnabledRepository';
+import { expect } from 'chai';
+
+describe('AddonEnabledRepositoryImpl', () => {
+ it('updates and gets current value', () => {
+ let sut = new AddonEnabledRepositoryImpl();
+
+ sut.set(true);
+ expect(sut.get()).to.be.true;
+
+ sut.set(false);
+ expect(sut.get()).to.be.false;
+ });
+});
+
diff --git a/test/content/repositories/FindRepository.test.ts b/test/content/repositories/FindRepository.test.ts
new file mode 100644
index 0000000..dcb2dff
--- /dev/null
+++ b/test/content/repositories/FindRepository.test.ts
@@ -0,0 +1,15 @@
+import { FindRepositoryImpl } from '../../../src/content/repositories/FindRepository';
+import { expect } from 'chai';
+
+describe('FindRepositoryImpl', () => {
+ it('updates and gets last keyword', () => {
+ let sut = new FindRepositoryImpl();
+
+ expect(sut.getLastKeyword()).to.be.null;
+
+ sut.setLastKeyword('monkey');
+
+ expect(sut.getLastKeyword()).to.equal('monkey');
+ });
+});
+
diff --git a/test/content/repositories/FollowKeyRepository.test.ts b/test/content/repositories/FollowKeyRepository.test.ts
new file mode 100644
index 0000000..eae58b9
--- /dev/null
+++ b/test/content/repositories/FollowKeyRepository.test.ts
@@ -0,0 +1,31 @@
+import FollowKeyRepository, { FollowKeyRepositoryImpl }
+ from '../../../src/content/repositories/FollowKeyRepository';
+import { expect } from 'chai';
+
+describe('FollowKeyRepositoryImpl', () => {
+ let sut: FollowKeyRepository;
+
+ before(() => {
+ sut = new FollowKeyRepositoryImpl();
+ });
+
+ describe('#getKeys()/#pushKey()/#popKey()', () => {
+ it('enqueues keys', () => {
+ expect(sut.getKeys()).to.be.empty;
+
+ sut.pushKey('a');
+ sut.pushKey('b');
+ sut.pushKey('c');
+ expect(sut.getKeys()).to.deep.equal(['a', 'b', 'c']);
+
+ sut.popKey();
+ expect(sut.getKeys()).to.deep.equal(['a', 'b']);
+
+ sut.clearKeys();
+ expect(sut.getKeys()).to.be.empty;
+ });
+ });
+});
+
+
+
diff --git a/test/content/repositories/FollowMasterRepository.test.ts b/test/content/repositories/FollowMasterRepository.test.ts
new file mode 100644
index 0000000..8c3f34e
--- /dev/null
+++ b/test/content/repositories/FollowMasterRepository.test.ts
@@ -0,0 +1,49 @@
+import FollowMasterRepository, { FollowMasterRepositoryImpl }
+ from '../../../src/content/repositories/FollowMasterRepository';
+import { expect } from 'chai';
+
+describe('FollowMasterRepositoryImpl', () => {
+ let sut: FollowMasterRepository;
+
+ before(() => {
+ sut = new FollowMasterRepositoryImpl();
+ });
+
+ describe('#getTags()/#addTag()/#clearTags()', () => {
+ it('gets, adds and clears tags', () => {
+ expect(sut.getTags()).to.be.empty;
+
+ sut.addTag('a');
+ sut.addTag('b');
+ sut.addTag('c');
+ expect(sut.getTags()).to.deep.equal(['a', 'b', 'c']);
+
+ sut.clearTags();
+ expect(sut.getTags()).to.be.empty;
+ });
+ });
+
+ describe('#getTagsByPrefix', () => {
+ it('gets tags matched by prefix', () => {
+ for (let tag of ['a', 'aa', 'ab', 'b', 'ba', 'bb']) {
+ sut.addTag(tag);
+ }
+ expect(sut.getTagsByPrefix('a')).to.deep.equal(['a', 'aa', 'ab']);
+ expect(sut.getTagsByPrefix('aa')).to.deep.equal(['aa']);
+ expect(sut.getTagsByPrefix('b')).to.deep.equal(['b', 'ba', 'bb']);
+ expect(sut.getTagsByPrefix('c')).to.be.empty;
+ });
+ });
+
+ describe('#setCurrentFollowMode()/#getCurrentNewTabMode()/#getCurrentBackgroundMode', () => {
+ it('updates and gets follow mode', () => {
+ sut.setCurrentFollowMode(false, true);
+ expect(sut.getCurrentNewTabMode()).to.be.false;
+ expect(sut.getCurrentBackgroundMode()).to.be.true;
+
+ sut.setCurrentFollowMode(true, false);
+ expect(sut.getCurrentNewTabMode()).to.be.true;
+ expect(sut.getCurrentBackgroundMode()).to.be.false;
+ });
+ });
+});
diff --git a/test/content/repositories/FollowSlaveRepository.test.ts b/test/content/repositories/FollowSlaveRepository.test.ts
new file mode 100644
index 0000000..10cf094
--- /dev/null
+++ b/test/content/repositories/FollowSlaveRepository.test.ts
@@ -0,0 +1,24 @@
+import FollowSlaveRepository, { FollowSlaveRepositoryImpl }
+ from '../../../src/content/repositories/FollowSlaveRepository';
+import { expect } from 'chai';
+
+describe('FollowSlaveRepository', () => {
+ let sut: FollowSlaveRepository;
+
+ before(() => {
+ sut = new FollowSlaveRepositoryImpl();
+ });
+
+ describe('#isFollowMode()/#enableFollowMode()/#disableFollowMode()', () => {
+ it('gets, adds updates follow mode', () => {
+ expect(sut.isFollowMode()).to.be.false;
+
+ sut.enableFollowMode();
+ expect(sut.isFollowMode()).to.be.true;
+
+ sut.disableFollowMode();
+ expect(sut.isFollowMode()).to.be.false;
+ });
+ });
+});
+
diff --git a/test/content/repositories/KeymapRepository.test.ts b/test/content/repositories/KeymapRepository.test.ts
new file mode 100644
index 0000000..34704d9
--- /dev/null
+++ b/test/content/repositories/KeymapRepository.test.ts
@@ -0,0 +1,37 @@
+import KeymapRepository, { KeymapRepositoryImpl }
+ from '../../../src/content/repositories/KeymapRepository';
+import { expect } from 'chai';
+
+describe('KeymapRepositoryImpl', () => {
+ let sut: KeymapRepository;
+
+ before(() => {
+ sut = new KeymapRepositoryImpl();
+ });
+
+ describe('#enqueueKey()', () => {
+ it('enqueues keys', () => {
+ sut.enqueueKey({ key: 'a' });
+ sut.enqueueKey({ key: 'b' });
+ let sequence = sut.enqueueKey({ key: 'c' });
+
+ expect(sequence.getKeyArray()).deep.equals([
+ { key: 'a' }, { key: 'b' }, { key: 'c' },
+ ]);
+ });
+ });
+
+ describe('#clear()', () => {
+ it('clears keys', () => {
+ sut.enqueueKey({ key: 'a' });
+ sut.enqueueKey({ key: 'b' });
+ sut.enqueueKey({ key: 'c' });
+ sut.clear();
+
+ let sequence = sut.enqueueKey({ key: 'a' });
+ expect(sequence.length()).to.equal(1);
+ });
+ });
+});
+
+
diff --git a/test/content/repositories/MarkKeyRepository.test.ts b/test/content/repositories/MarkKeyRepository.test.ts
new file mode 100644
index 0000000..8592332
--- /dev/null
+++ b/test/content/repositories/MarkKeyRepository.test.ts
@@ -0,0 +1,36 @@
+import MarkRepository, { MarkKeyRepositoryImpl }
+ from '../../../src/content/repositories/MarkKeyRepository';
+import { expect } from 'chai';
+
+describe('MarkKeyRepositoryImpl', () => {
+ let sut: MarkRepository;
+
+ before(() => {
+ sut = new MarkKeyRepositoryImpl();
+ })
+
+ describe('#isSetMode/#enableSetMode/#disabeSetMode', () => {
+ it('enables and disables set mode', () => {
+ expect(sut.isSetMode()).to.be.false;
+
+ sut.enableSetMode();
+ expect(sut.isSetMode()).to.be.true;
+
+ sut.disabeSetMode();
+ expect(sut.isSetMode()).to.be.false;
+ });
+ });
+
+ describe('#isJumpMode/#enableJumpMode/#disabeJumpMode', () => {
+ it('enables and disables jump mode', () => {
+ expect(sut.isJumpMode()).to.be.false;
+
+ sut.enableJumpMode();
+ expect(sut.isJumpMode()).to.be.true;
+
+ sut.disabeJumpMode();
+ expect(sut.isJumpMode()).to.be.false;
+ });
+ });
+});
+
diff --git a/test/content/repositories/MarkRepository.test.ts b/test/content/repositories/MarkRepository.test.ts
new file mode 100644
index 0000000..7fced5f
--- /dev/null
+++ b/test/content/repositories/MarkRepository.test.ts
@@ -0,0 +1,13 @@
+import { MarkRepositoryImpl } from '../../../src/content/repositories/MarkRepository';
+import { expect } from 'chai';
+
+describe('MarkRepositoryImpl', () => {
+ it('save and load marks', () => {
+ let sut = new MarkRepositoryImpl();
+
+ sut.set('a', { x: 10, y: 20 });
+ expect(sut.get('a')).to.deep.equal({ x: 10, y: 20 });
+ expect(sut.get('b')).to.be.null;
+ });
+});
+
diff --git a/test/content/repositories/SettingRepository.test.ts b/test/content/repositories/SettingRepository.test.ts
new file mode 100644
index 0000000..fea70b7
--- /dev/null
+++ b/test/content/repositories/SettingRepository.test.ts
@@ -0,0 +1,30 @@
+import { SettingRepositoryImpl } from '../../../src/content/repositories/SettingRepository';
+import { expect } from 'chai';
+
+describe('SettingRepositoryImpl', () => {
+ it('updates and gets current value', () => {
+ let sut = new SettingRepositoryImpl();
+
+ let settings = {
+ keymaps: {},
+ search: {
+ default: 'google',
+ engines: {
+ google: 'https://google.com/?q={}',
+ }
+ },
+ properties: {
+ hintchars: 'abcd1234',
+ smoothscroll: false,
+ complete: 'sbh',
+ },
+ blacklist: [],
+ }
+
+ sut.set(settings);
+
+ let actual = sut.get();
+ expect(actual.properties.hintchars).to.equal('abcd1234');
+ });
+});
+