| // Copyright 2017 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_test/flutter_test.dart'; |
| import 'package:flutter/rendering.dart'; |
| import 'package:flutter/widgets.dart'; |
| |
| import 'semantics_tester.dart'; |
| |
| void main() { |
| testWidgets('Vertical gesture detector has up/down actions', (WidgetTester tester) async { |
| final SemanticsTester semantics = new SemanticsTester(tester); |
| |
| int callCount = 0; |
| final GlobalKey detectorKey = new GlobalKey(); |
| |
| await tester.pumpWidget( |
| new Center( |
| child: new GestureDetector( |
| key: detectorKey, |
| onVerticalDragStart: (DragStartDetails _) { |
| callCount += 1; |
| }, |
| child: new Container(), |
| ), |
| ) |
| ); |
| |
| expect(semantics, includesNodeWith( |
| actions: <SemanticsAction>[SemanticsAction.scrollUp, SemanticsAction.scrollDown]) |
| ); |
| |
| final int detectorId = detectorKey.currentContext.findRenderObject().debugSemantics.id; |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollLeft); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollRight); |
| expect(callCount, 0); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollUp); |
| expect(callCount, 1); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollDown); |
| expect(callCount, 2); |
| |
| semantics.dispose(); |
| }); |
| |
| testWidgets('Horizontal gesture detector has up/down actions', (WidgetTester tester) async { |
| final SemanticsTester semantics = new SemanticsTester(tester); |
| |
| int callCount = 0; |
| final GlobalKey detectorKey = new GlobalKey(); |
| |
| await tester.pumpWidget( |
| new Center( |
| child: new GestureDetector( |
| key: detectorKey, |
| onHorizontalDragStart: (DragStartDetails _) { |
| callCount += 1; |
| }, |
| child: new Container(), |
| ), |
| ) |
| ); |
| |
| expect(semantics, includesNodeWith( |
| actions: <SemanticsAction>[SemanticsAction.scrollLeft, SemanticsAction.scrollRight]) |
| ); |
| |
| final int detectorId = detectorKey.currentContext.findRenderObject().debugSemantics.id; |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollUp); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollDown); |
| expect(callCount, 0); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollLeft); |
| expect(callCount, 1); |
| tester.binding.pipelineOwner.semanticsOwner.performAction(detectorId, SemanticsAction.scrollRight); |
| expect(callCount, 2); |
| |
| semantics.dispose(); |
| }); |
| } |