createDbiDummy();
$dummyDbi->addSelectDb('test_db');
$dummyDbi->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']]);
$dummyDbi->addResult(
'SELECT * FROM `test_db`.`test_table` LIMIT 1;',
[['1', 'abcd', '2011-01-20 02:00:02']],
['id', 'name', 'datetimefield'],
);
$dummyDbi->addSelectDb('test_db');
$dbi = $this->createDatabaseInterface($dummyDbi);
DatabaseInterface::$instance = $dbi;
$response = new ResponseRenderer();
$pageSettings = new PageSettings(
new UserPreferences($dbi, new Relation($dbi), new Template()),
);
$pageSettings->init('Edit');
$request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/')
->withQueryParams(['db' => 'test_db', 'table' => 'test_table'])
->withParsedBody(['insert_rows' => '0']);
$config = Config::getInstance();
$config->set('enable_upload', false);
$config->set('InsertRows', 3);
$config->set('ShowFunctionFields', true);
$config->set('ShowFieldTypesInDataEditView', true);
$relation = new Relation($dbi);
$template = new Template();
(new ChangeController(
$response,
$template,
new InsertEdit($dbi, $relation, new Transformations(), new FileListing(), $template, $config),
$relation,
$pageSettings,
new DbTableExists($dbi),
$config,
))($request);
$actual = $response->getHTMLResult();
self::assertStringContainsString($pageSettings->getHTML(), $actual);
self::assertStringContainsString(
'',
$actual,
);
self::assertStringContainsString(
'',
$actual,
);
self::assertStringContainsString(
'',
$actual,
);
self::assertStringContainsString(
'
Type | ',
$actual,
);
self::assertStringContainsString(
'Function | ',
$actual,
);
self::assertStringContainsString(
'',
$actual,
);
$dummyDbi->assertAllSelectsConsumed();
$dummyDbi->assertAllQueriesConsumed();
}
public function testChangeController2(): void
{
Current::$database = 'test_db';
Current::$table = 'test_table';
Current::$whereClause = null;
$dummyDbi = $this->createDbiDummy();
$dummyDbi->addSelectDb('test_db');
$dummyDbi->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']]);
$dummyDbi->addResult(
'SELECT * FROM `test_db`.`test_table` LIMIT 1;',
[['1', 'abcd', '2011-01-20 02:00:02']],
['id', 'name', 'datetimefield'],
);
$dummyDbi->addSelectDb('test_db');
$dbi = $this->createDatabaseInterface($dummyDbi);
DatabaseInterface::$instance = $dbi;
$response = new ResponseRenderer();
$pageSettings = new PageSettings(
new UserPreferences($dbi, new Relation($dbi), new Template()),
);
$pageSettings->init('Edit');
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/')
->withQueryParams(['db' => 'test_db', 'table' => 'test_table'])
->withParsedBody(['insert_rows' => '1']);
$config = Config::getInstance();
$config->set('enable_upload', false);
$config->set('InsertRows', 3);
$config->set('ShowFunctionFields', false);
$config->set('ShowFieldTypesInDataEditView', false);
$relation = new Relation($dbi);
$template = new Template();
(new ChangeController(
$response,
$template,
new InsertEdit($dbi, $relation, new Transformations(), new FileListing(), $template, $config),
$relation,
$pageSettings,
new DbTableExists($dbi),
$config,
))($request);
$actual = $response->getHTMLResult();
self::assertStringContainsString(
'',
$actual,
);
self::assertStringContainsString(
'Show : Function : Type',
$actual,
);
$dummyDbi->assertAllSelectsConsumed();
$dummyDbi->assertAllQueriesConsumed();
}
/**
* Test for urlParamsInEditMode
*/
public function testUrlParamsInEditMode(): void
{
$changeController = new ChangeController(
self::createStub(ResponseRenderer::class),
self::createStub(Template::class),
self::createStub(InsertEdit::class),
self::createStub(Relation::class),
self::createStub(PageSettings::class),
new DbTableExists($this->createDatabaseInterface()),
self::createStub(Config::class),
);
$whereClauseArray = ['foo=1', 'bar=2'];
$_POST['sql_query'] = 'SELECT 1';
$request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/')
->withParsedBody(['sql_query' => 'SELECT 1']);
$result = $changeController->urlParamsInEditMode($request, ['temp' => 1], $whereClauseArray);
self::assertSame(
['temp' => 1, 'where_clause' => 'bar=2', 'sql_query' => 'SELECT 1'],
$result,
);
}
}