2010-12-28 19:12:27 +00:00
< ? php
2010-12-29 15:01:47 +00:00
/**
* @ group Database
*/
2011-05-01 23:02:27 +00:00
class BlockTest extends MediaWikiLangTestCase {
2010-12-28 19:12:27 +00:00
2010-12-28 19:27:34 +00:00
private $block , $madeAt ;
2010-12-28 19:12:27 +00:00
function setUp () {
global $wgContLang ;
2011-05-01 23:02:27 +00:00
parent :: setUp ();
2010-12-28 19:12:27 +00:00
$wgContLang = Language :: factory ( 'en' );
}
function addDBData () {
2010-12-28 19:27:34 +00:00
2010-12-28 19:12:27 +00:00
$user = User :: newFromName ( 'UTBlockee' );
2010-12-28 19:27:34 +00:00
if ( $user -> getID () == 0 ) {
$user -> addToDatabase ();
$user -> setPassword ( 'UTBlockeePassword' );
2010-12-28 19:12:27 +00:00
2010-12-28 19:27:34 +00:00
$user -> saveSettings ();
}
2010-12-28 19:12:27 +00:00
$this -> block = new Block ( 'UTBlockee' , 1 , 0 ,
2010-12-28 19:27:34 +00:00
'Parce que'
2010-12-28 19:12:27 +00:00
);
2010-12-28 19:27:34 +00:00
$this -> madeAt = wfTimestamp ( TS_MW );
2010-12-28 19:12:27 +00:00
$this -> block -> insert ();
}
function testInitializerFunctionsReturnCorrectBlock () {
2011-03-21 23:03:11 +00:00
$this -> assertTrue ( $this -> block -> equals ( Block :: newFromTarget ( 'UTBlockee' ) ), " newFromTarget() returns the same block as the one that was made " );
2010-12-28 19:12:27 +00:00
$this -> assertTrue ( $this -> block -> equals ( Block :: newFromID ( 1 ) ), " newFromID() returns the same block as the one that was made " );
}
2010-12-28 19:27:34 +00:00
/**
* per bug 26425
*/
function testBug26425BlockTimestampDefaultsToTime () {
$this -> assertEquals ( $this -> madeAt , $this -> block -> mTimestamp , " If no timestamp is specified, the block is recorded as time() " );
}
2010-12-28 19:12:27 +00:00
2011-05-24 21:04:50 +00:00
/**
* This is the method previously used to load block info in CheckUser etc
* passing an empty value ( empty string , null , etc ) as the ip parameter bypasses IP lookup checks .
*
* This stopped working with r84475 and friends : regression being fixed for bug 29116.
*
* @ dataProvider dataBug29116
*/
function testBug29116LoadWithEmptyIp ( $vagueTarget ) {
$block = new Block ();
$block -> load ( $vagueTarget , 'UTBlockee' );
$this -> assertTrue ( $this -> block -> equals ( Block :: newFromTarget ( 'UTBlockee' , $vagueTarget ) ), " Block->load() returns the same block as the one that was made when given empty ip param " . var_export ( $vagueTarget , true ) );
}
/**
* CheckUser since being changed to use Block :: newFromTarget started failing
* because the new function didn ' t accept empty strings like Block :: load ()
* had . Regression bug 29116.
*
* @ dataProvider dataBug29116
*/
function testBug29116NewFromTargetWithEmptyIp ( $vagueTarget ) {
$block = Block :: newFromTarget ( 'UTBlockee' , $vagueTarget );
$this -> assertTrue ( $this -> block -> equals ( $block ), " newFromTarget() returns the same block as the one that was made when given empty vagueTarget param " . var_export ( $vagueTarget , true ) );
}
function dataBug29116 () {
return array (
array ( null ),
array ( '' ),
array ( false )
);
}
2010-12-28 19:12:27 +00:00
}