// 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/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; class _TestBinding extends BindingBase with SchedulerBinding, ServicesBinding { @override Future initializationComplete() async { return super.initializationComplete(); } @override TestDefaultBinaryMessenger get defaultBinaryMessenger => super.defaultBinaryMessenger as TestDefaultBinaryMessenger; @override TestDefaultBinaryMessenger createBinaryMessenger() { Future keyboardHandler(ByteData? message) async { return const StandardMethodCodec().encodeSuccessEnvelope({1: 1}); } return TestDefaultBinaryMessenger( super.createBinaryMessenger(), outboundHandlers: {'flutter/keyboard': keyboardHandler}, ); } } void main() { final binding = _TestBinding(); test('can send message on completion of binding initialization', () async { var called = false; binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, ( MethodCall method, ) async { if (method.method == 'System.initializationComplete') { called = true; } return null; }); await binding.initializationComplete(); expect(called, isTrue); }); }