/
editor.php
149 lines (116 loc) · 3.88 KB
/
editor.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
/**
* Test the WP_Image_Editor base class
* @group image
* @group media
*/
class Tests_Image_Editor extends WP_Image_UnitTestCase {
public $editor_engine = 'WP_Image_Editor_Mock';
/**
* Setup test fixture
*/
public function setup() {
require_once( ABSPATH . WPINC . '/class-wp-image-editor.php' );
include_once( DIR_TESTDATA . '/../includes/mock-image-editor.php' );
parent::setUp();
}
/**
* Test wp_get_image_editor() where load returns true
* @ticket 6821
*/
public function test_get_editor_load_returns_true() {
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
$this->assertInstanceOf( 'WP_Image_Editor_Mock', $editor );
}
/**
* Test wp_get_image_editor() where load returns false
* @ticket 6821
*/
public function test_get_editor_load_returns_false() {
WP_Image_Editor_Mock::$load_return = new WP_Error();
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
$this->assertInstanceOf( 'WP_Error', $editor );
WP_Image_Editor_Mock::$load_return = true;
}
/**
* Test test_quality
* @ticket 6821
*/
public function test_set_quality() {
// Get an editor
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
// Make quality readable
$property = new ReflectionProperty( $editor, 'quality' );
$property->setAccessible( true );
// Ensure set_quality works
$this->assertTrue( $editor->set_quality( 75 ) );
$this->assertEquals( 75, $property->getValue( $editor ) );
// Ensure the quality filter works
$func = create_function( '', "return 100;");
add_filter( 'wp_editor_set_quality', $func );
$this->assertTrue( $editor->set_quality( 75 ) );
$this->assertEquals( 100, $property->getValue( $editor ) );
// Clean up
remove_filter( 'wp_editor_set_quality', $func );
}
/**
* Test generate_filename
* @ticket 6821
*/
public function test_generate_filename() {
// Get an editor
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
$property = new ReflectionProperty( $editor, 'size' );
$property->setAccessible( true );
$property->setValue( $editor, array(
'height' => 50,
'width' => 100
));
// Test with no parameters
$this->assertEquals( 'canola-100x50.jpg', basename( $editor->generate_filename() ) );
// Test with a suffix only
$this->assertEquals( 'canola-new.jpg', basename( $editor->generate_filename( 'new' ) ) );
// Test with a destination dir only
$this->assertEquals(trailingslashit( realpath( get_temp_dir() ) ), trailingslashit( realpath( dirname( $editor->generate_filename( null, get_temp_dir() ) ) ) ) );
// Test with a suffix only
$this->assertEquals( 'canola-100x50.png', basename( $editor->generate_filename( null, null, 'png' ) ) );
// Combo!
$this->assertEquals( trailingslashit( realpath( get_temp_dir() ) ) . 'canola-new.png', $editor->generate_filename( 'new', realpath( get_temp_dir() ), 'png' ) );
}
/**
* Test get_size
* @ticket 6821
*/
public function test_get_size() {
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
// Size should be false by default
$this->assertNull( $editor->get_size() );
// Set a size
$size = array(
'height' => 50,
'width' => 100
);
$property = new ReflectionProperty( $editor, 'size' );
$property->setAccessible( true );
$property->setValue( $editor, $size );
$this->assertEquals( $size, $editor->get_size() );
}
/**
* Test get_suffix
* @ticket 6821
*/
public function test_get_suffix() {
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
// Size should be false by default
$this->assertFalse( $editor->get_suffix() );
// Set a size
$size = array(
'height' => 50,
'width' => 100
);
$property = new ReflectionProperty( $editor, 'size' );
$property->setAccessible( true );
$property->setValue( $editor, $size );
$this->assertEquals( '100x50', $editor->get_suffix() );
}
}