Merge "objectcache: make newFromId()/newWANcacheFromId()/getDefaultKeyspace() private"
[lhc/web/wiklou.git] / tests / phpunit / includes / db / LBFactoryTest.php
index 123b080..1016f28 100644 (file)
@@ -315,6 +315,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                                }
                        ) );
                $lb1->method( 'getMasterPos' )->willReturn( $m1Pos );
+               $lb1->method( 'getReplicaResumePos' )->willReturn( $m1Pos );
                $lb1->method( 'getServerName' )->with( 0 )->willReturn( 'master1' );
                // Master DB 2
                $mockDB2 = $this->getMockBuilder( IDatabase::class )
@@ -342,6 +343,7 @@ class LBFactoryTest extends MediaWikiTestCase {
                        }
                ) );
                $lb2->method( 'getMasterPos' )->willReturn( $m2Pos );
+               $lb2->method( 'getReplicaResumePos' )->willReturn( $m2Pos );
                $lb2->method( 'getServerName' )->with( 0 )->willReturn( 'master2' );
 
                $bag = new HashBagOStuff();
@@ -449,8 +451,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;
@@ -536,8 +536,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;
@@ -609,8 +607,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() ) {
@@ -643,17 +639,18 @@ class LBFactoryTest extends MediaWikiTestCase {
         * @covers \Wikimedia\Rdbms\DatabasePostgres::selectDB
         * @expectedException \Wikimedia\Rdbms\DBConnectionError
         */
-       public function testInvalidSelectDBIndependant() {
+       public function testInvalidSelectDBIndependent() {
                $dbname = 'unittest-domain'; // explodes if DB is selected
                $factory = $this->newLBFactoryMulti(
                        [ 'localDomain' => ( new DatabaseDomain( $dbname, null, '' ) )->getId() ],
                        [
-                               'dbname' => 'do_not_select_me' // explodes if DB is selected
+                               // Explodes with SQLite and Postgres during open/USE
+                               'dbname' => 'bad_dir/do_not_select_me'
                        ]
                );
                $lb = $factory->getMainLB();
 
-               if ( !wfGetDB( DB_MASTER )->databasesAreIndependent() ) {
+               if ( !$lb->getConnection( DB_MASTER )->databasesAreIndependent() ) {
                        $this->markTestSkipped( "Not applicable per databasesAreIndependent()" );
                }
 
@@ -664,34 +661,31 @@ class LBFactoryTest extends MediaWikiTestCase {
        /**
         * @covers \Wikimedia\Rdbms\DatabaseSqlite::selectDB
         * @covers \Wikimedia\Rdbms\DatabasePostgres::selectDB
-        * @expectedException \Wikimedia\Rdbms\DBConnectionError
+        * @expectedException \Wikimedia\Rdbms\DBExpectedError
         */
-       public function testInvalidSelectDBIndependant2() {
+       public function testInvalidSelectDBIndependent2() {
                $dbname = 'unittest-domain'; // explodes if DB is selected
                $factory = $this->newLBFactoryMulti(
                        [ 'localDomain' => ( new DatabaseDomain( $dbname, null, '' ) )->getId() ],
                        [
-                               'dbname' => 'do_not_select_me' // explodes if DB is selected
+                               // Explodes with SQLite and Postgres during open/USE
+                               'dbname' => 'bad_dir/do_not_select_me'
                        ]
                );
                $lb = $factory->getMainLB();
 
-               if ( !wfGetDB( DB_MASTER )->databasesAreIndependent() ) {
+               if ( !$lb->getConnection( DB_MASTER )->databasesAreIndependent() ) {
                        $this->markTestSkipped( "Not applicable per databasesAreIndependent()" );
                }
 
                $db = $lb->getConnection( DB_MASTER );
-               \Wikimedia\suppressWarnings();
                $db->selectDB( 'garbage-db' );
-               \Wikimedia\restoreWarnings();
        }
 
        /**
         * @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;