blob: 8dae98e14b55cba596d8313135221eb309ede1e5 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_driver/flutter_driver.dart';
import 'package:sl4f/sl4f.dart';
import 'package:test/test.dart';
import 'package:webdriver/sync_io.dart' show By;
import 'ermine_driver.dart';
const _timeoutSeconds = 10;
const _timeout = Duration(milliseconds: _timeoutSeconds * 1000);
const homePageTitle = 'Fuchsia';
void main() {
Sl4f sl4f;
ErmineDriver ermine;
setUp(() async {
sl4f = Sl4f.fromEnvironment();
await sl4f.startServer();
ermine = ErmineDriver(sl4f);
await ermine.setUp();
});
tearDownAll(() async {
await ermine.tearDown();
await sl4f?.stopServer();
sl4f?.close();
});
test('Run simple browser through Ermine session shell.', () async {
final browser = await ermine.launchAndWaitForSimpleBrowser();
final addTab = find.byValueKey('new_tab');
await browser.waitFor(addTab);
await browser.tap(addTab);
final newTab = find.text('NEW TAB');
await browser.waitFor(newTab, timeout: _timeout);
// TODO(fxb/35834): Replace fuchsia.dev with a locally hosted website.
await browser.requestData('fuchsia.dev');
await browser.waitFor(find.text(homePageTitle), timeout: _timeout);
final tabTitle = await browser.getText(find.text(homePageTitle));
expect(tabTitle, homePageTitle);
final webdriver = await ermine.getWebDriverFor('fuchsia.dev');
final termsLink = webdriver.findElement(By.linkText('Terms'));
expect(termsLink, isNotNull, reason: 'Cannot find text link "Terms".');
// Close the view.
await ermine.driver.requestData('close');
// Verify the view is closed.
await ermine.driver.waitForAbsent(find.text('simple_browser'));
});
}