diff options
Diffstat (limited to 'e2e/completion_open.test.ts')
-rw-r--r-- | e2e/completion_open.test.ts | 177 |
1 files changed, 110 insertions, 67 deletions
diff --git a/e2e/completion_open.test.ts b/e2e/completion_open.test.ts index 95d4175..cefb44f 100644 --- a/e2e/completion_open.test.ts +++ b/e2e/completion_open.test.ts @@ -1,159 +1,202 @@ -import * as path from 'path'; -import * as assert from 'assert'; +import * as path from "path"; +import * as assert from "assert"; import Settings from "../src/shared/settings/Settings"; -import TestServer from './lib/TestServer'; -import eventually from './eventually'; -import { Builder, Lanthan } from 'lanthan'; -import { WebDriver } from 'selenium-webdriver'; -import Page from './lib/Page'; +import TestServer from "./lib/TestServer"; +import eventually from "./eventually"; +import { Builder, Lanthan } from "lanthan"; +import { WebDriver } from "selenium-webdriver"; +import Page from "./lib/Page"; import SettingRepository from "./lib/SettingRepository"; describe("completion on open/tabopen/winopen commands", () => { - const server = new TestServer().receiveContent('/*', 'ok'); + const server = new TestServer().receiveContent("/*", "ok"); let lanthan: Lanthan; let webdriver: WebDriver; let browser: any; let page: Page; - before(async() => { + before(async () => { await server.start(); - lanthan = await Builder - .forBrowser('firefox') - .spyAddon(path.join(__dirname, '..')) + lanthan = await Builder.forBrowser("firefox") + .spyAddon(path.join(__dirname, "..")) .build(); webdriver = lanthan.getWebDriver(); browser = lanthan.getWebExtBrowser(); // Add item into hitories - await webdriver.navigate().to(('https://example.com/')); + await webdriver.navigate().to("https://example.com/"); }); - after(async() => { + after(async () => { await server.stop(); if (lanthan) { await lanthan.quit(); } }); - beforeEach(async() => { + beforeEach(async () => { page = await Page.navigateTo(webdriver, server.url()); }); - it('should show completions from search engines, bookmarks, and histories by "open" command', async() => { + it('should show completions from search engines, bookmarks, and histories by "open" command', async () => { const console = await page.showConsole(); - await console.inputKeys('open '); + await console.inputKeys("open "); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - assert.ok(completions.find(x => x.type === 'title' && x.text === 'Search Engines')); - assert.ok(completions.find(x => x.type === 'title' && x.text === 'Bookmarks')); - assert.ok(completions.find(x => x.type === 'title' && x.text === 'History')); + assert.ok( + completions.find( + (x) => x.type === "title" && x.text === "Search Engines" + ) + ); + assert.ok( + completions.find((x) => x.type === "title" && x.text === "Bookmarks") + ); + assert.ok( + completions.find((x) => x.type === "title" && x.text === "History") + ); }); }); - it('should filter items with URLs by keywords on "open" command', async() => { + it('should filter items with URLs by keywords on "open" command', async () => { const console = await page.showConsole(); - await console.inputKeys('open https://'); + await console.inputKeys("open https://"); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const items = completions.filter(x => x.type === 'item').map(x => x.text); - assert.ok(items.every(x => x.includes('https://'))); + const items = completions + .filter((x) => x.type === "item") + .map((x) => x.text); + assert.ok(items.every((x) => x.includes("https://"))); }); }); - it('should filter items with titles by keywords on "open" command', async() => { + it('should filter items with titles by keywords on "open" command', async () => { const console = await page.showConsole(); - await console.inputKeys('open getting'); + await console.inputKeys("open getting"); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const items = completions.filter(x => x.type === 'item').map(x => x.text); - assert.ok(items.every(x => x.toLowerCase().includes('getting'))); + const items = completions + .filter((x) => x.type === "item") + .map((x) => x.text); + assert.ok(items.every((x) => x.toLowerCase().includes("getting"))); }); }); - it('should filter items with titles by keywords on "tabopen" command', async() => { + it('should filter items with titles by keywords on "tabopen" command', async () => { const console = await page.showConsole(); - await console.inputKeys('tabopen getting'); + await console.inputKeys("tabopen getting"); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const items = completions.filter(x => x.type === 'item').map(x => x.text); - assert.ok(items.every(x => x.includes('https://'))); + const items = completions + .filter((x) => x.type === "item") + .map((x) => x.text); + assert.ok(items.every((x) => x.includes("https://"))); }); }); - it('should filter items with titles by keywords on "winopen" command', async() => { + it('should filter items with titles by keywords on "winopen" command', async () => { const console = await page.showConsole(); - await console.inputKeys('winopen https://'); + await console.inputKeys("winopen https://"); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const items = completions.filter(x => x.type === 'item').map(x => x.text); - assert.ok(items.every(x => x.includes('https://'))); + const items = completions + .filter((x) => x.type === "item") + .map((x) => x.text); + assert.ok(items.every((x) => x.includes("https://"))); }); }); - it('should display only specified items in "complete" property by set command', async() => { + it('should display only specified items in "complete" property by set command', async () => { let console = await page.showConsole(); - await console.execCommand('set complete=sbh'); + await console.execCommand("set complete=sbh"); await (webdriver.switchTo() as any).parentFrame(); console = await page.showConsole(); - await console.inputKeys('open '); + await console.inputKeys("open "); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const titles = completions.filter(x => x.type === 'title').map(x => x.text); - assert.deepStrictEqual(titles, ['Search Engines', 'Bookmarks', 'History']) + const titles = completions + .filter((x) => x.type === "title") + .map((x) => x.text); + assert.deepStrictEqual(titles, [ + "Search Engines", + "Bookmarks", + "History", + ]); }); await console.close(); console = await page.showConsole(); - await console.execCommand('set complete=bss'); + await console.execCommand("set complete=bss"); await (webdriver.switchTo() as any).parentFrame(); console = await page.showConsole(); - await console.inputKeys('open '); + await console.inputKeys("open "); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const titles = completions.filter(x => x.type === 'title').map(x => x.text); - assert.deepStrictEqual(titles, ['Bookmarks', 'Search Engines', 'Search Engines']) + const titles = completions + .filter((x) => x.type === "title") + .map((x) => x.text); + assert.deepStrictEqual(titles, [ + "Bookmarks", + "Search Engines", + "Search Engines", + ]); }); }); - it('should display only specified items in "complete" property by setting', async() => { - new SettingRepository(browser).saveJSON(Settings.fromJSON({ - properties: { complete: "sbh" }, - })); + it('should display only specified items in "complete" property by setting', async () => { + new SettingRepository(browser).saveJSON( + Settings.fromJSON({ + properties: { complete: "sbh" }, + }) + ); let console = await page.showConsole(); - await console.inputKeys('open '); + await console.inputKeys("open "); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const titles = completions.filter(x => x.type === 'title').map(x => x.text); - assert.deepStrictEqual(titles, ['Search Engines', 'Bookmarks', 'History']) + const titles = completions + .filter((x) => x.type === "title") + .map((x) => x.text); + assert.deepStrictEqual(titles, [ + "Search Engines", + "Bookmarks", + "History", + ]); }); await console.close(); await (webdriver.switchTo() as any).parentFrame(); - new SettingRepository(browser).saveJSON(Settings.fromJSON({ - properties: { complete: "bss" }, - })); + new SettingRepository(browser).saveJSON( + Settings.fromJSON({ + properties: { complete: "bss" }, + }) + ); console = await page.showConsole(); - await console.inputKeys('open '); + await console.inputKeys("open "); - await eventually(async() => { + await eventually(async () => { const completions = await console.getCompletions(); - const titles = completions.filter(x => x.type === 'title').map(x => x.text); - assert.deepStrictEqual(titles, ['Bookmarks', 'Search Engines', 'Search Engines']) + const titles = completions + .filter((x) => x.type === "title") + .map((x) => x.text); + assert.deepStrictEqual(titles, [ + "Bookmarks", + "Search Engines", + "Search Engines", + ]); }); }); }); |