annotated_region_test.dart 1.48 KB
Newer Older
1 2 3 4
// Copyright 2018 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.

5 6
import 'dart:ui' show window;

7 8 9 10 11
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
12
  testWidgets('provides a value to the layer tree', (WidgetTester tester) async {
13 14
    await tester.pumpWidget(
      const AnnotatedRegion<int>(
15
        child: SizedBox(width: 100.0, height: 100.0),
16 17 18 19
        value: 1,
      ),
    );
    final List<Layer> layers = tester.layers;
20 21
    final AnnotatedRegionLayer<int> layer =
        layers.firstWhere((Layer layer) => layer is AnnotatedRegionLayer<int>);
22 23
    expect(layer.value, 1);
  });
24
  testWidgets('provides a value to the layer tree in a particular region', (WidgetTester tester) async {
25 26 27 28 29 30 31 32 33
    await tester.pumpWidget(
      Transform.translate(
        offset: const Offset(25.0, 25.0),
        child: const AnnotatedRegion<int>(
          child: SizedBox(width: 100.0, height: 100.0),
          value: 1,
        ),
      ),
    );
34
    int result = RendererBinding.instance.renderView.debugLayer.find<int>(Offset(
35 36
      10.0 * window.devicePixelRatio,
      10.0 * window.devicePixelRatio,
37
    ));
38
    expect(result, null);
39
    result = RendererBinding.instance.renderView.debugLayer.find<int>(Offset(
40 41
      50.0 * window.devicePixelRatio,
      50.0 * window.devicePixelRatio,
42
    ));
43 44
    expect(result, 1);
  });
45
}