From ab09c932c69845fa00919b90113d60f1e38dd9b2 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 15 Apr 2024 14:09:59 +0000 Subject: [PATCH] Tests: Use an image on WordPress.org CDN in external HTTP tests. Due to some changes on the WP.com side to compress the requested images on the fly, the exact image size in the response could be different between platforms. This commit aims to make the affected tests more reliable. Follow-up to [139/tests], [31258], [34568], [47142], [57903], [57904], [57924]. Merges [57931] to the 4.9 branch. Props peterwilsoncc, jorbin. See #60865. git-svn-id: https://develop.svn.wordpress.org/branches/4.9@58002 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/http/functions.php | 76 ++++++++++++++++--------- tests/phpunit/tests/image/functions.php | 6 +- 2 files changed, 52 insertions(+), 30 deletions(-) diff --git a/tests/phpunit/tests/http/functions.php b/tests/phpunit/tests/http/functions.php index a3f45428dbc26..586dcbbc45cf9 100644 --- a/tests/phpunit/tests/http/functions.php +++ b/tests/phpunit/tests/http/functions.php @@ -14,9 +14,12 @@ public function setUp() { parent::setUp(); } - function test_head_request() { - // this url give a direct 200 response - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; + /** + * @covers ::wp_remote_head + */ + public function test_head_request() { + // This URL gives a direct 200 response. + $url = 'https://s.w.org/screenshots/3.9/dashboard.png'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); @@ -25,30 +28,41 @@ function test_head_request() { $this->assertInternalType( 'array', $response ); - $this->assertEquals( 'image/jpeg', $headers['content-type'] ); - $this->assertEquals( '40148', $headers['content-length'] ); - $this->assertEquals( '200', wp_remote_retrieve_response_code( $response ) ); + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); + $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } - function test_head_redirect() { - // this url will 301 redirect - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + /** + * @covers ::wp_remote_head + */ + public function test_head_redirect() { + // This URL will 301 redirect. + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); $this->assertEquals( '301', wp_remote_retrieve_response_code( $response ) ); } - function test_head_404() { - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/awefasdfawef.jpg'; + /** + * @covers ::wp_remote_head + */ + public function test_head_404() { + $url = 'https://wordpress.org/screenshots/3.9/awefasdfawef.jpg'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); $this->assertEquals( '404', wp_remote_retrieve_response_code( $response ) ); } - function test_get_request() { - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; + /** + * @covers ::wp_remote_get + * @covers ::wp_remote_retrieve_headers + * @covers ::wp_remote_retrieve_response_code + */ + public function test_get_request() { + $url = 'https://s.w.org/screenshots/3.9/dashboard.png'; $response = wp_remote_get( $url ); @@ -58,15 +72,20 @@ function test_get_request() { $this->assertInternalType( 'array', $response ); - // should return the same headers as a head request - $this->assertEquals( 'image/jpeg', $headers['content-type'] ); - $this->assertEquals( '40148', $headers['content-length'] ); - $this->assertEquals( '200', wp_remote_retrieve_response_code( $response ) ); + // Should return the same headers as a HEAD request. + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); + $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } - function test_get_redirect() { - // this will redirect to asdftestblog1.files.wordpress.com - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + /** + * @covers ::wp_remote_get + * @covers ::wp_remote_retrieve_headers + * @covers ::wp_remote_retrieve_response_code + */ + public function test_get_redirect() { + // This will redirect to wordpress.org. + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; $response = wp_remote_get( $url ); @@ -74,15 +93,18 @@ function test_get_redirect() { $headers = wp_remote_retrieve_headers( $response ); - // should return the same headers as a head request - $this->assertEquals( 'image/jpeg', $headers['content-type'] ); - $this->assertEquals( '40148', $headers['content-length'] ); - $this->assertEquals( '200', wp_remote_retrieve_response_code( $response ) ); + // Should return the same headers as a HEAD request. + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); + $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } - function test_get_redirect_limit_exceeded() { - // this will redirect to asdftestblog1.files.wordpress.com - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + /** + * @covers ::wp_remote_get + */ + public function test_get_redirect_limit_exceeded() { + // This will redirect to wordpress.org. + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; // pretend we've already redirected 5 times $response = wp_remote_get( $url, array( 'redirection' => -1 ) ); diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php index b126241d8d15d..58e25b77ca9e8 100644 --- a/tests/phpunit/tests/image/functions.php +++ b/tests/phpunit/tests/image/functions.php @@ -311,9 +311,9 @@ public function test_wp_crop_image_url() { $this->markTestSkipped( 'Tests_Image_Functions::test_wp_crop_image_url() requires openssl.' ); } - $file = wp_crop_image( 'https://asdftestblog1.files.wordpress.com/2008/04/canola.jpg', + $file = wp_crop_image( 'https://s.w.org/screenshots/3.9/dashboard.png', 0, 0, 100, 100, 100, 100, false, - DIR_TESTDATA . '/images/' . __FUNCTION__ . '.jpg' ); + DIR_TESTDATA . '/images/' . __FUNCTION__ . '.png' ); $this->assertNotInstanceOf( 'WP_Error', $file ); $this->assertFileExists( $file ); $image = wp_get_image_editor( $file ); @@ -335,7 +335,7 @@ public function test_wp_crop_image_url_not_exist() { $this->markTestSkipped( 'Tests_Image_Functions::test_wp_crop_image_url_not_exist() requires openssl.' ); } - $file = wp_crop_image( 'https://asdftestblog1.files.wordpress.com/2008/04/canoladoesnotexist.jpg', + $file = wp_crop_image( 'https://wordpress.org/screenshots/3.9/canoladoesnotexist.jpg', 0, 0, 100, 100, 100, 100 ); $this->assertInstanceOf( 'WP_Error', $file ); }