X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FWebRequestTest.php;h=07c307e64e2d0911cada6445d42b01c957892249;hb=733704ed8248f71dfb982d22799104a976d1ada4;hp=9583921d51741598ae97994f4703776284238c33;hpb=d3b02d02d298c14f6903acded2b9480b5e2cb955;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/WebRequestTest.php b/tests/phpunit/includes/WebRequestTest.php index 9583921d51..07c307e64e 100644 --- a/tests/phpunit/includes/WebRequestTest.php +++ b/tests/phpunit/includes/WebRequestTest.php @@ -123,7 +123,13 @@ class WebRequestTest extends MediaWikiTestCase { ]; } - protected function mockWebRequest( $data = [] ) { + /** + * @param array $data Request data + * @param array $config + * - float 'requestTime': Mock value for `$_SERVER['REQUEST_TIME_FLOAT']`. + * @return WebRequest + */ + protected function mockWebRequest( array $data = [], array $config = [] ) { // Cannot use PHPUnit getMockBuilder() as it does not support // overriding protected properties afterwards $reflection = new ReflectionClass( WebRequest::class ); @@ -133,9 +139,11 @@ class WebRequestTest extends MediaWikiTestCase { $prop->setAccessible( true ); $prop->setValue( $req, $data ); - $prop = $reflection->getProperty( 'requestTime' ); - $prop->setAccessible( true ); - $prop->setValue( $req, microtime( true ) ); + if ( isset( $config['requestTime'] ) ) { + $prop = $reflection->getProperty( 'requestTime' ); + $prop->setAccessible( true ); + $prop->setValue( $req, $config['requestTime'] ); + } return $req; } @@ -144,9 +152,11 @@ class WebRequestTest extends MediaWikiTestCase { * @covers WebRequest::getElapsedTime */ public function testGetElapsedTime() { - $req = $this->mockWebRequest(); - $this->assertGreaterThanOrEqual( 0.0, $req->getElapsedTime() ); - $this->assertEquals( 0.0, $req->getElapsedTime(), '', /*delta*/ 0.2 ); + $now = microtime( true ) - 10.0; + $req = $this->mockWebRequest( [], [ 'requestTime' => $now ] ); + $this->assertGreaterThanOrEqual( 10.0, $req->getElapsedTime() ); + // Catch common errors, but don't fail on slow hardware or VMs (T199764). + $this->assertEquals( 10.0, $req->getElapsedTime(), '', 60.0 ); } /**