<?php class WP_UnitTest_Factory_For_Attachment extends WP_UnitTest_Factory_For_Post { function create_object( $file, $parent = 0, $args = array() ) { return wp_insert_attachment( $args, $file, $parent ); } function create_upload_object( $file, $parent = 0 ) { $contents = file_get_contents($file); $upload = wp_upload_bits(basename($file), null, $contents); $type = ''; if ( ! empty($upload['type']) ) { $type = $upload['type']; } else { $mime = wp_check_filetype( $upload['file'] ); if ($mime) $type = $mime['type']; } $attachment = array( 'post_title' => basename( $upload['file'] ), 'post_content' => '', 'post_type' => 'attachment', 'post_parent' => $parent, 'post_mime_type' => $type, 'guid' => $upload[ 'url' ], ); // Save the data $id = wp_insert_attachment( $attachment, $upload[ 'file' ], $parent ); wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) ); return $id; } }