/
base.php
83 lines (70 loc) · 2.16 KB
/
base.php
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
<?php
/**
* @group image
*/
abstract class WP_Image_UnitTestCase extends WP_UnitTestCase {
/**
* Set the image editor engine according to the unit test's specification
*/
public function set_up() {
parent::set_up();
if ( ! call_user_func( array( $this->editor_engine, 'test' ) ) ) {
$this->markTestSkipped( sprintf( 'The image editor engine %s is not supported on this system.', $this->editor_engine ) );
}
add_filter( 'wp_image_editors', array( $this, 'setEngine' ), 10, 2 );
}
/**
* Override the image editor engine
*
* @return string
*/
public function setEngine( $editors ) {
return array( $this->editor_engine );
}
/**
* Helper assertion for testing alpha on images using GD library
*
* @param string $image_path
* @param array $point array(x,y)
* @param int $alpha
*/
protected function assertImageAlphaAtPointGD( $image_path, $point, $alpha ) {
$im = imagecreatefrompng( $image_path );
$rgb = imagecolorat( $im, $point[0], $point[1] );
$colors = imagecolorsforindex( $im, $rgb );
$this->assertSame( $alpha, $colors['alpha'] );
}
/**
* Helper assertion for testing alpha on images using Imagick
*
* @param string $image_path
* @param array $point array(x,y)
* @param int $expected
*/
protected function assertImageAlphaAtPointImagick( $image_path, $point, $expected ) {
$im = new Imagick( $image_path );
$pixel = $im->getImagePixelColor( $point[0], $point[1] );
$color = $pixel->getColorValue( imagick::COLOR_ALPHA );
$this->assertSame( $expected, $color );
}
/**
* Helper assertion to check actual image dimensions on disk
*
* @param string $filename Image filename.
* @param int $width Width to verify.
* @param int $height Height to verify.
*/
protected function assertImageDimensions( $filename, $width, $height ) {
$detected_width = 0;
$detected_height = 0;
$image_size = getimagesize( $filename );
if ( isset( $image_size[0] ) ) {
$detected_width = $image_size[0];
}
if ( isset( $image_size[1] ) ) {
$detected_height = $image_size[1];
}
$this->assertSame( $width, $detected_width );
$this->assertSame( $height, $detected_height );
}
}