Skip to content

Commit c711b6f

Browse files
Merge pull request #34 from kiwilan/develop
v2.1.01
2 parents eaacae4 + 4313cc4 commit c711b6f

File tree

8 files changed

+32
-4
lines changed

8 files changed

+32
-4
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "kiwilan/php-archive",
3-
"version": "2.1.0",
3+
"version": "2.1.01",
44
"description": "PHP package to handle archives (.zip, .rar, .tar, .7z) or .pdf with hybrid solution (native/p7zip), designed to works with eBooks (.epub, .cbz, .cbr, .cb7, .cbt).",
55
"keywords": [
66
"php",

src/Models/PdfMeta.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ public function __construct(
2020
) {
2121
}
2222

23-
public static function make(array $details): self
23+
public static function make(?array $details): self
2424
{
25+
if (! $details) {
26+
return new self();
27+
}
28+
2529
$title = $details['Title'] ?? null;
2630
$author = $details['Author'] ?? null;
2731
$subject = $details['Subject'] ?? null;
@@ -49,6 +53,10 @@ public static function make(array $details): self
4953
pages: $pages,
5054
);
5155

56+
if (! $keywords) {
57+
return $self;
58+
}
59+
5260
if (is_array($keywords)) {
5361
$keywords = implode(',', $keywords);
5462
}

tests/PdfTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?php
22

33
use Kiwilan\Archive\Archive;
4+
use Kiwilan\Archive\Enums\ArchiveEnum;
5+
use Kiwilan\Archive\Readers\ArchivePdf;
46

57
beforeEach(function () {
68
recurseRmdir(outputPath());
@@ -64,3 +66,19 @@
6466
expect($pdf->toArray())->toBeArray();
6567
expect($pdf->toJson())->toBeString();
6668
});
69+
70+
it('can read empty pdf', function () {
71+
$archive = Archive::read(PDF_EMPTY);
72+
73+
expect($archive)->toBeInstanceOf(ArchivePdf::class);
74+
expect($archive->getType())->toBe(ArchiveEnum::pdf);
75+
});
76+
77+
it('can read simple pdf', function () {
78+
$archive = Archive::read(PDF_SIMPLE);
79+
ray($archive);
80+
81+
expect($archive)->toBeInstanceOf(ArchivePdf::class);
82+
expect($archive->getPdf()->getTitle())->toBeString();
83+
expect($archive->getType())->toBe(ArchiveEnum::pdf);
84+
});

tests/Pest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
define('TARBZ2', __DIR__.'/media/archive.tar.bz2');
88
define('TARGZ', __DIR__.'/media/archive.tar.gz');
99
define('ZIP', __DIR__.'/media/archive.zip');
10-
define('PDF', __DIR__.'/media/example.pdf');
10+
define('PDF', __DIR__.'/media/pdf-example.pdf');
11+
define('PDF_SIMPLE', __DIR__.'/media/pdf-simple.pdf');
12+
define('PDF_EMPTY', __DIR__.'/media/pdf-empty.pdf');
1113

1214
define('ARCHIVES', [
1315
'SEVENZIP' => SEVENZIP,

tests/media/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ exiftool \
3737
-Producer="Vue" \
3838
-Subject="Vue3 Composition API" \
3939
-Title="Vue3 Composition API" \
40-
"./example.pdf"
40+
"./pdf-example.pdf"
4141
```
4242

4343
```bash

tests/media/pdf-empty.pdf

11.1 KB
Binary file not shown.

tests/media/pdf-simple.pdf

16.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)