X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Futils%2FUIDGeneratorTest.php;h=7123b943fcf0c2be831a5de1f6646db4d1b2e13d;hb=220285ddd27b7f2971e9619940c48a8eee122cd0;hp=fedcc762deb10a595585f01b6cdfca684cdd3ab5;hpb=9e18610457ce599db51d3b14af83c31053ea0ace;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/utils/UIDGeneratorTest.php b/tests/phpunit/includes/utils/UIDGeneratorTest.php index fedcc762de..7123b943fc 100644 --- a/tests/phpunit/includes/utils/UIDGeneratorTest.php +++ b/tests/phpunit/includes/utils/UIDGeneratorTest.php @@ -18,7 +18,7 @@ class UIDGeneratorTest extends PHPUnit_Framework_TestCase { $this->assertEquals( true, ctype_digit( $id ), "UID made of digit characters" ); $this->assertLessThanOrEqual( $digitlen, strlen( $id ), "UID has the right number of digits" ); - $this->assertLessThanOrEqual( $bits, strlen( wfBaseConvert( $id, 10, 2 ) ), + $this->assertLessThanOrEqual( $bits, strlen( Wikimedia\base_convert( $id, 10, 2 ) ), "UID has the right number of bits" ); $ids = array(); @@ -31,8 +31,8 @@ class UIDGeneratorTest extends PHPUnit_Framework_TestCase { $this->assertSame( array_unique( $ids ), $ids, "All generated IDs are unique." ); foreach ( $ids as $id ) { - $id_bin = wfBaseConvert( $id, 10, 2 ); - $lastId_bin = wfBaseConvert( $lastId, 10, 2 ); + $id_bin = Wikimedia\base_convert( $id, 10, 2 ); + $lastId_bin = Wikimedia\base_convert( $lastId, 10, 2 ); $this->assertGreaterThanOrEqual( substr( $lastId_bin, 0, $tbits ), @@ -62,16 +62,46 @@ class UIDGeneratorTest extends PHPUnit_Framework_TestCase { ); } + /** + * @covers UIDGenerator::newUUIDv1 + */ + public function testUUIDv1() { + $ids = array(); + for ( $i = 0; $i < 100; $i++ ) { + $id = UIDGenerator::newUUIDv1(); + $this->assertEquals( true, + preg_match( '!^[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$!', $id ), + "UID $id has the right format" ); + $ids[] = $id; + + $id = UIDGenerator::newRawUUIDv1(); + $this->assertEquals( true, + preg_match( '!^[0-9a-f]{12}1[0-9a-f]{3}[89ab][0-9a-f]{15}$!', $id ), + "UID $id has the right format" ); + + $id = UIDGenerator::newRawUUIDv1( UIDGenerator::QUICK_RAND ); + $this->assertEquals( true, + preg_match( '!^[0-9a-f]{12}1[0-9a-f]{3}[89ab][0-9a-f]{15}$!', $id ), + "UID $id has the right format" ); + } + + $this->assertEquals( array_unique( $ids ), $ids, "All generated IDs are unique." ); + } + /** * @covers UIDGenerator::newUUIDv4 */ public function testUUIDv4() { + $ids = array(); for ( $i = 0; $i < 100; $i++ ) { $id = UIDGenerator::newUUIDv4(); + $ids[] = $id; $this->assertEquals( true, preg_match( '!^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$!', $id ), "UID $id has the right format" ); } + + $this->assertEquals( array_unique( $ids ), $ids, 'All generated IDs are unique.' ); } /**