Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## 0.23.2

- Allow `package:analyzer` range to accept `^9.0.0` too.
- Fix issue where screenshots with same filenames but located in different subdirectories were overwriting each other during processing.

## 0.23.1

Expand Down
18 changes: 13 additions & 5 deletions lib/src/screenshots.dart
Original file line number Diff line number Diff line change
Expand Up @@ -140,21 +140,29 @@ Future<ScreenshotResult> _processScreenshot(
p.Screenshot e,
String tempDir,
) async {
final basename = path.basenameWithoutExtension(e.path);
final webpName = '$basename.webp';
final nameWithNoExt = path.withoutExtension(e.path);
final webpName = '$nameWithNoExt.webp';
final pngName = '$nameWithNoExt.png';

final genDir = 'gen';
final thumbnail100Dir = path.join(genDir, '100x100');
final thumbnail190Dir = path.join(genDir, '190x190');
final webpPath = path.join(genDir, webpName);
final webp100ThumbnailPath = path.join(thumbnail100Dir, webpName);
final webp190ThumbnailPath = path.join(thumbnail190Dir, webpName);
final pngName = '$basename.png';
final png100ThumbnailPath = path.join(thumbnail100Dir, pngName);
final png190ThumbnailPath = path.join(thumbnail190Dir, pngName);
final originalPath = path.join(pkgDir, e.path);

Directory(path.join(tempDir, thumbnail100Dir)).createSync(recursive: true);
Directory(path.join(tempDir, thumbnail190Dir)).createSync(recursive: true);
Directory(
path.join(tempDir, path.dirname(webpPath)),
).createSync(recursive: true);
Directory(
path.join(tempDir, path.dirname(webp100ThumbnailPath)),
).createSync(recursive: true);
Directory(
path.join(tempDir, path.dirname(webp190ThumbnailPath)),
).createSync(recursive: true);

final webpScreenshotProblems = await _generateWebpScreenshot(
originalPath,
Expand Down
20 changes: 20 additions & 0 deletions test/screenshot_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,26 @@ void main() {
);
});

test('same name screenshots are not overridden', () async {
if (!hasWebpTools) return;

final pkgDir = _testImagesDir;
final s = Screenshot('description', 'static.webp');
final s2 = Screenshot('description', 's2/static.webp');

final result = await processAllScreenshots([s, s2], pkgDir);

expect(result.length, 2);
expect(result[0].problems, isEmpty);
expect(result[0].processedScreenshot, isNotNull);
expect(result[1].problems, isEmpty);
expect(result[1].processedScreenshot, isNotNull);
expect(
result[0].processedScreenshot!.webpImage,
isNot(equals(result[1].processedScreenshot!.webpImage)),
);
}, skip: !hasWebpTools);

test('success - process WebP, PNG and GIFs', () async {
if (!hasWebpTools) return;
final pkgDir = _testImagesDir;
Expand Down
Binary file added test/testImages/s2/static.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading