<?php
+use Wikimedia\Rdbms\LBFactorySimple;
+use Wikimedia\Rdbms\LBFactoryMulti;
use Wikimedia\Rdbms\ChronologyProtector;
+use Wikimedia\Rdbms\MySQLMasterPos;
/**
* Holds tests for LBFactory abstract MediaWiki class.
public function getLBFactoryClassProvider() {
return [
# Format: new class, old class
- [ 'LBFactorySimple', 'LBFactory_Simple' ],
- [ 'LBFactorySingle', 'LBFactory_Single' ],
- [ 'LBFactoryMulti', 'LBFactory_Multi' ],
+ [ Wikimedia\Rdbms\LBFactorySimple::class, 'LBFactory_Simple' ],
+ [ Wikimedia\Rdbms\LBFactorySingle::class, 'LBFactory_Single' ],
+ [ Wikimedia\Rdbms\LBFactoryMulti::class, 'LBFactory_Multi' ],
+ [ Wikimedia\Rdbms\LBFactorySimple::class, 'LBFactorySimple' ],
+ [ Wikimedia\Rdbms\LBFactorySingle::class, 'LBFactorySingle' ],
+ [ Wikimedia\Rdbms\LBFactoryMulti::class, 'LBFactoryMulti' ],
];
}
],
],
'serverTemplate' => [
- 'dbname' => $wgDBname,
- 'user' => $wgDBuser,
- 'password' => $wgDBpassword,
- 'type' => $wgDBtype,
+ 'dbname' => $wgDBname,
+ 'user' => $wgDBuser,
+ 'password' => $wgDBpassword,
+ 'type' => $wgDBtype,
'dbDirectory' => $wgSQLiteDataDir,
- 'flags' => DBO_DEFAULT
+ 'flags' => DBO_DEFAULT
],
'hostsByName' => [
'test-db1' => $wgDBserver,
"Correct full table name"
);
- \MediaWiki\suppressWarnings();
- $this->assertFalse( $db->selectDB( 'garbage-db' ) );
- \MediaWiki\restoreWarnings();
-
$this->assertEquals(
$this->quoteTable( $db, 'garbage-db' ) . '.' . $this->quoteTable( $db, 'page' ),
$db->tableName( 'garbage-db.page' ),
"Correct full table name"
);
+ if ( $db->databasesAreIndependent() ) {
+ try {
+ $e = null;
+ $db->selectDB( 'garbage-db' );
+ } catch ( \Wikimedia\Rdbms\DBConnectionError $e ) {
+ // expected
+ }
+ $this->assertInstanceOf( '\Wikimedia\Rdbms\DBConnectionError', $e );
+ $this->assertFalse( $db->isOpen() );
+ } else {
+ \MediaWiki\suppressWarnings();
+ $this->assertFalse( $db->selectDB( 'garbage-db' ) );
+ \MediaWiki\restoreWarnings();
+ }
+
$factory->closeAll();
$factory->destroy();
}