From 13eba7574cd2ad2d40eba6d8cd5dde3ac4b6e806 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Tue, 20 Feb 2018 20:48:12 +0900 Subject: [PATCH 1/3] add zomm tests --- e2e/ambassador/src/background/index.js | 8 +++++++- e2e/ambassador/src/client/tabs.js | 19 +++++++++++++++++-- e2e/ambassador/src/shared/messages.js | 4 ++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/e2e/ambassador/src/background/index.js b/e2e/ambassador/src/background/index.js index 6425b54..5264c16 100644 --- a/e2e/ambassador/src/background/index.js +++ b/e2e/ambassador/src/background/index.js @@ -1,6 +1,6 @@ import { WINDOWS_CREATE, WINDOWS_REMOVE, WINDOWS_GET, - TABS_CREATE, TABS_SELECT_AT, + TABS_CREATE, TABS_REMOVE, TABS_SELECT_AT, TABS_GET_ZOOM, TABS_SET_ZOOM, EVENT_KEYPRESS, EVENT_KEYDOWN, EVENT_KEYUP, SCROLL_GET, SCROLL_SET, } from '../shared/messages'; @@ -20,11 +20,17 @@ receiveContentMessage((message) => { url: message.url, windowId: message.windowId, }); + case TABS_REMOVE: + return browser.tabs.remove(message.tabId); case TABS_SELECT_AT: return tabs.selectAt({ windowId: message.windowId, index: message.index, }); + case TABS_GET_ZOOM: + return browser.tabs.getZoom(message.tabId); + case TABS_SET_ZOOM: + return browser.tabs.setZoom(message.tabId, message.factor); case EVENT_KEYPRESS: case EVENT_KEYDOWN: case EVENT_KEYUP: diff --git a/e2e/ambassador/src/client/tabs.js b/e2e/ambassador/src/client/tabs.js index 6aaefbd..c7b1340 100644 --- a/e2e/ambassador/src/client/tabs.js +++ b/e2e/ambassador/src/client/tabs.js @@ -1,5 +1,5 @@ import { - TABS_CREATE, TABS_SELECT_AT, + TABS_CREATE, TABS_SELECT_AT, TABS_GET_ZOOM, TABS_SET_ZOOM, } from '../shared/messages'; import * as ipc from './ipc'; @@ -19,4 +19,19 @@ const selectAt = (windowId, index) => { }); }; -export { create, selectAt }; +const getZoom = (tabId) => { + return ipc.send({ + tabId, + type: TABS_GET_ZOOM, + }); +}; + +const setZoom = (tabId, factor) => { + return ipc.send({ + type: TABS_SET_ZOOM, + tabId, + factor, + }); +}; + +export { create, selectAt, getZoom, setZoom }; diff --git a/e2e/ambassador/src/shared/messages.js b/e2e/ambassador/src/shared/messages.js index 9fd1054..1fc47d2 100644 --- a/e2e/ambassador/src/shared/messages.js +++ b/e2e/ambassador/src/shared/messages.js @@ -5,6 +5,8 @@ const WINDOWS_REMOVE = 'windows.remove'; const WINDOWS_GET = 'windows.get'; const TABS_CREATE = 'tabs.create'; const TABS_SELECT_AT = 'tabs.selectAt'; +const TABS_GET_ZOOM = 'tabs.get.zoom'; +const TABS_SET_ZOOM = 'tabs.set.zoom'; const EVENT_KEYPRESS = 'event.keypress'; const EVENT_KEYDOWN = 'event.keydown'; const EVENT_KEYUP = 'event.keyup'; @@ -21,6 +23,8 @@ export { TABS_CREATE, TABS_SELECT_AT, + TABS_GET_ZOOM, + TABS_SET_ZOOM, EVENT_KEYPRESS, EVENT_KEYDOWN, From fa8ca88bbad6be2904fe61565e35e74f5170b8ad Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Tue, 20 Feb 2018 20:59:45 +0900 Subject: [PATCH 2/3] update QA --- QA.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/QA.md b/QA.md index b88bb6d..2d36d54 100644 --- a/QA.md +++ b/QA.md @@ -36,8 +36,6 @@ The behaviors of the console are tested in [Console section](#consoles). #### Misc -- [ ] zi, zo: zoom-in and zoom-out -- [ ] zz: set zoom level as default - [ ] y: yank current URL and show a message - [ ] p: open clipbord's URL in current tab - [ ] P: open clipbord's URL in new tab From 8aade1c83629a63c86098831f660f1049eddc921 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Tue, 20 Feb 2018 21:08:00 +0900 Subject: [PATCH 3/3] add zomm test --- e2e/contents/zoom.test.js | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 e2e/contents/zoom.test.js diff --git a/e2e/contents/zoom.test.js b/e2e/contents/zoom.test.js new file mode 100644 index 0000000..c2e787f --- /dev/null +++ b/e2e/contents/zoom.test.js @@ -0,0 +1,72 @@ +import { expect } from "chai"; +import * as windows from "../ambassador/src/client/windows"; +import * as tabs from "../ambassador/src/client/tabs"; +import * as keys from "../ambassador/src/client/keys"; + +const SERVER_URL = "localhost:11111/"; + +describe("tab test", () => { + let targetWindow; + let targetTab; + + before(() => { + return windows.create(SERVER_URL).then((win) => { + targetWindow = win; + }); + }); + + after(() => { + return windows.remove(targetWindow.id); + }); + + beforeEach(() => { + return tabs.create(targetWindow.id, SERVER_URL).then((tab) => { + targetTab = tab; + }); + }); + + it('zooms-in by zi', () => { + let before; + return tabs.getZoom(targetTab.id).then((zoom) => { + before = zoom; + return keys.press(targetTab.id, 'z'); + }).then(() => { + return keys.press(targetTab.id, 'i'); + }).then(() => { + return tabs.getZoom(targetTab.id); + }).then((actual) => { + expect(actual).to.be.greaterThan(before); + }); + }); + + it('zooms-in by zo', () => { + let before; + return tabs.getZoom(targetTab.id).then((zoom) => { + before = zoom; + return keys.press(targetTab.id, 'z'); + }).then(() => { + return keys.press(targetTab.id, 'o'); + }).then(() => { + return tabs.getZoom(targetTab.id); + }).then((actual) => { + expect(actual).to.be.lessThan(before); + }); + }); + + it('zooms-in by zz', () => { + let before; + tabs.setZoom(targetTab.id, 1.5).then(() => { + return tabs.getZoom(targetTab.id); + }).then((zoom) => { + before = zoom; + return keys.press(targetTab.id, 'z'); + }).then(() => { + return keys.press(targetTab.id, 'z'); + }).then(() => { + return tabs.getZoom(targetTab.id); + }).then((actual) => { + expect(actual).to.be.lessThan(before); + expect(actual).to.be.be(1); + }); + }); +});