forked from WordPress/wordpress-develop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheditor.php
More file actions
194 lines (153 loc) · 5.14 KB
/
editor.php
File metadata and controls
194 lines (153 loc) · 5.14 KB
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<?php
require_once dirname( __FILE__ ) . '/base.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;
}
/**
* Return integer of 95 for testing.
*/
public function return_integer_95() {
return 95;
}
/**
* Return integer of 100 for testing.
*/
public function return_integer_100() {
return 100;
}
/**
* Test test_quality
*
* @ticket 6821
*/
public function test_set_quality() {
// Get an editor
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
$editor->set_mime_type( 'image/jpeg' ); // Ensure mime-specific filters act properly.
// Check default value
$this->assertEquals( 82, $editor->get_quality() );
// Ensure the quality filters do not have precedence if created after editor instantiation.
$func_100_percent = array( $this, 'return_integer_100' );
add_filter( 'wp_editor_set_quality', $func_100_percent );
$this->assertEquals( 82, $editor->get_quality() );
$func_95_percent = array( $this, 'return_integer_95' );
add_filter( 'jpeg_quality', $func_95_percent );
$this->assertEquals( 82, $editor->get_quality() );
// Ensure set_quality() works and overrides the filters
$this->assertTrue( $editor->set_quality( 75 ) );
$this->assertEquals( 75, $editor->get_quality() );
// Get a new editor to clear default quality state
unset( $editor );
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
$editor->set_mime_type( 'image/jpeg' ); // Ensure mime-specific filters act properly.
// Ensure jpeg_quality filter applies if it exists before editor instantiation.
$this->assertEquals( 95, $editor->get_quality() );
// Get a new editor to clear jpeg_quality state
remove_filter( 'jpeg_quality', $func_95_percent );
unset( $editor );
$editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
// Ensure wp_editor_set_quality filter applies if it exists before editor instantiation.
$this->assertEquals( 100, $editor->get_quality() );
// Clean up
remove_filter( 'wp_editor_set_quality', $func_100_percent );
}
/**
* 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', wp_basename( $editor->generate_filename() ) );
// Test with a suffix only
$this->assertEquals( 'canola-new.jpg', wp_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', wp_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() );
}
}