1818 */
1919class DatabaseInterfaceTest extends AbstractTestCase
2020{
21- /**
22- * Configures test parameters.
23- */
24- protected function setUp (): void
25- {
26- parent ::setUp ();
27- parent ::setGlobalDbi ();
28- $ GLOBALS ['server ' ] = 0 ;
29- }
30-
3121 /**
3222 * Tests for DBI::getCurrentUser() method.
3323 *
@@ -40,24 +30,21 @@ protected function setUp(): void
4030 */
4131 public function testGetCurrentUser ($ value , string $ string , array $ expected , bool $ needsSecondCall ): void
4232 {
33+ $ dummyDbi = $ this ->createDbiDummy ();
34+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
35+
4336 SessionCache ::remove ('mysql_cur_user ' );
4437
45- $ this -> dummyDbi ->addResult ('SELECT CURRENT_USER(); ' , $ value );
38+ $ dummyDbi ->addResult ('SELECT CURRENT_USER(); ' , $ value );
4639 if ($ needsSecondCall ) {
47- $ this -> dummyDbi ->addResult ('SELECT CURRENT_USER(); ' , $ value );
40+ $ dummyDbi ->addResult ('SELECT CURRENT_USER(); ' , $ value );
4841 }
4942
50- $ this ->assertEquals (
51- $ expected ,
52- $ this ->dbi ->getCurrentUserAndHost ()
53- );
43+ $ this ->assertEquals ($ expected , $ dbi ->getCurrentUserAndHost ());
5444
55- $ this ->assertEquals (
56- $ string ,
57- $ this ->dbi ->getCurrentUser ()
58- );
45+ $ this ->assertEquals ($ string , $ dbi ->getCurrentUser ());
5946
60- $ this ->assertAllQueriesConsumed ();
47+ $ dummyDbi ->assertAllQueriesConsumed ();
6148 }
6249
6350 /**
@@ -103,7 +90,10 @@ public function currentUserData(): array
10390 */
10491 public function testPMAGetColumnMap (): void
10592 {
106- $ this ->dummyDbi ->addResult (
93+ $ dummyDbi = $ this ->createDbiDummy ();
94+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
95+
96+ $ dummyDbi ->addResult (
10797 'PMA_sql_query ' ,
10898 [true ],
10999 [],
@@ -125,7 +115,7 @@ public function testPMAGetColumnMap(): void
125115 'view_columns2 ' ,
126116 ];
127117
128- $ column_map = $ this -> dbi ->getColumnMapFromSql ($ sql_query , $ view_columns );
118+ $ column_map = $ dbi ->getColumnMapFromSql ($ sql_query , $ view_columns );
129119
130120 $ this ->assertEquals (
131121 [
@@ -144,15 +134,16 @@ public function testPMAGetColumnMap(): void
144134 $ column_map [1 ]
145135 );
146136
147- $ this ->assertAllQueriesConsumed ();
137+ $ dummyDbi ->assertAllQueriesConsumed ();
148138 }
149139
150140 /**
151141 * Tests for DBI::getSystemDatabase() method.
152142 */
153143 public function testGetSystemDatabase (): void
154144 {
155- $ sd = $ this ->dbi ->getSystemDatabase ();
145+ $ dbi = $ this ->createDatabaseInterface ();
146+ $ sd = $ dbi ->getSystemDatabase ();
156147 $ this ->assertInstanceOf (SystemDatabase::class, $ sd );
157148 }
158149
@@ -161,14 +152,16 @@ public function testGetSystemDatabase(): void
161152 */
162153 public function testPostConnectControl (): void
163154 {
164- parent ::setGlobalDbi ();
165- $ this ->dummyDbi ->addResult (
155+ $ dummyDbi = $ this ->createDbiDummy ();
156+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
157+
158+ $ dummyDbi ->addResult (
166159 'SHOW TABLES FROM `phpmyadmin`; ' ,
167160 []
168161 );
169162 $ GLOBALS ['db ' ] = '' ;
170163 $ GLOBALS ['cfg ' ]['Server ' ]['only_db ' ] = [];
171- $ this -> dbi ->postConnectControl (new Relation ($ this -> dbi ));
164+ $ dbi ->postConnectControl (new Relation ($ dbi ));
172165 $ this ->assertInstanceOf (DatabaseList::class, $ GLOBALS ['dblist ' ]);
173166 }
174167
@@ -177,19 +170,21 @@ public function testPostConnectControl(): void
177170 */
178171 public function testGetDbCollation (): void
179172 {
173+ $ dbi = $ this ->createDatabaseInterface ();
174+
180175 $ GLOBALS ['server ' ] = 1 ;
181176 // test case for system schema
182177 $ this ->assertEquals (
183178 'utf8_general_ci ' ,
184- $ this -> dbi ->getDbCollation ('information_schema ' )
179+ $ dbi ->getDbCollation ('information_schema ' )
185180 );
186181
187182 $ GLOBALS ['cfg ' ]['Server ' ]['DisableIS ' ] = false ;
188183 $ GLOBALS ['cfg ' ]['DBG ' ]['sql ' ] = false ;
189184
190185 $ this ->assertEquals (
191186 'utf8_general_ci ' ,
192- $ this -> dbi ->getDbCollation ('pma_test ' )
187+ $ dbi ->getDbCollation ('pma_test ' )
193188 );
194189 }
195190
@@ -198,9 +193,10 @@ public function testGetDbCollation(): void
198193 */
199194 public function testGetServerCollation (): void
200195 {
196+ $ dbi = $ this ->createDatabaseInterface ();
201197 $ GLOBALS ['server ' ] = 1 ;
202198 $ GLOBALS ['cfg ' ]['DBG ' ]['sql ' ] = true ;
203- $ this ->assertEquals ('utf8_general_ci ' , $ this -> dbi ->getServerCollation ());
199+ $ this ->assertEquals ('utf8_general_ci ' , $ dbi ->getServerCollation ());
204200 }
205201
206202 /**
@@ -266,16 +262,19 @@ public function errorData(): array
266262 */
267263 public function testIsAmazonRdsData (array $ value , bool $ expected ): void
268264 {
265+ $ dummyDbi = $ this ->createDbiDummy ();
266+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
267+
269268 SessionCache ::remove ('is_amazon_rds ' );
270269
271- $ this -> dummyDbi ->addResult ('SELECT @@basedir ' , $ value );
270+ $ dummyDbi ->addResult ('SELECT @@basedir ' , $ value );
272271
273272 $ this ->assertEquals (
274273 $ expected ,
275- $ this -> dbi ->isAmazonRds ()
274+ $ dbi ->isAmazonRds ()
276275 );
277276
278- $ this ->assertAllQueriesConsumed ();
277+ $ dummyDbi ->assertAllQueriesConsumed ();
279278 }
280279
281280 /**
@@ -358,23 +357,28 @@ public function versionData(): array
358357 */
359358 public function testSetCollation (): void
360359 {
361- $ this ->dummyDbi ->addResult ('SET collation_connection = \'utf8_czech_ci \'; ' , [true ]);
362- $ this ->dummyDbi ->addResult ('SET collation_connection = \'utf8mb4_bin_ci \'; ' , [true ]);
363- $ this ->dummyDbi ->addResult ('SET collation_connection = \'utf8_czech_ci \'; ' , [true ]);
364- $ this ->dummyDbi ->addResult ('SET collation_connection = \'utf8_bin_ci \'; ' , [true ]);
360+ $ dummyDbi = $ this ->createDbiDummy ();
361+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
362+
363+ $ dummyDbi ->addResult ('SET collation_connection = \'utf8_czech_ci \'; ' , [true ]);
364+ $ dummyDbi ->addResult ('SET collation_connection = \'utf8mb4_bin_ci \'; ' , [true ]);
365+ $ dummyDbi ->addResult ('SET collation_connection = \'utf8_czech_ci \'; ' , [true ]);
366+ $ dummyDbi ->addResult ('SET collation_connection = \'utf8_bin_ci \'; ' , [true ]);
365367
366368 $ GLOBALS ['charset_connection ' ] = 'utf8mb4 ' ;
367- $ this -> dbi ->setCollation ('utf8_czech_ci ' );
368- $ this -> dbi ->setCollation ('utf8mb4_bin_ci ' );
369+ $ dbi ->setCollation ('utf8_czech_ci ' );
370+ $ dbi ->setCollation ('utf8mb4_bin_ci ' );
369371 $ GLOBALS ['charset_connection ' ] = 'utf8 ' ;
370- $ this -> dbi ->setCollation ('utf8_czech_ci ' );
371- $ this -> dbi ->setCollation ('utf8mb4_bin_ci ' );
372+ $ dbi ->setCollation ('utf8_czech_ci ' );
373+ $ dbi ->setCollation ('utf8mb4_bin_ci ' );
372374
373- $ this ->assertAllQueriesConsumed ();
375+ $ dummyDbi ->assertAllQueriesConsumed ();
374376 }
375377
376378 public function testGetTablesFull (): void
377379 {
380+ $ dbi = $ this ->createDatabaseInterface ();
381+
378382 $ GLOBALS ['cfg ' ]['Server ' ]['DisableIS ' ] = true ;
379383
380384 $ expected = [
@@ -423,12 +427,14 @@ public function testGetTablesFull(): void
423427 ],
424428 ];
425429
426- $ actual = $ this -> dbi ->getTablesFull ('test_db ' );
430+ $ actual = $ dbi ->getTablesFull ('test_db ' );
427431 $ this ->assertEquals ($ expected , $ actual );
428432 }
429433
430434 public function testGetTablesFullWithInformationSchema (): void
431435 {
436+ $ dbi = $ this ->createDatabaseInterface ();
437+
432438 $ GLOBALS ['cfg ' ]['Server ' ]['DisableIS ' ] = false ;
433439
434440 $ expected = [
@@ -479,7 +485,7 @@ public function testGetTablesFullWithInformationSchema(): void
479485 ],
480486 ];
481487
482- $ actual = $ this -> dbi ->getTablesFull ('test_db ' );
488+ $ actual = $ dbi ->getTablesFull ('test_db ' );
483489 $ this ->assertEquals ($ expected , $ actual );
484490 }
485491
@@ -488,25 +494,29 @@ public function testGetTablesFullWithInformationSchema(): void
488494 */
489495 public function testQueryAsControlUser (): void
490496 {
497+ $ dummyDbi = $ this ->createDbiDummy ();
498+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
499+
491500 $ sql = 'insert into PMA_bookmark A,B values(1, 2) ' ;
492- $ this -> dummyDbi ->addResult ($ sql , [true ]);
493- $ this -> dummyDbi ->addResult ($ sql , [true ]);
494- $ this -> dummyDbi ->addResult ('Invalid query ' , false );
501+ $ dummyDbi ->addResult ($ sql , [true ]);
502+ $ dummyDbi ->addResult ($ sql , [true ]);
503+ $ dummyDbi ->addResult ('Invalid query ' , false );
495504
496505 $ this ->assertInstanceOf (
497506 ResultInterface::class,
498- $ this -> dbi ->queryAsControlUser ($ sql )
507+ $ dbi ->queryAsControlUser ($ sql )
499508 );
500509 $ this ->assertInstanceOf (
501510 ResultInterface::class,
502- $ this -> dbi ->tryQueryAsControlUser ($ sql )
511+ $ dbi ->tryQueryAsControlUser ($ sql )
503512 );
504- $ this ->assertFalse ($ this -> dbi ->tryQueryAsControlUser ('Invalid query ' ));
513+ $ this ->assertFalse ($ dbi ->tryQueryAsControlUser ('Invalid query ' ));
505514 }
506515
507516 public function testGetDatabasesFullDisabledISAndSortIntColumn (): void
508517 {
509- parent ::setGlobalDbi ();
518+ $ dummyDbi = $ this ->createDbiDummy ();
519+ $ dbi = $ this ->createDatabaseInterface ($ dummyDbi );
510520
511521 $ GLOBALS ['db ' ] = '' ;
512522 $ GLOBALS ['table ' ] = '' ;
@@ -518,22 +528,22 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
518528 'db1 ' ,
519529 'db2 ' ,
520530 ];
521- $ this -> dummyDbi ->removeDefaultResults ();
522- $ this -> dummyDbi ->addResult (
531+ $ dummyDbi ->removeDefaultResults ();
532+ $ dummyDbi ->addResult (
523533 'SELECT @@collation_database ' ,
524534 [
525535 ['utf8_general_ci ' ],
526536 ],
527537 ['@@collation_database ' ]
528538 );
529- $ this -> dummyDbi ->addResult (
539+ $ dummyDbi ->addResult (
530540 'SELECT @@collation_database ' ,
531541 [
532542 ['utf8_general_ci ' ],
533543 ],
534544 ['@@collation_database ' ]
535545 );
536- $ this -> dummyDbi ->addResult (
546+ $ dummyDbi ->addResult (
537547 'SHOW TABLE STATUS FROM `db1`; ' ,
538548 [
539549 [
@@ -597,7 +607,7 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
597607 ]
598608 );
599609
600- $ this -> dummyDbi ->addResult (
610+ $ dummyDbi ->addResult (
601611 'SHOW TABLE STATUS FROM `db2`; ' ,
602612 [
603613 [
@@ -660,12 +670,12 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
660670 'Comment ' ,
661671 ]
662672 );
663- $ this -> dummyDbi ->addSelectDb ('' );
664- $ this -> dummyDbi ->addSelectDb ('' );
665- $ this -> dummyDbi ->addSelectDb ('db1 ' );
666- $ this -> dummyDbi ->addSelectDb ('db2 ' );
673+ $ dummyDbi ->addSelectDb ('' );
674+ $ dummyDbi ->addSelectDb ('' );
675+ $ dummyDbi ->addSelectDb ('db1 ' );
676+ $ dummyDbi ->addSelectDb ('db2 ' );
667677
668- $ databaseList = $ this -> dbi ->getDatabasesFull (
678+ $ databaseList = $ dbi ->getDatabasesFull (
669679 null ,
670680 true ,
671681 DatabaseInterface::CONNECT_USER ,
@@ -700,6 +710,6 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
700710 ],
701711 ], $ databaseList );
702712
703- $ this ->assertAllQueriesConsumed ();
713+ $ dummyDbi ->assertAllQueriesConsumed ();
704714 }
705715}
0 commit comments