Skip to content

Commit 8b18cee

Browse files
PR updates
1 parent 0de9b9b commit 8b18cee

File tree

2 files changed

+15
-29
lines changed

2 files changed

+15
-29
lines changed

lib/src/goldens/golden_scenes.dart

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'dart:convert';
22
import 'dart:io';
3-
import 'dart:typed_data';
43
import 'dart:ui' as ui;
54

65
import 'package:flutter/rendering.dart';
@@ -23,10 +22,13 @@ GoldenCollection extractGoldenCollectionFromSceneFile(File file) {
2322
final scenePngBytes = file.readAsBytesSync();
2423

2524
// Extract scene metadata from PNG.
26-
final sceneMetadata = _extractGoldenSceneMetadataFromBytes(scenePngBytes);
27-
if (sceneMetadata == null) {
25+
final pngText = scenePngBytes.readTextMetadata();
26+
final sceneJsonText = pngText["flutter_test_goldens"];
27+
if (sceneJsonText == null) {
2828
throw Exception("Golden image is missing scene metadata: ${file.path}");
2929
}
30+
final sceneJson = JsonDecoder().convert(sceneJsonText);
31+
final sceneMetadata = GoldenSceneMetadata.fromJson(sceneJson);
3032

3133
// Decode PNG data to an image.
3234
final sceneImage = decodePng(scenePngBytes);
@@ -82,31 +84,6 @@ Future<GoldenCollection> extractGoldenCollectionFromSceneWidgetTree(
8284
return _extractCollectionFromScene(sceneMetadata, treeImage);
8385
}
8486

85-
/// Extracts then golden scene metadata within the given image [file].
86-
GoldenSceneMetadata extractGoldenSceneMetadataFromFile(File file) {
87-
// Read the scene PNG data into memory.
88-
final scenePngBytes = file.readAsBytesSync();
89-
90-
// Extract scene metadata from PNG.
91-
final sceneMetadata = _extractGoldenSceneMetadataFromBytes(scenePngBytes);
92-
if (sceneMetadata == null) {
93-
throw Exception("Golden image is missing scene metadata: ${file.path}");
94-
}
95-
96-
return sceneMetadata;
97-
}
98-
99-
GoldenSceneMetadata? _extractGoldenSceneMetadataFromBytes(Uint8List pngBytes) {
100-
// Extract scene metadata from PNG.
101-
final pngText = pngBytes.readTextMetadata();
102-
final sceneJsonText = pngText["flutter_test_goldens"];
103-
if (sceneJsonText == null) {
104-
return null;
105-
}
106-
final sceneJson = JsonDecoder().convert(sceneJsonText);
107-
return GoldenSceneMetadata.fromJson(sceneJson);
108-
}
109-
11087
GoldenCollection _extractCollectionFromScene(GoldenSceneMetadata sceneMetadata, Image sceneImage) {
11188
// Cut each golden image out of the scene.
11289
final goldenImages = <String, GoldenImage>{};

lib/src/scenes/gallery.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,16 @@ class Gallery {
461461
throw Exception("Can't compare goldens. Golden file doesn't exist: ${goldenFile.path}");
462462
}
463463
final goldenCollection = extractGoldenCollectionFromSceneFile(goldenFile);
464-
final metadata = extractGoldenSceneMetadataFromFile(goldenFile);
464+
465+
// Extract scene metadata from the existing golden file.
466+
final scenePngBytes = goldenFile.readAsBytesSync();
467+
final pngText = scenePngBytes.readTextMetadata();
468+
final sceneJsonText = pngText["flutter_test_goldens"];
469+
if (sceneJsonText == null) {
470+
throw Exception("Golden image is missing scene metadata: ${goldenFile.path}");
471+
}
472+
final sceneJson = JsonDecoder().convert(sceneJsonText);
473+
final metadata = GoldenSceneMetadata.fromJson(sceneJson);
465474

466475
// Extract scene metadata from the current widget tree.
467476
FtgLog.pipeline.fine("Extracting golden collection from current widget tree (screenshots).");

0 commit comments

Comments
 (0)