diff --git a/QA.md b/QA.md index 0ecf292..0473126 100644 --- a/QA.md +++ b/QA.md @@ -27,7 +27,6 @@ The behaviors of the console are tested in [Console section](#consoles). #### Misc -- [ ] gf: open page source in the new tab. - [ ] y: yank current URL and show a message - [ ] p: open clipboard's URL in current tab - [ ] P: open clipboard's URL in new tab @@ -118,6 +117,7 @@ The behaviors of the console are tested in [Console section](#consoles). #### Misc - [ ] Select next item by Tab and previous item by Shift+Tab +- [ ] Reopen tab on *only current window* by u ### Settings diff --git a/e2e/contents/navigate.test.js b/e2e/contents/navigate.test.js index d36b167..32ed423 100644 --- a/e2e/contents/navigate.test.js +++ b/e2e/contents/navigate.test.js @@ -20,7 +20,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/a/b/c'); await keys.press(tab.id, 'g'); await keys.press(tab.id, 'u'); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/a/b/'); @@ -38,7 +38,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/a/b/c'); await keys.press(tab.id, 'g'); await keys.press(tab.id, 'U', { shiftKey: true }); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/'); @@ -49,11 +49,11 @@ describe("navigate test", () => { await keys.press(tab.id, 'g'); await keys.press(tab.id, 'u'); await keys.press(tab.id, 'H', { shiftKey: true }); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url, 'go back in history').to.be.equal(CLIENT_URL + '/#navigate'); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); await keys.press(tab.id, 'L', { shiftKey: true }); tab = await tabs.get(tab.id); @@ -64,7 +64,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/a-pagenation?page=10'); await keys.press(tab.id, '['); await keys.press(tab.id, '['); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/a-pagenation?page=9'); @@ -74,7 +74,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/a-pagenation?page=10'); await keys.press(tab.id, ']'); await keys.press(tab.id, ']'); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 100)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/a-pagenation?page=11'); @@ -84,7 +84,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/link-pagenation?page=10'); await keys.press(tab.id, '['); await keys.press(tab.id, '['); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/link-pagenation?page=9'); @@ -94,7 +94,7 @@ describe("navigate test", () => { let tab = await tabs.create(targetWindow.id, CLIENT_URL + '/link-pagenation?page=10'); await keys.press(tab.id, ']'); await keys.press(tab.id, ']'); - await new Promise(resolve => { setTimeout(() => resolve(), 10) }); + await new Promise((resolve) => setTimeout(resolve, 10)); tab = await tabs.get(tab.id); expect(tab.url).to.be.equal(CLIENT_URL + '/link-pagenation?page=11'); diff --git a/e2e/contents/tab.test.js b/e2e/contents/tab.test.js index 2d7f548..ada3760 100644 --- a/e2e/contents/tab.test.js +++ b/e2e/contents/tab.test.js @@ -139,7 +139,7 @@ describe("tab test", () => { expect(win.tabs).to.have.lengthOf(1); await keys.press(win.tabs[0].id, 'u'); - await new Promise((resolve) => setTimeout(resolve, 100)); + await new Promise(resolve => setTimeout(resolve, 100)); win = await windows.get(targetWindow.id); expect(win.tabs).to.have.lengthOf(2); @@ -163,4 +163,16 @@ describe("tab test", () => { let win = await windows.get(targetWindow.id); expect(win.tabs).to.have.lengthOf(1); }); + + it('opens view-source by gf', async () => { + let win = await windows.get(targetWindow.id); + let tab = win.tabs[0]; + await keys.press(tab.id, 'g'); + await keys.press(tab.id, 'f'); + await new Promise(resolve => setTimeout(resolve, 500)); + + win = await windows.get(targetWindow.id); + let urls = win.tabs.map((t) => t.url) + expect(urls).to.include.members([CLIENT_URL + '/', 'view-source:' + CLIENT_URL + '/']); + }); }); diff --git a/src/background/shared/tabs.js b/src/background/shared/tabs.js index 33a4fac..26e2e44 100644 --- a/src/background/shared/tabs.js +++ b/src/background/shared/tabs.js @@ -22,7 +22,7 @@ const queryByKeyword = async(keyword, excludePinned = false) => { }; const closeTabByKeywords = async(keyword) => { - let tabs = await queryByKeyword(keyword, false); + let tabs = await queryByKeyword(keyword, true); if (tabs.length === 0) { throw new Error('No matching buffer for ' + keyword); } else if (tabs.length > 1) { @@ -32,7 +32,7 @@ const closeTabByKeywords = async(keyword) => { }; const closeTabByKeywordsForce = async(keyword) => { - let tabs = await queryByKeyword(keyword, true); + let tabs = await queryByKeyword(keyword, false); if (tabs.length === 0) { throw new Error('No matching buffer for ' + keyword); } else if (tabs.length > 1) {