// Copyright 2014 The Flutter 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/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); final log = []; Future verify(AsyncCallback test, List expectations) async { log.clear(); await test(); expect(log, expectations); } group( 'not on web', () { test('disableContextMenu asserts', () async { try { BrowserContextMenu.disableContextMenu(); } catch (error) { expect(error, isAssertionError); } }); test('enableContextMenu asserts', () async { try { BrowserContextMenu.enableContextMenu(); } catch (error) { expect(error, isAssertionError); } }); }, skip: kIsWeb, // [intended] ); group( 'on web', () { group('disableContextMenu', () { // Make sure the context menu is enabled (default) after the test. tearDown(() async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, (MethodCall methodCall) { return null; }); await BrowserContextMenu.enableContextMenu(); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, null); }); test('disableContextMenu calls its platform channel method', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, (MethodCall methodCall) async { log.add(methodCall); return null; }); await verify(BrowserContextMenu.disableContextMenu, [ isMethodCall('disableContextMenu', arguments: null), ]); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, null); }); }); group('enableContextMenu', () { test('enableContextMenu calls its platform channel method', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, (MethodCall methodCall) async { log.add(methodCall); return null; }); await verify(BrowserContextMenu.enableContextMenu, [ isMethodCall('enableContextMenu', arguments: null), ]); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(SystemChannels.contextMenu, null); }); }); }, skip: !kIsWeb, // [intended] ); }