rdbms: make LoadBalancer::reallyOpenConnection() handle setting DBO_TRX
[lhc/web/wiklou.git] / tests / phpunit / includes / db / LBFactoryTest.php
index 1595cd2..1296bb6 100644 (file)
@@ -23,6 +23,7 @@
  * @copyright © 2013 Wikimedia Foundation Inc.
  */
 
+use Wikimedia\AtEase\AtEase;
 use Wikimedia\Rdbms\IDatabase;
 use Wikimedia\Rdbms\IMaintainableDatabase;
 use Wikimedia\Rdbms\LBFactory;
@@ -451,8 +452,6 @@ class LBFactoryTest extends MediaWikiTestCase {
         * @covers \Wikimedia\Rdbms\LoadBalancer::getConnection
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::doSelectDomain
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::selectDB
-        * @covers \Wikimedia\Rdbms\DatabaseMssql::selectDB
-        * @covers DatabaseOracle::selectDB
         */
        public function testNiceDomains() {
                global $wgDBname;
@@ -476,7 +475,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                unset( $db );
 
                /** @var IMaintainableDatabase $db */
-               $db = $lb->getConnection( DB_MASTER, [], '' );
+               $db = $lb->getConnection( DB_MASTER, [], $lb::DOMAIN_ANY );
 
                $this->assertEquals(
                        '',
@@ -538,8 +537,6 @@ class LBFactoryTest extends MediaWikiTestCase {
         * @covers \Wikimedia\Rdbms\LoadBalancer::getConnection
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::doSelectDomain
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::selectDB
-        * @covers \Wikimedia\Rdbms\DatabaseMssql::selectDB
-        * @covers DatabaseOracle::selectDB
         */
        public function testTrickyDomain() {
                global $wgDBname;
@@ -558,7 +555,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                );
                $lb = $factory->getMainLB();
                /** @var IMaintainableDatabase $db */
-               $db = $lb->getConnection( DB_MASTER, [], '' );
+               $db = $lb->getConnection( DB_MASTER, [], $lb::DOMAIN_ANY );
 
                $this->assertEquals( '', $db->getDomainID(), "Null domain used" );
 
@@ -611,8 +608,6 @@ class LBFactoryTest extends MediaWikiTestCase {
         * @covers \Wikimedia\Rdbms\LoadBalancer::getConnection
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::doSelectDomain
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::selectDB
-        * @covers \Wikimedia\Rdbms\DatabaseMssql::selectDB
-        * @covers DatabaseOracle::selectDB
         */
        public function testInvalidSelectDB() {
                if ( wfGetDB( DB_MASTER )->databasesAreIndependent() ) {
@@ -628,16 +623,16 @@ class LBFactoryTest extends MediaWikiTestCase {
                );
                $lb = $factory->getMainLB();
                /** @var IDatabase $db */
-               $db = $lb->getConnection( DB_MASTER, [], '' );
+               $db = $lb->getConnection( DB_MASTER, [], $lb::DOMAIN_ANY );
 
-               \Wikimedia\suppressWarnings();
+               AtEase::suppressWarnings();
                try {
-                       $this->assertFalse( $db->selectDB( 'garbage-db' ) );
+                       $this->assertFalse( $db->selectDomain( 'garbagedb' ) );
                        $this->fail( "No error thrown." );
                } catch ( \Wikimedia\Rdbms\DBQueryError $e ) {
-                       $this->assertRegExp( '/[\'"]garbage-db[\'"]/', $e->getMessage() );
+                       $this->assertRegExp( '/[\'"]garbagedb[\'"]/', $e->getMessage() );
                }
-               \Wikimedia\restoreWarnings();
+               AtEase::restoreWarnings();
        }
 
        /**
@@ -656,12 +651,12 @@ class LBFactoryTest extends MediaWikiTestCase {
                );
                $lb = $factory->getMainLB();
 
-               if ( !$lb->getConnection( DB_MASTER )->databasesAreIndependent() ) {
-                       $this->markTestSkipped( "Not applicable per databasesAreIndependent()" );
+               if ( !$factory->getMainLB()->getServerAttributes( 0 )[Database::ATTR_DB_IS_FILE] ) {
+                       $this->markTestSkipped( "Not applicable per ATTR_DB_IS_FILE" );
                }
 
                /** @var IDatabase $db */
-               $lb->getConnection( DB_MASTER, [], '' );
+               $this->assertNotNull( $lb->getConnection( DB_MASTER, [], $lb::DOMAIN_ANY ) );
        }
 
        /**
@@ -685,15 +680,13 @@ class LBFactoryTest extends MediaWikiTestCase {
                }
 
                $db = $lb->getConnection( DB_MASTER );
-               $db->selectDB( 'garbage-db' );
+               $db->selectDomain( 'garbage-db' );
        }
 
        /**
         * @covers \Wikimedia\Rdbms\LoadBalancer::getConnection
         * @covers \Wikimedia\Rdbms\LoadBalancer::redefineLocalDomain
         * @covers \Wikimedia\Rdbms\DatabaseMysqlBase::selectDB
-        * @covers \Wikimedia\Rdbms\DatabaseMssql::selectDB
-        * @covers DatabaseOracle::selectDB
         */
        public function testRedefineLocalDomain() {
                global $wgDBname;