mirror of
https://github.com/flutter/flutter
synced 2024-10-14 04:02:56 +00:00
103 lines
3.4 KiB
Dart
103 lines
3.4 KiB
Dart
// Copyright 2016 The Chromium 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_tools/src/base/context.dart' hide context;
|
|
import 'package:flutter_tools/src/base/context.dart' as pkg;
|
|
import 'package:flutter_tools/src/base/logger.dart';
|
|
import 'package:flutter_tools/src/globals.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
group('AppContext', () {
|
|
test('error', () async {
|
|
final AppContext context = new AppContext();
|
|
final BufferLogger mockLogger = new BufferLogger();
|
|
context.setVariable(Logger, mockLogger);
|
|
|
|
await context.runInZone(() {
|
|
printError('foo bar');
|
|
});
|
|
|
|
expect(mockLogger.errorText, 'foo bar\n');
|
|
expect(mockLogger.statusText, '');
|
|
expect(mockLogger.traceText, '');
|
|
});
|
|
|
|
test('status', () async {
|
|
final AppContext context = new AppContext();
|
|
final BufferLogger mockLogger = new BufferLogger();
|
|
context.setVariable(Logger, mockLogger);
|
|
|
|
await context.runInZone(() {
|
|
printStatus('foo bar');
|
|
});
|
|
|
|
expect(mockLogger.errorText, '');
|
|
expect(mockLogger.statusText, 'foo bar\n');
|
|
expect(mockLogger.traceText, '');
|
|
});
|
|
|
|
test('trace', () async {
|
|
final AppContext context = new AppContext();
|
|
final BufferLogger mockLogger = new BufferLogger();
|
|
context.setVariable(Logger, mockLogger);
|
|
|
|
await context.runInZone(() {
|
|
printTrace('foo bar');
|
|
});
|
|
|
|
expect(mockLogger.errorText, '');
|
|
expect(mockLogger.statusText, '');
|
|
expect(mockLogger.traceText, 'foo bar\n');
|
|
});
|
|
|
|
test('awaitNestedZones', () async {
|
|
final AppContext outerContext = new AppContext();
|
|
await outerContext.runInZone(() async {
|
|
final AppContext middleContext = new AppContext();
|
|
await middleContext.runInZone(() async {
|
|
final AppContext innerContext = new AppContext();
|
|
await innerContext.runInZone(() async {
|
|
expect(innerContext.getVariable(String), isNull);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
test('fireAndForgetNestedZones', () async {
|
|
final AppContext outerContext = new AppContext();
|
|
outerContext.runInZone(() async {
|
|
final AppContext middleContext = new AppContext();
|
|
middleContext.runInZone(() async {
|
|
final AppContext innerContext = new AppContext();
|
|
innerContext.runInZone(() async {
|
|
expect(innerContext.getVariable(String), isNull);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
test('overriddenValuesInNestedZones', () async {
|
|
expect(pkg.context, isNull);
|
|
final AppContext outerContext = new AppContext();
|
|
outerContext.setVariable(String, 'outer');
|
|
outerContext.runInZone(() async {
|
|
expect(pkg.context[String], 'outer');
|
|
final AppContext middleContext = new AppContext();
|
|
middleContext.setVariable(String, 'middle');
|
|
middleContext.runInZone(() async {
|
|
expect(pkg.context[String], 'middle');
|
|
final AppContext innerContext = new AppContext();
|
|
innerContext.setVariable(String, 'inner');
|
|
innerContext.runInZone(() async {
|
|
expect(pkg.context[String], 'inner');
|
|
});
|
|
expect(pkg.context[String], 'middle');
|
|
});
|
|
expect(pkg.context[String], 'outer');
|
|
});
|
|
});
|
|
});
|
|
}
|