Add unit tests for `wp_attachment_is()`, checks the whitelist and arbitrary extension.
See #25275. git-svn-id: https://develop.svn.wordpress.org/trunk@31647 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
6d5385be8d
commit
8a28e19808
|
@ -5091,11 +5091,16 @@ function wp_attachment_is( $type, $post_id = 0 ) {
|
|||
}
|
||||
|
||||
$check = wp_check_filetype( $file );
|
||||
if ( empty( $check['ext'] ) || 'import' !== $post->post_mime_type ) {
|
||||
if ( empty( $check['ext'] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ext = $check['ext'];
|
||||
|
||||
if ( 'import' !== $post->post_mime_type ) {
|
||||
return $type === $ext;
|
||||
}
|
||||
|
||||
switch ( $type ) {
|
||||
case 'image':
|
||||
$image_exts = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' );
|
||||
|
|
|
@ -439,4 +439,29 @@ class Tests_Post_Attachments extends WP_UnitTestCase {
|
|||
$_SERVER['HTTP_HOST'] = $http_host;
|
||||
}
|
||||
|
||||
public function test_wp_attachment_is() {
|
||||
$filename = DIR_TESTDATA . '/images/test-image.jpg';
|
||||
$contents = file_get_contents( $filename );
|
||||
|
||||
$upload = wp_upload_bits( basename( $filename ), null, $contents );
|
||||
$attachment_id = $this->_make_attachment( $upload );
|
||||
|
||||
$this->assertTrue( wp_attachment_is_image( $attachment_id ) );
|
||||
$this->assertTrue( wp_attachment_is( 'image', $attachment_id ) );
|
||||
$this->assertFalse( wp_attachment_is( 'audio', $attachment_id ) );
|
||||
$this->assertFalse( wp_attachment_is( 'video', $attachment_id ) );
|
||||
}
|
||||
|
||||
public function test_wp_attachment_is_default() {
|
||||
$filename = DIR_TESTDATA . '/images/test-image.psd';
|
||||
$contents = file_get_contents( $filename );
|
||||
|
||||
$upload = wp_upload_bits( basename( $filename ), null, $contents );
|
||||
$attachment_id = $this->_make_attachment( $upload );
|
||||
|
||||
$this->assertFalse( wp_attachment_is_image( $attachment_id ) );
|
||||
$this->assertTrue( wp_attachment_is( 'psd', $attachment_id ) );
|
||||
$this->assertFalse( wp_attachment_is( 'audio', $attachment_id ) );
|
||||
$this->assertFalse( wp_attachment_is( 'video', $attachment_id ) );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue