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 | |
5 | import 'package:flutter/services.dart'; |
6 | import 'package:flutter_test/flutter_test.dart'; |
7 | |
8 | import '../widgets/clipboard_utils.dart'; |
9 | |
10 | void 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 |