Skip to content

Commit 7b0238b

Browse files
committed
Merge remote-tracking branch 'l3/MC-41728' into PR-L3-20210405
2 parents 1432669 + 82f89f5 commit 7b0238b

File tree

4 files changed

+146
-2
lines changed

4 files changed

+146
-2
lines changed

app/code/Magento/MediaGalleryMetadata/Model/Png/Segment/ReadXmp.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public function execute(FileInterface $file): MetadataInterface
7070
private function isXmpSegment(SegmentInterface $segment): bool
7171
{
7272
return $segment->getName() === self::XMP_SEGMENT_NAME
73-
&& strpos($segment->getData(), '<x:xmpmeta') !== -1;
73+
&& strpos($segment->getData(), '<x:xmpmeta') !== false;
7474
}
7575

7676
/**

app/code/Magento/MediaGalleryMetadata/Model/Png/Segment/WriteXmp.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ private function updateSegment(SegmentInterface $segment, MetadataInterface $met
152152
private function isXmpSegment(SegmentInterface $segment): bool
153153
{
154154
return $segment->getName() === self::XMP_SEGMENT_NAME
155-
&& strpos($segment->getData(), '<x:xmpmeta') !== -1;
155+
&& strpos($segment->getData(), '<x:xmpmeta') !== false;
156156
}
157157

158158
/**
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\MediaGalleryMetadata\Test\Integration\Model\Png\Segment;
9+
10+
use Magento\Framework\App\Filesystem\DirectoryList;
11+
use Magento\Framework\Exception\LocalizedException;
12+
use Magento\Framework\Filesystem;
13+
use Magento\Framework\Filesystem\Directory\WriteInterface;
14+
use Magento\Framework\Filesystem\DriverInterface;
15+
use Magento\TestFramework\Helper\Bootstrap;
16+
use PHPUnit\Framework\TestCase;
17+
use Magento\MediaGalleryMetadata\Model\Png\Segment\WriteXmp;
18+
use Magento\MediaGalleryMetadata\Model\Png\Segment\ReadXmp;
19+
use Magento\MediaGalleryMetadata\Model\Png\ReadFile;
20+
use Magento\MediaGalleryMetadata\Model\MetadataFactory;
21+
22+
/**
23+
* Test for Xmp reader and writer
24+
*/
25+
class XmpTest extends TestCase
26+
{
27+
/**
28+
* @var WriteXmp
29+
*/
30+
private $xmpWriter;
31+
32+
/**
33+
* @var ReadXmp
34+
*/
35+
private $xmpReader;
36+
37+
/**
38+
* @var DriverInterface
39+
*/
40+
private $driver;
41+
42+
/**
43+
* @var ReadFile
44+
*/
45+
private $fileReader;
46+
47+
/**
48+
* @var MetadataFactory
49+
*/
50+
private $metadataFactory;
51+
52+
/**
53+
* @var WriteInterface
54+
*/
55+
private $varDirectory;
56+
57+
/**
58+
* @inheritdoc
59+
*/
60+
protected function setUp(): void
61+
{
62+
$this->varDirectory = Bootstrap::getObjectManager()->get(Filesystem::class)
63+
->getDirectoryWrite(DirectoryList::VAR_DIR);
64+
$this->xmpWriter = Bootstrap::getObjectManager()->get(WriteXmp::class);
65+
$this->xmpReader = Bootstrap::getObjectManager()->get(ReadXmp::class);
66+
$this->fileReader = Bootstrap::getObjectManager()->get(ReadFile::class);
67+
$this->driver = Bootstrap::getObjectManager()->get(DriverInterface::class);
68+
$this->metadataFactory = Bootstrap::getObjectManager()->get(MetadataFactory::class);
69+
}
70+
71+
/**
72+
* Test for Xmp reader and writer
73+
*
74+
* @dataProvider filesProvider
75+
* @param string $fileName
76+
* @param string $title
77+
* @param string $description
78+
* @param array $keywords
79+
* @throws LocalizedException
80+
*/
81+
public function testWriteRead(
82+
string $fileName,
83+
string $title,
84+
string $description,
85+
array $keywords
86+
): void {
87+
$path = realpath(__DIR__ . '/../../../../_files/' . $fileName);
88+
$modifiableFilePath = $this->varDirectory->getAbsolutePath($fileName);
89+
$this->driver->copy(
90+
$path,
91+
$modifiableFilePath
92+
);
93+
$modifiableFilePath = $this->fileReader->execute($modifiableFilePath);
94+
$originalMetadata = $this->xmpReader->execute($modifiableFilePath);
95+
96+
$this->assertEmpty($originalMetadata->getTitle());
97+
$this->assertEmpty($originalMetadata->getDescription());
98+
$this->assertEmpty($originalMetadata->getKeywords());
99+
100+
$updatedFile = $this->xmpWriter->execute(
101+
$modifiableFilePath,
102+
$this->metadataFactory->create([
103+
'title' => $title,
104+
'description' => $description,
105+
'keywords' => $keywords
106+
])
107+
);
108+
109+
$updatedMetadata = $this->xmpReader->execute($updatedFile);
110+
111+
$this->assertEquals($title, $updatedMetadata->getTitle());
112+
$this->assertEquals($description, $updatedMetadata->getDescription());
113+
$this->assertEquals($keywords, $updatedMetadata->getKeywords());
114+
}
115+
116+
/**
117+
* Data provider for testExecute
118+
*
119+
* @return array[]
120+
*/
121+
public function filesProvider(): array
122+
{
123+
return [
124+
[
125+
'empty_xmp_image.png',
126+
'Updated Title',
127+
'Updated Description',
128+
[
129+
'magento2',
130+
'mediagallery',
131+
]
132+
],
133+
[
134+
'itxt_with_empty_xmp_image.png',
135+
'Title 2',
136+
'Description 2',
137+
[
138+
'magento2',
139+
'mediagallery',
140+
]
141+
],
142+
];
143+
}
144+
}
Loading

0 commit comments

Comments
 (0)