diff options
| -rw-r--r-- | QA.md | 14 | ||||
| -rw-r--r-- | e2e/completion_open.test.js | 123 | 
2 files changed, 124 insertions, 13 deletions
@@ -26,19 +26,10 @@ The behaviors of the console are tested in [Console section](#consoles).  - [ ] Select link and open it in the frame in `<iframe>`/`<frame`> on following by <kbd>f</kbd>  - [ ] Select link and open it in new tab in `<iframe>`/`<frame`> on following by <kbd>F</kbd>  - [ ] Select link and open it in `<area>` tags, for <kbd>f</kbd> and <kbd>F</kbd> -- [ ] Open new tab in background by `"background": true`  - [ ] Opened tabs is in child on Tree Style Tab  ### Consoles -#### Exec a command - -- [ ] `<EMPTY>`: do nothing - -#### Misc - -- [ ] Select next item by <kbd>Tab</kbd> and previous item by <kbd>Shift</kbd>+<kbd>Tab</kbd> -  ### Properties  - [ ] Configure custom hint character by `:set hintchars=012345678` @@ -47,10 +38,7 @@ The behaviors of the console are tested in [Console section](#consoles).  - [ ] Smooth scroll by `:set smoothscroll`  - [ ] Non-smooth scroll by `:set nosmoothscroll`  - [ ] Configure smooth scroll by settings `"smoothscroll": true`, `"smoothscroll": false` - -- [ ] Show search engine, bookmark and history items in order by `:set complete=sbh` -- [ ] Show bookmark, search engine, and search engine items in order by `:set complete=bss` -- [ ] Configure completion items by setting `"complete": "sbh"`, `"complete": "bss"` +- [ ] Open new tab in background by `"background": true`  ### Settings diff --git a/e2e/completion_open.test.js b/e2e/completion_open.test.js index 59d6b83..80628b3 100644 --- a/e2e/completion_open.test.js +++ b/e2e/completion_open.test.js @@ -129,4 +129,127 @@ describe("completion on open/tabopen/winopen commands", () => {        assert(items.every(x => x.includes('https://')));      });    }) + +  it('should display only specified items in "complete" property by set command', async() => { +    let c = new Console(session); + +    const execCommand = async(line) => { +      await body.sendKeys(':'); +      await session.switchToFrame(0); +      await c.sendKeys(line, Key.Enter); +      await session.switchToParentFrame(); +    } + +    const typeCommand = async(...keys) => { +      await body.sendKeys(':'); +      await session.switchToFrame(0); +      await c.sendKeys(...keys); +    } + +    const cancel = async() => { +      await c.sendKeys(Key.Escape); +      await session.switchToParentFrame(); +    } + +    await execCommand('set complete=sbh'); +    await typeCommand('open '); + +    await eventually(async() => { +      let completions = await c.getCompletions(); +      let titles = completions.filter(x => x.type === 'title').map(x => x.text); +      assert.deepEqual(titles, ['Search Engines', 'Bookmarks', 'History']) +    }); + +    await cancel(); +    await execCommand('set complete=bss'); +    await typeCommand('open '); + +    await eventually(async() => { +      let completions = await c.getCompletions(); +      let titles = completions.filter(x => x.type === 'title').map(x => x.text); +      assert.deepEqual(titles, ['Bookmarks', 'Search Engines', 'Search Engines']) +    }); +  }) + +  it('should display only specified items in "complete" property by setting', async() => { +    const settings = { +      source: 'json', +      json: `{ +        "keymaps": { +          ":": { "type": "command.show" } +        }, +        "search": { +          "default": "google", +          "engines": { "google": "https://google.com/search?q={}" } +        }, +        "properties": { +          "complete": "sbh" +        } +      }`, +    }; +    await browser.storage.local.set({ settings, }); + +    let c = new Console(session); + +    const typeCommand = async(...keys) => { +      await body.sendKeys(':'); +      await session.switchToFrame(0); +      await c.sendKeys(...keys); +    } + +    const cancel = async() => { +      await c.sendKeys(Key.Escape); +      await session.switchToParentFrame(); +    } + +    await browser.storage.local.set({ settings: { +      source: 'json', +      json: `{ +        "keymaps": { +          ":": { "type": "command.show" } +        }, +        "search": { +          "default": "google", +          "engines": { "google": "https://google.com/search?q={}" } +        }, +        "properties": { +          "complete": "sbh" +        } +      }`, +    }}); +    await typeCommand('open '); + +    await eventually(async() => { +      let completions = await c.getCompletions(); +      let titles = completions.filter(x => x.type === 'title').map(x => x.text); +      assert.deepEqual(titles, ['Search Engines', 'Bookmarks', 'History']) +    }); + +    await cancel(); + +    await browser.storage.local.set({ settings: { +      source: 'json', +      json: `{ +        "keymaps": { +          ":": { "type": "command.show" } +        }, +        "search": { +          "default": "google", +          "engines": { "google": "https://google.com/search?q={}" } +        }, +        "properties": { +          "complete": "bss" +        } +      }`, +    }}); +    await typeCommand('open '); + +    await eventually(async() => { +      let completions = await c.getCompletions(); +      let titles = completions.filter(x => x.type === 'title').map(x => x.text); +      assert.deepEqual(titles, ['Bookmarks', 'Search Engines', 'Search Engines']) +    }); + + +  })  });  | 
