File: utils.dart

package info (click to toggle)
kddockwidgets 2.4.0%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,412 kB
  • sloc: cpp: 50,019; ansic: 765; python: 239; xml: 61; makefile: 14; sh: 7
file content (40 lines) | stat: -rw-r--r-- 1,259 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
  This file is part of KDDockWidgets.

  SPDX-FileCopyrightText: 2024 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
  Author: Sérgio Martins <sergio.martins@kdab.com>

  SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only

  Contact KDAB at <info@kdab.com> for commercial licensing options.
*/

import 'dart:io';
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart';

Map<String, int> _s_count = {};

String _screenshotDirectory() {
  return '${Directory(Platform.script.toFilePath()).parent.path}/../reference-images/images/flutter';
}

Future<void> saveScreenShot(WidgetTester tester,
    {required String prefix}) async {
  final renderObject = tester.firstRenderObject(find.byType(RepaintBoundary));
  final image =
      await (renderObject as RenderRepaintBoundary).toImage(pixelRatio: 2);

  final byteDataFuture = image.toByteData(format: ImageByteFormat.png);
  final byteData = await byteDataFuture;
  final buffer = byteData!.buffer.asUint8List();

  _s_count[prefix] = (_s_count[prefix] ?? 0) + 1;

  final file =
      File('${_screenshotDirectory()}/${prefix}_${_s_count[prefix]}.png');
  file.writeAsBytesSync(buffer);
}