1// Copyright 2014 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5import 'package:flutter/services.dart';
6import 'package:flutter_test/flutter_test.dart';
7
8import '../widgets/clipboard_utils.dart';
9
10void main() {
11 final MockClipboard mockClipboard = MockClipboard();
12 TestWidgetsFlutterBinding.ensureInitialized()
13 .defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, mockClipboard.handleMethodCall);
14
15 test('Clipboard.getData returns text', () async {
16 mockClipboard.clipboardData = <String, dynamic>{
17 'text': 'Hello world',
18 };
19
20 final ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
21
22 expect(data, isNotNull);
23 expect(data!.text, equals('Hello world'));
24 });
25
26 test('Clipboard.getData returns null', () async {
27 mockClipboard.clipboardData = null;
28
29 final ClipboardData? data = await Clipboard.getData(Clipboard.kTextPlain);
30
31 expect(data, isNull);
32 });
33
34 test('Clipboard.getData throws if text is missing', () async {
35 mockClipboard.clipboardData = <String, dynamic>{};
36
37 expect(() => Clipboard.getData(Clipboard.kTextPlain), throwsA(isA<TypeError>()));
38 });
39
40 test('Clipboard.getData throws if text is null', () async {
41 mockClipboard.clipboardData = <String, dynamic>{
42 'text': null,
43 };
44
45 expect(() => Clipboard.getData(Clipboard.kTextPlain), throwsA(isA<TypeError>()));
46 });
47
48 test('Clipboard.setData sets text', () async {
49 await Clipboard.setData(const ClipboardData(text: 'Hello world'));
50
51 expect(mockClipboard.clipboardData, <String, dynamic>{
52 'text': 'Hello world',
53 });
54 });
55}
56

Provided by KDAB

Privacy Policy
Learn more about Flutter for embedded and desktop on industrialflutter.com