diff options
| author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-12-22 10:47:00 +0900 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-22 10:47:00 +0900 | 
| commit | b2dcdedad729ff7087867da50e20578f9fc8fb29 (patch) | |
| tree | 033ecffbd7db9b6db8000464a68d748fcae1dc3d /e2e | |
| parent | 3c7230c3036e8bb2b2e9a752be9b0ef4a0a7349d (diff) | |
| parent | 75f86907fc2699c0f0661d4780c38249a18f849b (diff) | |
Merge pull request #689 from ueokande/n-times-repeat-operations
Repeat commands n-times
Diffstat (limited to 'e2e')
| -rw-r--r-- | e2e/repeat_n_times.test.ts | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/e2e/repeat_n_times.test.ts b/e2e/repeat_n_times.test.ts new file mode 100644 index 0000000..d28f3c9 --- /dev/null +++ b/e2e/repeat_n_times.test.ts @@ -0,0 +1,60 @@ +import * as path from 'path'; +import * as assert from 'assert'; + +import TestServer from './lib/TestServer'; +import eventually from './eventually'; +import { Builder, Lanthan } from 'lanthan'; +import { WebDriver } from 'selenium-webdriver'; +import Page from './lib/Page'; + +describe("tab test", () => { +  let server = new TestServer().receiveContent('/', +    `<!DOCTYPE html><html lang="en"><body style="width:10000px; height:10000px"></body></html>`, +  ); +  let lanthan: Lanthan; +  let webdriver: WebDriver; +  let browser: any; + +  before(async() => { +    lanthan = await Builder +      .forBrowser('firefox') +      .spyAddon(path.join(__dirname, '..')) +      .build(); +    webdriver = lanthan.getWebDriver(); +    browser = lanthan.getWebExtBrowser(); +    await server.start(); + +    browser = browser; +  }); + +  after(async() => { +    await server.stop(); +    if (lanthan) { +      await lanthan.quit(); +    } +  }); + +  it('repeats scroll 3-times', async () => { +    let page = await Page.navigateTo(webdriver, server.url()); +    await page.sendKeys('3', 'j'); + +    let scrollY = await page.getScrollY(); +    assert.strictEqual(scrollY, 64 * 3); +  }); + +  it('repeats tab deletion 3-times', async () => { +    let win = await browser.windows.create({ url: server.url('/#0') }); +    for (let i = 1; i < 5; ++i) { +      await browser.tabs.create({ url: server.url('/#' + i), windowId: win.id }); +      await webdriver.navigate().to(server.url('/#' + i)); +    } + +    let page = await Page.navigateTo(webdriver, server.url()); +    await page.sendKeys('3', 'd'); + +    await eventually(async() => { +      let current = await browser.tabs.query({ windowId: win.id }); +      assert.strictEqual(current.length, 2); +    }); +  }); +}); | 
