Skip to content

Commit 3060bce

Browse files
authored
Namespace can contain slashes (subfolders), tests correction (#39)
1 parent 5594e97 commit 3060bce

3 files changed

Lines changed: 49 additions & 23 deletions

File tree

src/ImageNameScript.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static function fromIdentifier(string $identifier): ImageNameScript
5555

5656
public static function fromName(string $name): ImageNameScript
5757
{
58-
$pattern = preg_replace('/__file__/', '([^\/]*)\/([^\/]*)\/(.*?)', self::PATTERN);
58+
$pattern = preg_replace('/__file__/', '(.*)\/([^\/]{2})\/(.*?)', self::PATTERN);
5959
preg_match($pattern, $name, $matches);
6060

6161
$script = new self($matches[0]);

tests/cases/ImageNameScriptTest.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,45 @@ final class ImageNameScriptTest extends BaseTestCase
1313

1414
public function testFromName(): void
1515
{
16-
$s = ImageNameScript::fromName('/data/images/ed/kitty.100x200.fill.q100.jpg');
16+
$s = ImageNameScript::fromName('images/49/kitty.100x200.fill.q100.jpg');
1717

18-
Assert::same($s->original, '/data/images/ed/kitty.jpg');
19-
Assert::same($s->prefix, 'data');
20-
Assert::same($s->name, 'images/ed/kitty');
18+
Assert::same($s->original, 'images/49/kitty.jpg');
19+
Assert::same($s->namespace, 'images');
20+
Assert::same($s->prefix, '49');
21+
Assert::same($s->name, 'kitty');
2122
Assert::same($s->flag, 'fill');
2223
Assert::same($s->quality, '100');
2324
Assert::same($s->size, [100, 200]);
2425
Assert::same($s->extension, 'jpg');
2526
Assert::same($s->crop, []);
2627

27-
$s = ImageNameScript::fromName('/data/images/ed/kitty.200x200crop100x150x100x100.fit.q85.jpg');
28+
$s = ImageNameScript::fromName('images/10/20/49/kitty.100x200.fill.q100.jpg');
29+
30+
Assert::same($s->original, 'images/10/20/49/kitty.jpg');
31+
Assert::same($s->namespace, 'images/10/20');
32+
Assert::same($s->prefix, '49');
33+
Assert::same($s->name, 'kitty');
34+
Assert::same($s->flag, 'fill');
35+
Assert::same($s->quality, '100');
36+
Assert::same($s->size, [100, 200]);
37+
Assert::same($s->extension, 'jpg');
38+
Assert::same($s->crop, []);
39+
40+
$s = ImageNameScript::fromName('/data/images/49/kitty.200x200crop100x150x100x100.fit.q85.jpg');
2841
Assert::same($s->crop, [100, 150, 100, 100]);
2942
}
3043

3144

3245
public function testFromIdentifier(): void
3346
{
34-
$s = ImageNameScript::fromIdentifier('images/ed/kitty.jpg');
47+
$s = ImageNameScript::fromIdentifier('images/49/kitty.jpg');
3548

3649
$s->setQuality(2);
3750
$s->setSize([2, 2]);
3851
$s->setFlag('exact');
3952

40-
Assert::same($s->getIdentifier(), 'images/ed/kitty.2x2.exact.q2.jpg');
41-
Assert::same($s->toQuery(), 'images/ed/2x2.exact.q2/kitty.jpg?_image_storage');
53+
Assert::same($s->getIdentifier(), 'images/49/kitty.2x2.exact.q2.jpg');
54+
Assert::same($s->toQuery(), 'images/49/2x2.exact.q2/kitty.jpg?_image_storage');
4255
}
4356

4457
}

tests/cases/ImageStorageTest.php

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,32 +58,45 @@ public function tearDown(): void
5858
public function testDelete(): void
5959
{
6060
$files = __DIR__ . '/../data/files';
61-
@mkdir($files . '/a', 0777, true);
61+
@mkdir($files . '/49', 0777, true);
6262

6363
$file_array = [
64-
sprintf('%s/a/kitty.100x100.fit.q85.jpg', $files),
65-
sprintf('%s/a/kitty.100x200.fit.q85.jpg', $files),
66-
sprintf('%s/a/kitty.100x200.exact.q85.jpg', $files),
67-
sprintf('%s/a/kitty.100x200.shrink_only.q85.jpg', $files),
68-
sprintf('%s/a/kitty.100x200.fill.q1.jpg', $files),
69-
sprintf('%s/a/kitty.100x200.stretch.q85.jpg', $files),
70-
sprintf('%s/a/kitty.100x200.fill.q10.jpg', $files),
71-
sprintf('%s/a/kitty.200x200crop100x150x100x100.fit.q85.jpg', $files),
72-
sprintf('%s/a/kitty.100x200.fill.q100.jpg', $files),
73-
sprintf('%s/a/kitty.20x20.fit.q85.jpg', $files),
74-
sprintf('%s/a/kitty.100x200.fill.q85.jpg', $files),
75-
sprintf('%s/a/kitty.jpg', $files),
64+
sprintf('%s/49/kitty.100x100.fit.q85.jpg', $files),
65+
sprintf('%s/49/kitty.100x200.fit.q85.jpg', $files),
66+
sprintf('%s/49/kitty.100x200.exact.q85.jpg', $files),
67+
sprintf('%s/49/kitty.100x200.shrink_only.q85.jpg', $files),
68+
sprintf('%s/49/kitty.100x200.fill.q1.jpg', $files),
69+
sprintf('%s/49/kitty.100x200.stretch.q85.jpg', $files),
70+
sprintf('%s/49/kitty.100x200.fill.q10.jpg', $files),
71+
sprintf('%s/49/kitty.200x200crop100x150x100x100.fit.q85.jpg', $files),
72+
sprintf('%s/49/kitty.100x200.fill.q100.jpg', $files),
73+
sprintf('%s/49/kitty.20x20.fit.q85.jpg', $files),
74+
sprintf('%s/49/kitty.100x200.fill.q85.jpg', $files),
75+
sprintf('%s/49/kitty.jpg', $files),
7676
];
7777

7878
foreach ($file_array as $name) {
7979
touch($name);
8080
}
8181

82-
$this->storage->delete('files/a/kitty.jpg');
82+
$this->storage->delete('files/49/kitty.jpg');
8383

8484
foreach ($file_array as $name) {
8585
Assert::falsey(file_exists($name));
8686
}
87+
88+
foreach ($file_array as $name) {
89+
touch($name);
90+
}
91+
92+
$this->storage->delete('files/49/kitty.jpg', true);
93+
94+
$originalImage = array_pop($file_array);
95+
foreach ($file_array as $name) {
96+
Assert::falsey(file_exists($name));
97+
}
98+
99+
Assert::truthy(file_exists($originalImage));
87100
}
88101

89102

0 commit comments

Comments
 (0)