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

Side by Side Diff: mojo/dart/apptest/apptest/apptest.dart

Issue 1132063007: Rationalize Dart mojo and sky package structure (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « mojo/dart/apptest/BUILD.gn ('k') | mojo/dart/apptest/lib/apptest.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 library apptest;
6
7 import 'dart:async';
8
9 import 'package:mojo/public/dart/application.dart';
10 import 'package:mojo/public/dart/bindings.dart';
11 import 'package:mojo/public/dart/core.dart';
12
13 // Import and reexport the unittest package. We are a *.dartzip file designed to
14 // be linked into your_apptest.mojo file and are your main entrypoint.
15 import 'package:unittest/unittest.dart';
16 export 'package:unittest/unittest.dart';
17
18 // This class is an application that does nothing but tears down the connections
19 // between each test.
20 class _ConnectionToShellApplication extends Application {
21 final List<Function> _testFunctions;
22
23 _ConnectionToShellApplication.fromHandle(
24 MojoHandle handle, this._testFunctions)
25 : super.fromHandle(handle);
26
27 // Only run the test suite passed in once we have received an initialize()
28 // call from the shell. We need to first have a valid connection to the shell
29 // so that apptests can connect to other applications.
30 void initialize(List<String> args, String url) {
31 _testFunctions.forEach((f) => f(this, url));
32 }
33 }
34
35 // A configuration which properly shuts down our application at the end.
36 class _CleanShutdownConfiguration extends SimpleConfiguration {
37 final _ConnectionToShellApplication _application;
38
39 _CleanShutdownConfiguration(this._application) : super() {}
40
41 Duration timeout = const Duration(seconds: 10);
42
43 void onTestResult(TestCase externalTestCase) {
44 super.onTestResult(externalTestCase);
45 _application.resetConnections();
46 }
47
48 void onDone(bool success) {
49 closeApplication();
50 super.onDone(success);
51 }
52
53 Future closeApplication() async {
54 await _application.close();
55 assert(MojoHandle.reportLeakedHandles());
56 }
57 }
58
59 // The public interface to apptests.
60 //
61 // In a dart mojo application, |incoming_handle| is args[0]. |testFunction| is a
62 // list of functions that actually contains your testing code, and will pass
63 // back an application to each of them.
64 runAppTests(var incomingHandle, List<Function> testFunction) {
65 var appHandle = new MojoHandle(incomingHandle);
66 var application =
67 new _ConnectionToShellApplication.fromHandle(appHandle, testFunction);
68 unittestConfiguration = new _CleanShutdownConfiguration(application);
69 }
OLDNEW
« no previous file with comments | « mojo/dart/apptest/BUILD.gn ('k') | mojo/dart/apptest/lib/apptest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698