$this->backupStaticAttributes = false;
}
+ public function __destruct() {
+ // Complain if self::setUp() was called, but not self::tearDown()
+ // $this->called['setUp'] will be checked by self::testMediaWikiTestCaseParentSetupCalled()
+ if ( isset( $this->called['setUp'] ) && !isset( $this->called['tearDown'] ) ) {
+ throw new MWException( get_called_class() . "::tearDown() must call parent::tearDown()" );
+ }
+ }
+
public function run( PHPUnit_Framework_TestResult $result = null ) {
/* Some functions require some kind of caching, and will end up using the db,
* which we can't allow, as that would open a new connection for mysql.
protected function setUp() {
wfProfileIn( __METHOD__ );
parent::setUp();
- $this->called['setUp'] = 1;
+ $this->called['setUp'] = true;
$this->phpErrorLevel = intval( ini_get( 'error_reporting' ) );
protected function tearDown() {
wfProfileIn( __METHOD__ );
+ $this->called['tearDown'] = true;
// Cleaning up temporary files
foreach ( $this->tmpFiles as $fileName ) {
if ( is_file( $fileName ) || ( is_link( $fileName ) ) ) {
return false;
}
+ /**
+ * Insert a new page.
+ *
+ * Should be called from addDBData().
+ *
+ * @since 1.25
+ * @param string $pageName Page name
+ * @param string $text Page's content
+ * @return array Title object and page id
+ */
+ protected function insertPage( $pageName, $text = 'Sample page for unit test.' ) {
+ $title = Title::newFromText( $pageName, 0 );
+
+ $user = User::newFromName( 'WikiSysop' );
+ $comment = __METHOD__ . ': Sample page for unit test.';
+
+ // Avoid memory leak...?
+ LinkCache::singleton()->clear();
+
+ $page = WikiPage::factory( $title );
+ $page->doEditContent( ContentHandler::makeContent( $text, $title ), $comment, 0, false, $user );
+
+ return array(
+ 'title' => $title,
+ 'id' => $page->getId(),
+ );
+ }
+
/**
* Stub. If a test needs to add additional data to the database, it should
* implement this method and do so
User::resetIdByNameCache();
- //Make sysop user
+ // Make sysop user
$user = User::newFromName( 'UTSysop' );
if ( $user->idForName() == 0 ) {
$user->saveSettings();
}
- //Make 1 page with 1 revision
+ // Make 1 page with 1 revision
$page = WikiPage::factory( Title::newFromText( 'UTPage' ) );
if ( $page->getId() == 0 ) {
$page->doEditContent(
'UTPageSummary',
EDIT_NEW,
false,
- User::newFromName( 'UTSysop' ) );
+ User::newFromName( 'UTSysop' )
+ );
}
}
* @param string $message
* @param bool $isHtml
*/
- public static function assertTag($matcher, $actual, $message = '', $isHtml = true) {
+ public static function assertTag( $matcher, $actual, $message = '', $isHtml = true ) {
//trigger_error(__METHOD__ . ' is deprecated', E_USER_DEPRECATED);
- $dom = PHPUnit_Util_XML::load($actual, $isHtml);
- $tags = PHPUnit_Util_XML::findNodes($dom, $matcher, $isHtml);
- $matched = count($tags) > 0 && $tags[0] instanceof DOMNode;
+ $dom = PHPUnit_Util_XML::load( $actual, $isHtml );
+ $tags = PHPUnit_Util_XML::findNodes( $dom, $matcher, $isHtml );
+ $matched = count( $tags ) > 0 && $tags[0] instanceof DOMNode;
- self::assertTrue($matched, $message);
+ self::assertTrue( $matched, $message );
}
}