1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<?php
/**
* @group Media
*/
class XCFHandlerTest extends MediaWikiMediaTestCase {
/** @var XCFHandler */
protected $handler;
protected function setUp(): void {
parent::setUp();
$this->handler = new XCFHandler();
}
/**
* @param string $filename
* @param array $expected
* @dataProvider provideGetSizeAndMetadata
* @covers \XCFHandler::getSizeAndMetadata
*/
public function testGetSizeAndMetadata( $filename, $expected ) {
$file = $this->dataFile( $filename, 'image/x-xcf' );
$actual = $this->handler->getSizeAndMetadata( $file, $file->getLocalRefPath() );
$this->assertSame( $expected, $actual );
}
public static function provideGetSizeAndMetadata() {
return [
[
'80x60-2layers.xcf',
[
'width' => 80,
'height' => 60,
'bits' => 8,
'metadata' => [
'colorType' => 'truecolour-alpha',
]
],
],
[
'80x60-RGB.xcf',
[
'width' => 80,
'height' => 60,
'bits' => 8,
'metadata' => [
'colorType' => 'truecolour-alpha',
]
],
],
[
'80x60-Greyscale.xcf',
[
'width' => 80,
'height' => 60,
'bits' => 8,
'metadata' => [
'colorType' => 'greyscale-alpha',
]
]
],
];
}
/**
* @param string $metadata Serialized metadata
* @param int $expected One of the class constants of XCFHandler
* @dataProvider provideIsFileMetadataValid
* @covers \XCFHandler::isFileMetadataValid
*/
public function testIsFileMetadataValid( $metadata, $expected ) {
$actual = $this->handler->isFileMetadataValid( $this->getMockFileWithMetadata( $metadata ) );
$this->assertEquals( $expected, $actual );
}
public static function provideIsFileMetadataValid() {
return [
[ '', XCFHandler::METADATA_BAD ],
[ serialize( [ 'error' => true ] ), XCFHandler::METADATA_GOOD ],
[ false, XCFHandler::METADATA_BAD ],
[ serialize( [ 'colorType' => 'greyscale-alpha' ] ), XCFHandler::METADATA_GOOD ],
];
}
}
|