1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Import;
use PhpMyAdmin\Controllers\Import\ImportController;
use PhpMyAdmin\Tests\AbstractTestCase;
/**
* @covers \PhpMyAdmin\Controllers\Import\ImportController
*/
class ImportControllerTest extends AbstractTestCase
{
public function testIndexParametrized(): void
{
global $containerBuilder, $db, $table, $sql_query;
parent::loadContainerBuilder();
parent::loadDbiIntoContainerBuilder();
parent::setLanguage();
parent::setTheme();
$GLOBALS['server'] = 1;
$GLOBALS['cfg']['Server']['user'] = 'user';
$GLOBALS['PMA_PHP_SELF'] = 'index.php';
parent::loadResponseIntoContainerBuilder();
// Some params where not added as they where not required for this test
$_POST['db'] = 'pma_test';
$_POST['table'] = 'table1';
$db = $_POST['db'];
$table = $_POST['table'];
$_POST['parameterized'] = 'on';
$_POST['parameters'] = [':nomEta' => 'Saint-Louis - Châteaulin', ':1' => '4'];
$_POST['sql_query'] = 'SELECT A.*' . "\n"
. 'FROM table1 A' . "\n"
. 'WHERE A.nomEtablissement = :nomEta AND foo = :1 AND `:a` IS NULL';
$sql_query = $_POST['sql_query'];
$this->dummyDbi->addResult(
'SELECT A.* FROM table1 A WHERE A.nomEtablissement = \'Saint-Louis - Châteaulin\''
. ' AND foo = 4 AND `:a` IS NULL LIMIT 0, 25',
[]
);
$this->dummyDbi->addResult(
'SHOW CREATE TABLE `pma_test`.`table1`',
[]
);
$this->dummyDbi->addResult(
'SHOW FULL COLUMNS FROM `pma_test`.`table1`',
[]
);
/** @var ImportController $importController */
$importController = $containerBuilder->get(ImportController::class);
$this->dummyDbi->addSelectDb('pma_test');
$this->dummyDbi->addSelectDb('pma_test');
$importController();
$this->assertAllSelectsConsumed();
$this->assertResponseWasSuccessfull();
$this->assertStringContainsString(
'MySQL returned an empty result set (i.e. zero rows).',
$this->getResponseHtmlResult()
);
$this->assertStringContainsString(
'SELECT A.*' . "\n" . 'FROM table1 A' . "\n"
. 'WHERE A.nomEtablissement = \'Saint-Louis - Châteaulin\' AND foo = 4 AND `:a` IS NULL',
$this->getResponseHtmlResult()
);
$this->assertAllQueriesConsumed();
}
}
|