diff --git a/QA.md b/QA.md index e2a6fac..4f37879 100644 --- a/QA.md +++ b/QA.md @@ -18,8 +18,6 @@ The behaviors of the console are tested in [Console section](#consoles). - [ ] r: reload current tab - [ ] R: reload current tab without cache -- [ ] gh: open start page on current tab -- [ ] gH: open start page to new tab #### Misc 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); + }); + }); });