phpmyadmin/test/classes/Plugins/Import/ImportXmlTest.php
Maurício Meneghini Fauth 92cc67fbf7 Replace assertContains() with assertStringContainsString()
Using assertContains() with string haystacks is deprecated and will not be supported in PHPUnit 9. Refactor your test to use assertStringContainsString() or assertStringContainsStringIgnoringCase() instead.
Using assertNotContains() with string haystacks is deprecated and will not be supported in PHPUnit 9. Refactor your test to use assertStringNotContainsString() or assertStringNotContainsStringIgnoringCase() instead.

Signed-off-by: Maurício Meneghini Fauth <mauriciofauth@gmail.com>
2019-02-24 16:32:28 -03:00

161 lines
4.1 KiB
PHP

<?php
/**
* Tests for PhpMyAdmin\Plugins\Import\ImportXml class
*
* @package PhpMyAdmin-test
*/
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\Import;
use PhpMyAdmin\File;
use PhpMyAdmin\Plugins\Import\ImportXml;
use PhpMyAdmin\Tests\PmaTestCase;
/**
* Tests for PhpMyAdmin\Plugins\Import\ImportXml class
*
* @package PhpMyAdmin-test
*/
class ImportXmlTest extends PmaTestCase
{
/**
* @access protected
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*
* @access protected
* @return void
*/
protected function setUp(): void
{
$GLOBALS['server'] = 0;
$this->object = new ImportXml();
//setting
$GLOBALS['finished'] = false;
$GLOBALS['read_limit'] = 100000000;
$GLOBALS['offset'] = 0;
$GLOBALS['cfg']['Server']['DisableIS'] = false;
$GLOBALS['import_file'] = 'test/test_data/phpmyadmin_importXML_'
. 'For_Testing.xml';
$GLOBALS['import_text'] = 'ImportXml_Test';
$GLOBALS['compression'] = 'none';
$GLOBALS['read_multiply'] = 10;
$GLOBALS['import_type'] = 'Xml';
$GLOBALS['import_handle'] = new File($GLOBALS['import_file']);
$GLOBALS['import_handle']->open();
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*
* @access protected
* @return void
*/
protected function tearDown(): void
{
unset($this->object);
}
/**
* Test for getProperties
*
* @return void
*
* @group medium
*/
public function testGetProperties()
{
$properties = $this->object->getProperties();
$this->assertEquals(
__('XML'),
$properties->getText()
);
$this->assertEquals(
'xml',
$properties->getExtension()
);
$this->assertEquals(
'text/xml',
$properties->getMimeType()
);
$this->assertEquals(
[],
$properties->getOptions()
);
$this->assertEquals(
__('Options'),
$properties->getOptionsText()
);
}
/**
* Test for doImport
*
* @return void
*
* @group medium
*/
public function testDoImport()
{
//$import_notice will show the import detail result
global $import_notice;
//Mock DBI
$dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$GLOBALS['dbi'] = $dbi;
//Test function called
$this->object->doImport();
// If import successfully, PMA will show all databases and tables
// imported as following HTML Page
/*
The following structures have either been created or altered. Here you
can:
View a structure's contents by clicking on its name
Change any of its settings by clicking the corresponding "Options" link
Edit structure by following the "Structure" link
phpmyadmintest (Options)
pma_bookmarktest (Structure) (Options)
*/
//asset that all databases and tables are imported
$this->assertStringContainsString(
'The following structures have either been created or altered.',
$import_notice
);
$this->assertStringContainsString(
'Go to database: `phpmyadmintest`',
$import_notice
);
$this->assertStringContainsString(
'Edit settings for `phpmyadmintest`',
$import_notice
);
$this->assertStringContainsString(
'Go to table: `pma_bookmarktest`',
$import_notice
);
$this->assertStringContainsString(
'Edit settings for `pma_bookmarktest`',
$import_notice
);
$this->assertEquals(
true,
$GLOBALS['finished']
);
}
}