annotated_region_test.dart 1.52 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5 6 7 8 9
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';

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