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) {