From 6642e733c6b7b548b3055f5e5ea4692fe4704b11 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Sat, 28 May 2011 21:25:29 +0000 Subject: [PATCH] Use the correct ID when retrieving a block The ID might be different than the one you expect. Since r88755 the tables are no more dropped and recreated, thus the autoincrement pointer is not reset. A previous test could have raised that pointer, thus the id might be above the expected value. This patch track the block ID inserted and use it in the assertion. --- tests/phpunit/includes/BlockTest.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/phpunit/includes/BlockTest.php b/tests/phpunit/includes/BlockTest.php index 908a0a8892..811e7eaf35 100644 --- a/tests/phpunit/includes/BlockTest.php +++ b/tests/phpunit/includes/BlockTest.php @@ -6,6 +6,9 @@ class BlockTest extends MediaWikiLangTestCase { private $block, $madeAt; + + /* variable used to save up the blockID we insert in this test suite */ + private $blockId; function setUp() { global $wgContLang; @@ -14,6 +17,7 @@ class BlockTest extends MediaWikiLangTestCase { } function addDBData() { + //$this->dumpBlocks(); $user = User::newFromName( 'UTBlockee' ); if( $user->getID() == 0 ) { @@ -29,13 +33,29 @@ class BlockTest extends MediaWikiLangTestCase { $this->madeAt = wfTimestamp( TS_MW ); $this->block->insert(); + // save up ID for use in assertion. Since ID is an autoincrement, + // its value might change depending on the order the tests are run. + // ApiBlockTest insert its own blocks! + $this->blockId = $this->block->getId(); } - + + /** + * debug function : dump the ipblocks table + */ + function dumpBlocks() { + $v = $this->db->query( 'SELECT * FROM unittest_ipblocks' ); + print "Got " . $v->numRows() . " rows. Full dump follow:\n"; + foreach( $v as $row ) { + print_r( $row ); + } + } + function testInitializerFunctionsReturnCorrectBlock() { - + // $this->dumpBlocks(); + $this->assertTrue( $this->block->equals( Block::newFromTarget('UTBlockee') ), "newFromTarget() returns the same block as the one that was made"); - $this->assertTrue( $this->block->equals( Block::newFromID( 1 ) ), "newFromID() returns the same block as the one that was made"); + $this->assertTrue( $this->block->equals( Block::newFromID( $this->blockId ) ), "newFromID() returns the same block as the one that was made"); } -- 2.20.1