blob: f6b53af1c2d1f0431c48c98c67b2a0e61a836734 [file] [log] [blame]
// Copyright 2017 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 'dart:async';
import 'dart:io' as io;
import 'package:fidl_fuchsia_examples_hello/fidl_async.dart';
import 'package:fidl_fuchsia_sys/fidl_async.dart';
import 'package:fuchsia_services/services.dart';
import 'package:test/test.dart';
void main(List<String> args) {
final StartupContext context = StartupContext.fromStartupInfo();
LauncherProxy launcher;
setUp(() {
launcher = LauncherProxy();
context.incoming.connectToService(launcher);
});
tearDown(() {
launcher.ctrl.close();
launcher = null;
});
// TODO(rosswang): nested environments and determinism
test('schedule delayed futures',
() => Future<Null>.delayed(const Duration(seconds: 1)));
test('start hello_dart', () async {
const LaunchInfo info = LaunchInfo(
url:
'fuchsia-pkg://fuchsia.com/hello_dart_jit#meta/hello_dart_jit.cmx');
await launcher.createComponent(
info, ComponentControllerProxy().ctrl.request());
});
test('communicate with a fidl service (hello_app_dart)', () async {
final HelloProxy service = HelloProxy();
final incoming = Incoming();
final ComponentControllerProxy actl = ComponentControllerProxy();
final LaunchInfo info = LaunchInfo(
url:
'fuchsia-pkg://fuchsia.com/hello_app_dart_jit#meta/hello_app_dart_jit.cmx',
directoryRequest: incoming.request().passChannel());
await launcher.createComponent(info, actl.ctrl.request());
incoming.connectToService(service);
expect(await service.say('hello'), equals('hola from Dart!'));
actl.ctrl.close();
});
test('dart:io exit() throws UnsupportedError', () {
expect(() => io.exit(-1), throwsUnsupportedError);
});
}