attachment->create_upload_object( $filename ); } public static function wpTearDownAfterClass() { wp_delete_attachment( self::$large_id ); } function setUp() { parent::setUp(); $this->caption = 'A simple caption.'; $this->html_content = <<bolded caption with a link. CAP; $this->img_content = << CAP; $this->img_name = 'image.jpg'; $this->img_url = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . $this->img_name; $this->img_html = ''; $this->img_meta = array( 'width' => 100, 'height' => 100, 'sizes' => '' ); } function test_img_caption_shortcode_added() { global $shortcode_tags; $this->assertEquals( 'img_caption_shortcode', $shortcode_tags['caption'] ); $this->assertEquals( 'img_caption_shortcode', $shortcode_tags['wp_caption'] ); } function test_img_caption_shortcode_with_empty_params() { $result = img_caption_shortcode( array() ); $this->assertNull( $result ); } function test_img_caption_shortcode_with_bad_attr() { $result = img_caption_shortcode( array(), 'content' ); $this->assertEquals( 'content', 'content' ); } function test_img_caption_shortcode_with_old_format() { $result = img_caption_shortcode( array( 'width' => 20, 'caption' => $this->caption ) ); $this->assertEquals( 2, preg_match_all( '/wp-caption/', $result, $_r ) ); $this->assertEquals( 1, preg_match_all( '/alignnone/', $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "/{$this->caption}/", $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "/width: 30/", $result, $_r ) ); } function test_img_caption_shortcode_with_old_format_id_and_align() { $result = img_caption_shortcode( array( 'width' => 20, 'caption' => $this->caption, 'id' => '"myId', 'align' => '&myAlignment' ) ); $this->assertEquals( 1, preg_match_all( '/wp-caption &myAlignment/', $result, $_r ) ); $this->assertEquals( 1, preg_match_all( '/id="myId"/', $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "/{$this->caption}/", $result, $_r ) ); } function test_new_img_caption_shortcode_with_html_caption() { $result = img_caption_shortcode( array( 'width' => 20, 'caption' => $this->html_content ) ); $our_preg = preg_quote( $this->html_content ); $this->assertEquals( 1, preg_match_all( "~{$our_preg}~", $result, $_r ) ); } function test_new_img_caption_shortcode_new_format() { $result = img_caption_shortcode( array( 'width' => 20 ), $this->img_content . $this->html_content ); $img_preg = preg_quote( $this->img_content ); $content_preg = preg_quote( $this->html_content ); $this->assertEquals( 1, preg_match_all( "~{$img_preg}.*wp-caption-text~", $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) ); } function test_new_img_caption_shortcode_new_format_and_linked_image() { $linked_image = "{$this->img_content}"; $result = img_caption_shortcode( array( 'width' => 20 ), $linked_image . $this->html_content ); $img_preg = preg_quote( $linked_image ); $content_preg = preg_quote( $this->html_content ); $this->assertEquals( 1, preg_match_all( "~{$img_preg}.*wp-caption-text~", $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) ); } function test_new_img_caption_shortcode_new_format_and_linked_image_with_newline() { $linked_image = "{$this->img_content}"; $result = img_caption_shortcode( array( 'width' => 20 ), $linked_image . "\n\n" . $this->html_content ); $img_preg = preg_quote( $linked_image ); $content_preg = preg_quote( $this->html_content ); $this->assertEquals( 1, preg_match_all( "~{$img_preg}.*wp-caption-text~", $result, $_r ) ); $this->assertEquals( 1, preg_match_all( "~wp-caption-text.*{$content_preg}~", $result, $_r ) ); } function test_add_remove_oembed_provider() { wp_oembed_add_provider( 'http://foo.bar/*', 'http://foo.bar/oembed' ); $this->assertTrue( wp_oembed_remove_provider( 'http://foo.bar/*' ) ); $this->assertFalse( wp_oembed_remove_provider( 'http://foo.bar/*' ) ); } /** * @ticket 23776 */ function test_autoembed_empty() { global $wp_embed; $content = ''; $result = $wp_embed->autoembed( $content ); $this->assertEquals( $content, $result ); } /** * @ticket 23776 */ function test_autoembed_no_paragraphs_around_urls() { global $wp_embed; $content = <<http://some.link/ http://some.other.link/ EOF; $result = $wp_embed->autoembed( $content ); $this->assertEquals( $content, $result ); } function test_wp_prepare_attachment_for_js() { // Attachment without media $id = wp_insert_attachment(array( 'post_status' => 'publish', 'post_title' => 'Prepare', 'post_content_filtered' => 'Prepare', 'post_type' => 'post' )); $post = get_post( $id ); $prepped = wp_prepare_attachment_for_js( $post ); $this->assertInternalType( 'array', $prepped ); $this->assertEquals( 0, $prepped['uploadedTo'] ); $this->assertEquals( '', $prepped['mime'] ); $this->assertEquals( '', $prepped['type'] ); $this->assertEquals( '', $prepped['subtype'] ); // #21963, there will be a guid always, so there will be a URL $this->assertNotEquals( '', $prepped['url'] ); $this->assertEquals( site_url( 'wp-includes/images/media/default.png' ), $prepped['icon'] ); // Fake a mime $post->post_mime_type = 'image/jpeg'; $prepped = wp_prepare_attachment_for_js( $post ); $this->assertEquals( 'image/jpeg', $prepped['mime'] ); $this->assertEquals( 'image', $prepped['type'] ); $this->assertEquals( 'jpeg', $prepped['subtype'] ); // Fake a mime without a slash. See #WP22532 $post->post_mime_type = 'image'; $prepped = wp_prepare_attachment_for_js( $post ); $this->assertEquals( 'image', $prepped['mime'] ); $this->assertEquals( 'image', $prepped['type'] ); $this->assertEquals( '', $prepped['subtype'] ); } /** * @ticket 19067 * @expectedDeprecated wp_convert_bytes_to_hr */ function test_wp_convert_bytes_to_hr() { $kb = 1024; $mb = $kb * 1024; $gb = $mb * 1024; $tb = $gb * 1024; // test if boundaries are correct $this->assertEquals( '1TB', wp_convert_bytes_to_hr( $tb ) ); $this->assertEquals( '1GB', wp_convert_bytes_to_hr( $gb ) ); $this->assertEquals( '1MB', wp_convert_bytes_to_hr( $mb ) ); $this->assertEquals( '1kB', wp_convert_bytes_to_hr( $kb ) ); $this->assertEquals( '1 TB', size_format( $tb ) ); $this->assertEquals( '1 GB', size_format( $gb ) ); $this->assertEquals( '1 MB', size_format( $mb ) ); $this->assertEquals( '1 kB', size_format( $kb ) ); // now some values around $hr = wp_convert_bytes_to_hr( $tb + $tb / 2 + $mb ); $this->assertTrue( abs( 1.50000095367 - (float) str_replace( ',', '.', $hr ) ) < 0.0001 ); $hr = wp_convert_bytes_to_hr( $tb - $mb - $kb ); $this->assertTrue( abs( 1023.99902248 - (float) str_replace( ',', '.', $hr ) ) < 0.0001 ); $hr = wp_convert_bytes_to_hr( $gb + $gb / 2 + $mb ); $this->assertTrue( abs( 1.5009765625 - (float) str_replace( ',', '.', $hr ) ) < 0.0001 ); $hr = wp_convert_bytes_to_hr( $gb - $mb - $kb ); $this->assertTrue( abs( 1022.99902344 - (float) str_replace( ',', '.', $hr ) ) < 0.0001 ); // edge $this->assertEquals( '-1B', wp_convert_bytes_to_hr( -1 ) ); $this->assertEquals( '0B', wp_convert_bytes_to_hr( 0 ) ); } /** * @ticket 22960 */ function test_get_attached_images() { $post_id = self::factory()->post->create(); $attachment_id = self::factory()->attachment->create_object( $this->img_name, $post_id, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment' ) ); $images = get_attached_media( 'image', $post_id ); $this->assertEquals( $images, array( $attachment_id => get_post( $attachment_id ) ) ); } /** * @ticket 22960 */ function test_post_galleries_images() { $ids1 = array(); $ids1_srcs = array(); foreach ( range( 1, 3 ) as $i ) { $attachment_id = self::factory()->attachment->create_object( "image$i.jpg", 0, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment' ) ); $metadata = array_merge( array( "file" => "image$i.jpg" ), $this->img_meta ); wp_update_attachment_metadata( $attachment_id, $metadata ); $ids1[] = $attachment_id; $ids1_srcs[] = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . "image$i.jpg"; } $ids2 = array(); $ids2_srcs = array(); foreach ( range( 4, 6 ) as $i ) { $attachment_id = self::factory()->attachment->create_object( "image$i.jpg", 0, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment' ) ); $metadata = array_merge( array( "file" => "image$i.jpg" ), $this->img_meta ); wp_update_attachment_metadata( $attachment_id, $metadata ); $ids2[] = $attachment_id; $ids2_srcs[] = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . "image$i.jpg"; } $ids1_joined = join( ',', $ids1 ); $ids2_joined = join( ',', $ids2 ); $blob =<<post->create( array( 'post_content' => $blob ) ); $srcs = get_post_galleries_images( $post_id ); $this->assertEquals( $srcs, array( $ids1_srcs, $ids2_srcs ) ); } /** * @ticket 22960 */ function test_post_gallery_images() { $ids1 = array(); $ids1_srcs = array(); foreach ( range( 1, 3 ) as $i ) { $attachment_id = self::factory()->attachment->create_object( "image$i.jpg", 0, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment' ) ); $metadata = array_merge( array( "file" => "image$i.jpg" ), $this->img_meta ); wp_update_attachment_metadata( $attachment_id, $metadata ); $ids1[] = $attachment_id; $ids1_srcs[] = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . "image$i.jpg"; } $ids2 = array(); $ids2_srcs = array(); foreach ( range( 4, 6 ) as $i ) { $attachment_id = self::factory()->attachment->create_object( "image$i.jpg", 0, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment' ) ); $metadata = array_merge( array( "file" => "image$i.jpg" ), $this->img_meta ); wp_update_attachment_metadata( $attachment_id, $metadata ); $ids2[] = $attachment_id; $ids2_srcs[] = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . "image$i.jpg"; } $ids1_joined = join( ',', $ids1 ); $ids2_joined = join( ',', $ids2 ); $blob =<<post->create( array( 'post_content' => $blob ) ); $srcs = get_post_gallery_images( $post_id ); $this->assertEquals( $srcs, $ids1_srcs ); } function test_get_media_embedded_in_content() { $object =<< OBJ; $embed =<< EMBED; $iframe =<<