flutter/packages/flutter_tools/test/base/context_test.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');
});
});
});
}