diff options
| author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-09-29 01:06:01 +0000 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-29 01:06:01 +0000 | 
| commit | 4f4396d0a69d33541844e723cad033b0a927333b (patch) | |
| tree | f3a75c0b41d8fe2b1e6ca730501e36cee5701705 /e2e/command_tabopen.test.ts | |
| parent | 0fc2eea7431649f85c6e5d57cca66457f24bb14d (diff) | |
| parent | 9f0bc5732823505c91ce6b5ba3aa8e4b60ac93f6 (diff) | |
Merge pull request #648 from ueokande/migrate-to-latest-lanthan
Clean E2E tests
Diffstat (limited to 'e2e/command_tabopen.test.ts')
| -rw-r--r-- | e2e/command_tabopen.test.ts | 122 | 
1 files changed, 122 insertions, 0 deletions
| diff --git a/e2e/command_tabopen.test.ts b/e2e/command_tabopen.test.ts new file mode 100644 index 0000000..9d3da9a --- /dev/null +++ b/e2e/command_tabopen.test.ts @@ -0,0 +1,122 @@ +import * as path from 'path'; +import * as assert from 'assert'; + +import TestServer from './lib/TestServer'; +import settings from './settings'; +import eventually from './eventually'; +import { Builder, Lanthan } from 'lanthan'; +import { WebDriver } from 'selenium-webdriver'; +import Page from './lib/Page'; + +describe("tabopen command test", () => { +  let server = new TestServer(12321) +    .receiveContent('/google', 'google') +    .receiveContent('/yahoo', 'yahoo'); +  let lanthan: Lanthan; +  let webdriver: WebDriver; +  let browser: any; +  let page: Page; + +  before(async() => { +    lanthan = await Builder +      .forBrowser('firefox') +      .spyAddon(path.join(__dirname, '..')) +      .build(); +    webdriver = lanthan.getWebDriver(); +    browser = lanthan.getWebExtBrowser(); + +    await browser.storage.local.set({ +      settings, +    }); + +    await server.start(); +  }); + +  after(async() => { +    await server.stop(); +    if (lanthan) { +      await lanthan.quit(); +    } +  }); + +  beforeEach(async() => { +    let tabs = await browser.tabs.query({}); +    for (let tab of tabs.slice(1)) { +      await browser.tabs.remove(tab.id); +    } + +    page = await Page.navigateTo(webdriver, server.url()); +  }) + +  it('should open default search for keywords by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen an apple'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, server.url('/google?q=an%20apple') ) +    }); +  }); + +  it('should open certain search page for keywords by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen yahoo an apple'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, server.url('/yahoo?q=an%20apple')) +    }); +  }); + +  it('should open default engine with empty keywords by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, server.url('/google?q=')) +    }); +  }); + +  it('should open certain search page for empty keywords by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen yahoo'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, server.url('/yahoo?q=')) +    }); +  }); + +  it('should open a site with domain by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen example.com'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, 'http://example.com/') +    }); +  }); + +  it('should open a site with URL by tabopen command ', async() => { +    let console = await page.showConsole(); +    await console.execCommand('tabopen https://example.com/'); + +    await eventually(async() => { +      let tabs = await browser.tabs.query({}); +      assert.strictEqual(tabs.length, 2); +      let url = new URL(tabs[1].url); +      assert.strictEqual(url.href, 'https://example.com/') +    }); +  }); +}); | 
