From bc26dbdd77b4f9dce7505cd6e78b9161dbc5d928 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 6 Apr 2019 23:13:13 +0900 Subject: Add gh/gH tests --- e2e/navigate.test.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'e2e/navigate.test.js') diff --git a/e2e/navigate.test.js b/e2e/navigate.test.js index 089fa56..70d45ce 100644 --- a/e2e/navigate.test.js +++ b/e2e/navigate.test.js @@ -45,7 +45,11 @@ describe("zoom test", () => { before(async() => { http = newApp().listen(port); - firefox = await lanthan.firefox(); + firefox = await lanthan.firefox({ + prefs: { + 'browser.startup.homepage': `http://127.0.0.1:${port}#home`, + } + }); await firefox.session.installAddon(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; @@ -162,6 +166,32 @@ describe("zoom test", () => { assert.equal(url.pathname, '/pagenation-link/11'); }); }); + + it('should go to home page into current tab by gh', async () => { + await session.navigateTo(`http://127.0.0.1:${port}`); + let body = await session.findElementByCSS('body'); + await body.sendKeys('g', 'h'); + + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + let url = new URL(tab.url); + assert.equal(url.hash, '#home'); + }); + }); + + it('should go to home page into current tab by gH', async () => { + await session.navigateTo(`http://127.0.0.1:${port}`); + let body = await session.findElementByCSS('body'); + await body.sendKeys('g', Key.Shift, 'H'); + + await eventually(async() => { + let tabs = await browser.tabs.query({}); + assert.equal(tabs.length, 2); + assert.equal(new URL(tabs[0].url).hash, ''); + assert.equal(new URL(tabs[1].url).hash, '#home'); + assert.equal(tabs[1].active, true); + }); + }); }); -- cgit v1.2.3 From 4f63499aa9e687ad21a683812b989a3497ee95bc Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 6 Apr 2019 23:28:10 +0900 Subject: Add r/R tests --- QA.md | 5 ---- e2e/navigate.test.js | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 6 deletions(-) (limited to 'e2e/navigate.test.js') diff --git a/QA.md b/QA.md index 4f37879..1e71bf6 100644 --- a/QA.md +++ b/QA.md @@ -14,11 +14,6 @@ The behaviors of the console are tested in [Console section](#consoles). - [ ] b: open a console with `buffer` - [ ] a: open a console with `addbookmark` and the current page's title -#### Tabs - -- [ ] r: reload current tab -- [ ] R: reload current tab without cache - #### Misc - [ ] y: yank current URL and show a message diff --git a/e2e/navigate.test.js b/e2e/navigate.test.js index 70d45ce..5c4e2d4 100644 --- a/e2e/navigate.test.js +++ b/e2e/navigate.test.js @@ -24,6 +24,15 @@ const newApp = () => { `); }); + app.get('/reload', (req, res) => { + res.status(200).send(` + + + + + +`); + }); app.get('/*', (req, res) => { res.send(` @@ -192,6 +201,59 @@ describe("zoom test", () => { assert.equal(tabs[1].active, true); }); }); -}); + it('should reload current tab by r', async () => { + await session.navigateTo(`http://127.0.0.1:${port}/reload`); + await session.executeScript(() => window.scrollTo(500, 500)); + let before + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + before = Number(new URL(tab.url).hash.split('#')[1]); + assert(before > 0); + }); + + let body = await session.findElementByCSS('body'); + await body.sendKeys('r'); + + let after + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + after = Number(new URL(tab.url).hash.split('#')[1]); + assert(after > before); + }); + await eventually(async() => { + let pageYOffset = await session.executeScript(() => window.pageYOffset); + assert.equal(pageYOffset, 500); + }); + }); + + it('should reload current tab without cache by R', async () => { + await session.navigateTo(`http://127.0.0.1:${port}/reload`); + await session.executeScript(() => window.scrollTo(500, 500)); + let before + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + before = Number(new URL(tab.url).hash.split('#')[1]); + assert(before > 0); + }); + + let body = await session.findElementByCSS('body'); + await body.sendKeys(Key.Shift, 'R'); + + let after + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + after = Number(new URL(tab.url).hash.split('#')[1]); + assert(after > before); + }); + + // assert that the page offset is reset to 0, and 'eventually' is timed-out. + await assert.rejects(async () => { + await eventually(async() => { + let pageYOffset = await session.executeScript(() => window.pageYOffset); + assert.equal(pageYOffset, 500); + }); + }); + }); +}); -- cgit v1.2.3 From 9fe09eba97e962b96088f2b79a8364d51972b58a Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 13 Apr 2019 09:38:59 +0900 Subject: Follow the master in lanthan --- e2e/console.test.js | 4 ++-- e2e/mark.test.js | 2 +- e2e/navigate.test.js | 4 ++-- e2e/scroll.test.js | 2 +- e2e/tab.test.js | 2 +- e2e/zoom.test.js | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) (limited to 'e2e/navigate.test.js') diff --git a/e2e/console.test.js b/e2e/console.test.js index a7c6c63..6f6341f 100644 --- a/e2e/console.test.js +++ b/e2e/console.test.js @@ -20,7 +20,7 @@ const newApp = () => { }; -describe("zoom test", () => { +describe("console test", () => { const port = 12321; let http; let firefox; @@ -31,7 +31,7 @@ describe("zoom test", () => { before(async() => { firefox = await lanthan.firefox(); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; http = newApp().listen(port); diff --git a/e2e/mark.test.js b/e2e/mark.test.js index 8f350b7..8716c1e 100644 --- a/e2e/mark.test.js +++ b/e2e/mark.test.js @@ -29,7 +29,7 @@ describe("mark test", () => { http = newApp().listen(port); firefox = await lanthan.firefox(); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; }); diff --git a/e2e/navigate.test.js b/e2e/navigate.test.js index 5c4e2d4..62be469 100644 --- a/e2e/navigate.test.js +++ b/e2e/navigate.test.js @@ -43,7 +43,7 @@ const newApp = () => { return app; }; -describe("zoom test", () => { +describe("navigate test", () => { const port = 12321; let http; @@ -59,7 +59,7 @@ describe("zoom test", () => { 'browser.startup.homepage': `http://127.0.0.1:${port}#home`, } }); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; }); diff --git a/e2e/scroll.test.js b/e2e/scroll.test.js index 32b0012..0ce3ec6 100644 --- a/e2e/scroll.test.js +++ b/e2e/scroll.test.js @@ -28,7 +28,7 @@ describe("scroll test", () => { http = newApp().listen(port); firefox = await lanthan.firefox(); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; }); diff --git a/e2e/tab.test.js b/e2e/tab.test.js index 39338aa..16d61ae 100644 --- a/e2e/tab.test.js +++ b/e2e/tab.test.js @@ -28,7 +28,7 @@ describe("tab test", () => { before(async() => { firefox = await lanthan.firefox(); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; http = newApp().listen(port); diff --git a/e2e/zoom.test.js b/e2e/zoom.test.js index e8e586e..186f67f 100644 --- a/e2e/zoom.test.js +++ b/e2e/zoom.test.js @@ -16,7 +16,7 @@ describe("zoom test", () => { before(async() => { firefox = await lanthan.firefox(); - await firefox.session.installAddon(path.join(__dirname, '..')); + await firefox.session.installAddonFromPath(path.join(__dirname, '..')); session = firefox.session; browser = firefox.browser; tab = (await browser.tabs.query({}))[0] -- cgit v1.2.3 From 0b558cc5233761069667064f77f8696e7714f7ac Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sat, 13 Apr 2019 11:41:23 +0900 Subject: Make navigate e2e test stable --- e2e/navigate.test.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'e2e/navigate.test.js') diff --git a/e2e/navigate.test.js b/e2e/navigate.test.js index 62be469..5d9365b 100644 --- a/e2e/navigate.test.js +++ b/e2e/navigate.test.js @@ -71,15 +71,24 @@ describe("navigate test", () => { http.close(); }); + beforeEach(async() => { + let tabs = await browser.tabs.query({}); + for (let tab of tabs.slice(1)) { + await browser.tabs.remove(tab.id); + } + }) + it('should go to parent path without hash by gu', async () => { await session.navigateTo(`http://127.0.0.1:${port}/a/b/c`); let body = await session.findElementByCSS('body'); await body.sendKeys('g', 'u'); - let tab = (await browser.tabs.query({}))[0]; - let url = new URL(tab.url); - assert.equal(url.pathname, `/a/b/`) + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + let url = new URL(tab.url); + assert.equal(url.pathname, `/a/b/`) + }); }); it('should remove hash by gu', async () => { @@ -88,10 +97,12 @@ describe("navigate test", () => { await body.sendKeys('g', 'u'); - let tab = (await browser.tabs.query({}))[0]; - let url = new URL(tab.url); - assert.equal(url.hash, '') - assert.equal(url.pathname, `/a/b/c`) + await eventually(async() => { + let tab = (await browser.tabs.query({}))[0]; + let url = new URL(tab.url); + assert.equal(url.hash, '') + assert.equal(url.pathname, `/a/b/c`) + }); }); it('should go to root path by gU', async () => { -- cgit v1.2.3