Check for expiry dates in a 10-second window
authorSam Wilson <sam@samwilson.id.au>
Tue, 20 Dec 2016 12:13:56 +0000 (20:13 +0800)
committerSam Wilson <sam@samwilson.id.au>
Wed, 21 Dec 2016 02:21:17 +0000 (10:21 +0800)
This changes a test of expiry dates to be a 10-second range,
to account for slow testing. For example, a test may start and
set the block's expiry in one second, but by the time it is
reading the value from that block's cookie it can sometimes be
the next second. Making it 10 seconds just gives it more room
for being slow.

Bug: T153527
Change-Id: I5efde7785134a75487d31ef3d8b7b14f53b7f5d0

tests/phpunit/includes/user/UserTest.php

index 0819bf2..7cbae2d 100644 (file)
@@ -726,7 +726,15 @@ class UserTest extends MediaWikiTestCase {
                $cookies = $request1->response()->getCookies();
                // Calculate the expected cookie expiry date.
                $this->assertArrayHasKey( 'wm_infinite_blockBlockID', $cookies );
-               $this->assertEquals( time() + $cookieExpiration, $cookies['wm_infinite_blockBlockID']['expire'] );
+               // Check for expiry dates in a 10-second window, to account for slow testing.
+               $this->assertGreaterThan(
+                       time() + $cookieExpiration - 5,
+                       $cookies['wm_infinite_blockBlockID']['expire']
+               );
+               $this->assertLessThan(
+                       time() + $cookieExpiration + 5,
+                       $cookies['wm_infinite_blockBlockID']['expire']
+               );
 
                // 3. Change the block's expiry (to 2 days), and the cookie's should be changed also.
                $newExpiry = time() + 2 * 24 * 60 * 60;