Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Unified Diff: tools/testing/dart/browser_controller.dart

Issue 2863253002: Tighten up a bunch of types in test.dart. (Closed)
Patch Set: Merge branch 'master' into types-for-test Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/android.dart ('k') | tools/testing/dart/co19_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/browser_controller.dart
diff --git a/tools/testing/dart/browser_controller.dart b/tools/testing/dart/browser_controller.dart
index 8a1b7ea355efad3969edb33da9840c17d2e8c59e..9474292a30bf70cffd6b33369fc4fb6cc1b58b9e 100644
--- a/tools/testing/dart/browser_controller.dart
+++ b/tools/testing/dart/browser_controller.dart
@@ -16,6 +16,10 @@ import 'utils.dart';
import 'reset_safari.dart' show killAndResetSafari;
+typedef void BrowserDoneCallback(BrowserTestOutput output);
+typedef void TestChangedCallback(String browserId, String output, int testId);
+typedef BrowserTest NextTestCallback(String browserId);
+
class BrowserOutput {
final StringBuffer stdout = new StringBuffer();
final StringBuffer stderr = new StringBuffer();
@@ -71,7 +75,7 @@ abstract class Browser {
factory Browser.byName(String name, String executablePath,
[bool checkedMode = false]) {
- var browser;
+ Browser browser;
if (name == 'firefox') {
browser = new Firefox();
} else if (name == 'chrome') {
@@ -172,11 +176,11 @@ abstract class Browser {
process = startedProcess;
// Used to notify when exiting, and as a return value on calls to
// close().
- var doneCompleter = new Completer();
+ var doneCompleter = new Completer<bool>();
done = doneCompleter.future;
- Completer stdoutDone = new Completer();
- Completer stderrDone = new Completer();
+ Completer stdoutDone = new Completer<Null>();
+ Completer stderrDone = new Completer<Null>();
bool stdoutIsDone = false;
bool stderrIsDone = false;
@@ -303,7 +307,7 @@ class Safari extends Browser {
Future<bool> resetConfiguration() async {
if (!Browser.resetBrowserConfiguration) return true;
- Completer completer = new Completer();
+ var completer = new Completer<Null>();
handleUncaughtError(error, StackTrace stackTrace) {
if (!completer.isCompleted) {
completer.completeError(error, stackTrace);
@@ -373,8 +377,8 @@ class Safari extends Browser {
});
}
- Future<Null> _createLaunchHTML(var path, var url) async {
- var file = new File("${path}/launch.html");
+ Future<Null> _createLaunchHTML(String path, String url) async {
+ var file = new File("$path/launch.html");
var randomFile = await file.open(mode: FileMode.WRITE);
var content = '<script language="JavaScript">location = "$url"</script>';
await randomFile.writeString(content);
@@ -669,7 +673,8 @@ class AndroidBrowser extends Browser {
AdbDevice _adbDevice;
AndroidBrowserConfig _config;
- AndroidBrowser(this._adbDevice, this._config, this.checkedMode, apkPath) {
+ AndroidBrowser(
+ this._adbDevice, this._config, this.checkedMode, String apkPath) {
_binary = apkPath;
}
@@ -794,8 +799,8 @@ class Firefox extends Browser {
static const String disableScriptTimeLimit =
'user_pref("dom.max_script_run_time", 0);';
- void _createPreferenceFile(var path) {
- var file = new File("${path.toString()}/user.js");
+ void _createPreferenceFile(String path) {
+ var file = new File("$path/user.js");
var randomFile = file.openSync(mode: FileMode.WRITE);
randomFile.writeStringSync(enablePopUp);
randomFile.writeStringSync(disableDefaultCheck);
@@ -863,7 +868,7 @@ class BrowserStatus {
*/
class BrowserTest {
// TODO(ricow): Add timeout callback instead of the string passing hack.
- Function doneCallback;
+ BrowserDoneCallback doneCallback;
String url;
int timeout;
String lastKnownMessage = '';
@@ -894,7 +899,8 @@ class BrowserTest {
class HtmlTest extends BrowserTest {
List<String> expectedMessages;
- HtmlTest(url, doneCallback, timeout, this.expectedMessages)
+ HtmlTest(String url, BrowserDoneCallback doneCallback, int timeout,
+ this.expectedMessages)
: super(url, doneCallback, timeout) {}
String toJSON() => JSON.encode({
@@ -937,7 +943,7 @@ class BrowserTestRunner {
/// If the queue was recently empty, don't start another browser.
static const Duration MIN_NONEMPTY_QUEUE_TIME = const Duration(seconds: 1);
- final Map configuration;
+ final Map<String, String> configuration;
final BrowserTestingServer testingServer;
final String localIp;
@@ -1267,7 +1273,7 @@ class BrowserTestRunner {
});
}
- void handleNextTestTimeout(status) {
+ void handleNextTestTimeout(BrowserStatus status) {
DebugLogger
.warning("Browser timed out before getting next test. Restarting");
if (status.timeout) return;
@@ -1313,7 +1319,7 @@ class BrowserTestRunner {
// TODO(26191): Call a unified fatalError(), that shuts down all subprocesses.
// This just kills the browsers in this BrowserTestRunner instance.
Future terminate() async {
- var browsers = [];
+ var browsers = <Browser>[];
underTermination = true;
testingServer.underTermination = true;
for (BrowserStatus status in browserStatus.values) {
@@ -1323,9 +1329,11 @@ class BrowserTestRunner {
status.nextTestTimeout = null;
}
}
- for (Browser b in browsers) {
- await b.close();
+
+ for (var browser in browsers) {
+ await browser.close();
}
+
testingServer.errorReportingServer.close();
printDoubleReportingTests();
}
@@ -1360,21 +1368,21 @@ class BrowserTestingServer {
static const String terminateSignal = "TERMINATE";
var testCount = 0;
- var errorReportingServer;
+ HttpServer errorReportingServer;
bool underTermination = false;
- Function testDoneCallBack;
- Function testStatusUpdateCallBack;
- Function testStartedCallBack;
- Function nextTestCallBack;
+ TestChangedCallback testDoneCallBack;
+ TestChangedCallback testStatusUpdateCallBack;
+ TestChangedCallback testStartedCallBack;
+ NextTestCallback nextTestCallBack;
BrowserTestingServer(
this.configuration, this.localIp, this.useIframe, this.requiresFocus);
Future start() {
- var test_driver_error_port = configuration['test_driver_error_port'];
+ var testDriverErrorPort = configuration['test_driver_error_port'];
return HttpServer
- .bind(localIp, test_driver_error_port)
+ .bind(localIp, testDriverErrorPort)
.then(setupErrorServer)
.then(setupDispatchingServer);
}
@@ -1409,13 +1417,14 @@ class BrowserTestingServer {
void setupDispatchingServer(_) {
DispatchingServer server = configuration['_servers_'].server;
- void noCache(request) {
+ void noCache(HttpRequest request) {
request.response.headers
.set("Cache-Control", "no-cache, no-store, must-revalidate");
}
- int testId(request) => int.parse(request.uri.queryParameters["id"]);
- String browserId(request, prefix) =>
+ int testId(HttpRequest request) =>
+ int.parse(request.uri.queryParameters["id"]);
+ String browserId(HttpRequest request, String prefix) =>
request.uri.path.substring(prefix.length + 1);
server.addHandler(reportPath, (HttpRequest request) {
@@ -1471,7 +1480,7 @@ class BrowserTestingServer {
server.addHandler(nextTestPath, sendPageHandler);
}
- void handleReport(HttpRequest request, String browserId, var testId,
+ void handleReport(HttpRequest request, String browserId, int testId,
{bool isStatusUpdate}) {
StringBuffer buffer = new StringBuffer();
request.transform(UTF8.decoder).listen((data) {
@@ -1490,7 +1499,7 @@ class BrowserTestingServer {
});
}
- void handleStarted(HttpRequest request, String browserId, var testId) {
+ void handleStarted(HttpRequest request, String browserId, int testId) {
StringBuffer buffer = new StringBuffer();
// If an error occurs while receiving the data from the request stream,
// we don't handle it specially. We can safely ignore it, since the started
« no previous file with comments | « tools/testing/dart/android.dart ('k') | tools/testing/dart/co19_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698