David PHAM-VAN

Fix isolate test

@@ -14,63 +14,32 @@ @@ -14,63 +14,32 @@
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 16
17 -import 'dart:async';  
18 import 'dart:io'; 17 import 'dart:io';
19 import 'dart:isolate'; 18 import 'dart:isolate';
20 -import 'dart:typed_data';  
21 19
22 import 'package:pdf/widgets.dart'; 20 import 'package:pdf/widgets.dart';
  21 +import 'package:test/test.dart';
23 22
24 import 'utils.dart'; 23 import 'utils.dart';
25 24
26 -class Message {  
27 - Message(this.image, this.sendPort);  
28 -  
29 - final Uint8List image;  
30 - final SendPort sendPort;  
31 -}  
32 -  
33 -void compute(Message message) {  
34 - final pdf = Document();  
35 -  
36 - final image = MemoryImage(  
37 - message.image,  
38 - );  
39 -  
40 - pdf.addPage(Page(build: (Context context) => Center(child: Image(image))));  
41 -  
42 - message.sendPort.send(pdf.save());  
43 -}  
44 -  
45 void main() { 25 void main() {
46 - noTest('Pdf Isolate', () async {  
47 - final completer = Completer<void>();  
48 - final receivePort = ReceivePort();  
49 -  
50 - receivePort.listen((dynamic data) async {  
51 - if (data is Uint8List) {  
52 - print('Received a ${data.length} bytes PDF');  
53 - final file = File('isolate.pdf');  
54 - await file.writeAsBytes(data);  
55 - print('File saved');  
56 - completer.complete();  
57 - }  
58 - });  
59 - 26 + test('Pdf Isolate', () async {
60 print('Download image'); 27 print('Download image');
61 final imageBytes = await download('https://www.nfet.net/nfet.jpg'); 28 final imageBytes = await download('https://www.nfet.net/nfet.jpg');
62 29
63 print('Generate PDF'); 30 print('Generate PDF');
64 - await Isolate.spawn<Message>(  
65 - compute,  
66 - Message(imageBytes, receivePort.sendPort),  
67 - ); 31 + // ignore: sdk_version_since
  32 + final data = await Isolate.run(() async {
  33 + final pdf = Document();
  34 + final image = MemoryImage(imageBytes);
  35 + pdf.addPage(
  36 + Page(build: (Context context) => Center(child: Image(image))));
  37 + return await pdf.save();
  38 + });
68 39
69 - print('Wait PDF to be generated');  
70 - await completer.future;  
71 - receivePort.close();  
72 - print('Done'); 40 + print('Generated a ${data.length} bytes PDF');
  41 + final file = File('isolate.pdf');
  42 + await file.writeAsBytes(data);
  43 + print('File saved');
73 }); 44 });
74 } 45 }
75 -  
76 -void noTest(String s, Future<void> Function() param1) {}