| Index: lib/src/group_context.dart
|
| diff --git a/lib/src/group_context.dart b/lib/src/group_context.dart
|
| index d44b6cd3fec4a21a7c82ab2795b99fa5cd06e5ce..78f347b4d32328caddb35b7ab6f542de4204d5f2 100644
|
| --- a/lib/src/group_context.dart
|
| +++ b/lib/src/group_context.dart
|
| @@ -1,65 +1,75 @@
|
| -part of unittest;
|
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +library unittest.group_context;
|
| +
|
| +import 'dart:async';
|
| +
|
| +import '../unittest.dart';
|
|
|
| /// Setup and teardown functions for a group and its parents, the latter
|
| /// for chaining.
|
| -class _GroupContext {
|
| - final _GroupContext parent;
|
| +class GroupContext {
|
| + /// The parent context, or `null`.
|
| + final GroupContext parent;
|
| +
|
| + /// Whether this is the root context.
|
| + bool get isRoot => parent == null;
|
|
|
| /// Description text of the current test group.
|
| final String _name;
|
|
|
| - /// Setup function called before each test in a group.
|
| - Function _testSetup;
|
| -
|
| - get testSetup => _testSetup;
|
| -
|
| - get parentSetup => (parent == null) ? null : parent.testSetup;
|
| + /// The set-up function called before each test in a group.
|
| + Function get testSetUp => _testSetUp;
|
| + Function _testSetUp;
|
|
|
| - set testSetup(Function setup) {
|
| - var preSetup = parentSetup;
|
| - if (preSetup == null) {
|
| - _testSetup = setup;
|
| - } else {
|
| - _testSetup = () {
|
| - var f = preSetup();
|
| - if (f is Future) {
|
| - return f.then((_) => setup());
|
| - } else {
|
| - return setup();
|
| - }
|
| - };
|
| + set testSetUp(Function setUp) {
|
| + if (parent == null || parent.testSetUp == null) {
|
| + _testSetUp = setUp;
|
| + return;
|
| }
|
| - }
|
| -
|
| - /// Teardown function called after each test in a group.
|
| - Function _testTeardown;
|
|
|
| - get testTeardown => _testTeardown;
|
| + _testSetUp = () {
|
| + var f = parent.testSetUp();
|
| + if (f is Future) {
|
| + return f.then((_) => setUp());
|
| + } else {
|
| + return setUp();
|
| + }
|
| + };
|
| + }
|
|
|
| - get parentTeardown => (parent == null) ? null : parent.testTeardown;
|
| + /// The tear-down function called after each test in a group.
|
| + Function get testTearDown => _testTearDown;
|
| + Function _testTearDown;
|
|
|
| - set testTeardown(Function teardown) {
|
| - var postTeardown = parentTeardown;
|
| - if (postTeardown == null) {
|
| - _testTeardown = teardown;
|
| - } else {
|
| - _testTeardown = () {
|
| - var f = teardown();
|
| - if (f is Future) {
|
| - return f.then((_) => postTeardown());
|
| - } else {
|
| - return postTeardown();
|
| - }
|
| - };
|
| + set testTearDown(Function tearDown) {
|
| + if (parent == null || parent.testTearDown == null) {
|
| + _testTearDown = tearDown;
|
| + return;
|
| }
|
| +
|
| + _testTearDown = () {
|
| + var f = tearDown();
|
| + if (f is Future) {
|
| + return f.then((_) => parent.testTearDown());
|
| + } else {
|
| + return parent.testTearDown();
|
| + }
|
| + };
|
| }
|
|
|
| - String get fullName => (parent == null || parent == _environment.rootContext)
|
| - ? _name
|
| - : "${parent.fullName}$groupSep$_name";
|
| + /// Returns the fully-qualified name of this context.
|
| + String get fullName =>
|
| + (isRoot || parent.isRoot) ? _name : "${parent.fullName}$groupSep$_name";
|
| +
|
| + GroupContext.root()
|
| + : parent = null,
|
| + _name = '';
|
|
|
| - _GroupContext([this.parent, this._name = '']) {
|
| - _testSetup = parentSetup;
|
| - _testTeardown = parentTeardown;
|
| + GroupContext(this.parent, this._name) {
|
| + _testSetUp = parent.testSetUp;
|
| + _testTearDown = parent.testTearDown;
|
| }
|
| }
|
|
|