• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2016 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
5import 'package:flutter/foundation.dart';
6import 'package:flutter_test/flutter_test.dart';
7
8void main() {
9  test('stack manipulation: reportExpectCall', () {
10    try {
11      expect(false, isTrue);
12      throw 'unexpectedly did not throw';
13    } catch (e, stack) {
14      final List<DiagnosticsNode> information = <DiagnosticsNode>[];
15      expect(reportExpectCall(stack, information), 4);
16      final TextTreeRenderer renderer = TextTreeRenderer();
17      final List<String> lines = information.map((DiagnosticsNode node) => renderer.render(node).trimRight()).join('\n').split('\n');
18      expect(lines[0], 'This was caught by the test expectation on the following line:');
19      expect(lines[1], matches(r'^  .*stack_manipulation_test.dart line [0-9]+$'));
20    }
21
22    try {
23      throw null;
24    } catch (e, stack) {
25      final List<DiagnosticsNode> information = <DiagnosticsNode>[];
26      expect(reportExpectCall(stack, information), 0);
27      expect(information, isEmpty);
28    }
29  });
30}
31