From a59be33d71ad4ea6db2744932e5da24d93de40ba Mon Sep 17 00:00:00 2001 From: William Desportes Date: Tue, 17 Mar 2026 10:53:11 +0100 Subject: [PATCH] Backport XML tests for no database (#20153) and improve GIS test From: 7985b04f2d291f7694564a076651ec7061b67709 Pull-request: #20170 Signed-off-by: William Desportes --- test/classes/Plugins/Import/ImportXmlTest.php | 39 +++++++++++++++++-- ... phpmyadmin_importXML_GIS_For_Testing.xml} | 0 ...dmin_importXML_No_Database_For_Testing.xml | 13 +++++++ 3 files changed, 49 insertions(+), 3 deletions(-) rename test/test_data/{test.xml => phpmyadmin_importXML_GIS_For_Testing.xml} (100%) create mode 100644 test/test_data/phpmyadmin_importXML_No_Database_For_Testing.xml diff --git a/test/classes/Plugins/Import/ImportXmlTest.php b/test/classes/Plugins/Import/ImportXmlTest.php index 6a996d556d..209dee5ef3 100644 --- a/test/classes/Plugins/Import/ImportXmlTest.php +++ b/test/classes/Plugins/Import/ImportXmlTest.php @@ -115,12 +115,12 @@ class ImportXmlTest extends AbstractTestCase } /** - * Test for doImport using second dataset + * Test for doImport using the GIS dataset * * @group medium * @requires extension simplexml */ - public function testDoImportDataset2(): void + public function testDoImportDatasetGIS(): void { global $import_notice; @@ -129,7 +129,7 @@ class ImportXmlTest extends AbstractTestCase ->getMock(); $GLOBALS['dbi'] = $dbi; - $GLOBALS['import_file'] = 'test/test_data/test.xml'; + $GLOBALS['import_file'] = 'test/test_data/phpmyadmin_importXML_GIS_For_Testing.xml'; $importHandle = new File($GLOBALS['import_file']); $importHandle->open(); @@ -146,4 +146,37 @@ class ImportXmlTest extends AbstractTestCase self::assertStringContainsString('Edit settings for `test`', $import_notice); self::assertTrue($GLOBALS['finished']); } + + /** + * Test for doImport using no database dataset + * + * @group medium + * @requires extension simplexml + */ + public function testDoImportDatasetNoDatabase(): void + { + global $import_notice; + + $dbi = $this->getMockBuilder(DatabaseInterface::class) + ->disableOriginalConstructor() + ->getMock(); + $GLOBALS['dbi'] = $dbi; + + $GLOBALS['import_file'] = 'test/test_data/phpmyadmin_importXML_No_Database_For_Testing.xml'; + + $importHandle = new File($GLOBALS['import_file']); + $importHandle->open(); + + $this->object->doImport($importHandle); + + self::assertStringContainsString( + 'The following structures have either been created or altered.', + $import_notice + ); + self::assertStringContainsString('Go to database: `test25`', $import_notice); + self::assertStringContainsString('Edit settings for `test`', $import_notice); + self::assertStringContainsString('Go to table: `test`', $import_notice); + self::assertStringContainsString('Edit settings for `test`', $import_notice); + self::assertTrue($GLOBALS['finished']); + } } diff --git a/test/test_data/test.xml b/test/test_data/phpmyadmin_importXML_GIS_For_Testing.xml similarity index 100% rename from test/test_data/test.xml rename to test/test_data/phpmyadmin_importXML_GIS_For_Testing.xml diff --git a/test/test_data/phpmyadmin_importXML_No_Database_For_Testing.xml b/test/test_data/phpmyadmin_importXML_No_Database_For_Testing.xml new file mode 100644 index 0000000000..e12a705d0f --- /dev/null +++ b/test/test_data/phpmyadmin_importXML_No_Database_For_Testing.xml @@ -0,0 +1,13 @@ + + + + + + CREATE TABLE `test` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`) + ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + + + + \ No newline at end of file