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);
+ });
+ });
});