Skip to content

Commit 811ef11

Browse files
committed
add tests and fix stan
1 parent a871c21 commit 811ef11

15 files changed

+334
-159
lines changed

src/Concerns/InteractWithFiles.php

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -240,23 +240,22 @@ public function transformFile(Closure $transform): static
240240
{
241241

242242
TemporaryDirectory::callback(function ($temporaryDirectory) use ($transform) {
243+
/** Used to delete the old file at the end */
244+
$clone = clone $this;
243245

244-
if (
245-
! $this->path ||
246-
! $this->disk ||
247-
! $this->name
248-
) {
246+
$disk = $this->disk;
247+
$path = $this->path;
248+
$name = $this->name;
249+
250+
if (! $path || ! $disk || ! $name) {
249251
return $this;
250252
}
251253

252-
/** Used to delete the old file at the end */
253-
$clone = clone $this;
254-
255254
$storage = TemporaryDirectory::storage($temporaryDirectory);
256255

257256
$copy = $this->copyFileTo(
258257
disk: $storage,
259-
path: $this->path
258+
path: $path
260259
);
261260

262261
if (! $copy) {
@@ -269,15 +268,15 @@ public function transformFile(Closure $transform): static
269268
);
270269

271270
$result = $this->putFile(
272-
disk: $this->disk,
273-
destination: dirname($this->path),
271+
disk: $disk,
272+
destination: dirname($path),
274273
file: $file,
275-
name: $this->name
274+
name: $name
276275
);
277276

278277
if (
279278
$result &&
280-
$clone->path !== $this->path
279+
$clone->path !== $path
281280
) {
282281
$clone->deleteFile();
283282
}

src/Converters/Image/MediaSvgPlaceholderConverter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function convert(
6161
return $media->replaceConversion(new MediaConversion([
6262
'state' => MediaConversionState::Succeeded,
6363
'conversion_name' => $this->conversion,
64-
'content' => base64_encode($content),
64+
'contents' => base64_encode($content),
6565
'size' => filesize($output),
6666
]));
6767

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('extracts a frame from a video and resizes it into a jpg', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('videos/horizontal.mp4'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('frame');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->width)->toBe(10);
24+
expect($conversion->extension)->toBe('jpg');
25+
26+
});
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts and resizes an image into a jpg', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('images/1.jpg'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('jpg');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->width)->toBe(10);
24+
expect($conversion->height)->toBe(10);
25+
expect($conversion->extension)->toBe('jpg');
26+
27+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts an audio into a mp3', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('audios/bipbip.mp3'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('mp3');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->extension)->toBe('mp3');
24+
25+
});
26+
27+
it('extracts an audio from a mp4 into a mp3', function () {
28+
Storage::fake('media');
29+
30+
$model = new TestConverters;
31+
$model->save();
32+
33+
$media = $model->addMedia(
34+
file: $this->getTestFile('videos/horizontal.mp4'),
35+
disk: 'media'
36+
);
37+
38+
$conversion = $media->executeConversion('mp3');
39+
40+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
41+
expect($conversion->extension)->toBe('mp3');
42+
43+
});
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts and resizes a video into a mp4', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('videos/horizontal.mp4'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('mp4');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->width)->toBe(10);
24+
expect($conversion->extension)->toBe('mp4');
25+
26+
});
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts and resizes a pdf into a jpg', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('pdfs/dummy.pdf'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('pdf');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->width)->toBe(10);
24+
expect($conversion->height)->toBe(10);
25+
expect($conversion->extension)->toBe('jpg');
26+
27+
});
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts an image into a base64 svg placeholder', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('images/1.jpg'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('svg');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->contents)->not->toBe(null);
24+
expect($conversion->size)->not->toBe(null);
25+
26+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Elegantly\Media\Models\MediaConversion;
6+
use Elegantly\Media\Tests\Models\TestConverters;
7+
use Illuminate\Support\Facades\Storage;
8+
9+
it('converts an audio into a wav', function () {
10+
Storage::fake('media');
11+
12+
$model = new TestConverters;
13+
$model->save();
14+
15+
$media = $model->addMedia(
16+
file: $this->getTestFile('audios/bipbip.mp3'),
17+
disk: 'media'
18+
);
19+
20+
$conversion = $media->executeConversion('wav');
21+
22+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
23+
expect($conversion->extension)->toBe('wav');
24+
25+
});
26+
27+
it('extracts an audio from a mp4 into a wav', function () {
28+
Storage::fake('media');
29+
30+
$model = new TestConverters;
31+
$model->save();
32+
33+
$media = $model->addMedia(
34+
file: $this->getTestFile('videos/horizontal.mp4'),
35+
disk: 'media'
36+
);
37+
38+
$conversion = $media->executeConversion('wav');
39+
40+
expect($conversion)->toBeInstanceOf(MediaConversion::class);
41+
expect($conversion->extension)->toBe('wav');
42+
43+
});

tests/Feature/MediaConversionPdfPreviewTest.php

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)