getMockBuilder('PhpMyAdmin\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->types = new Types($dbi);
$GLOBALS['dbi'] = $dbi;
// set expectations
$dbi->expects($this->any())
->method('selectDb')
->will($this->returnValue(true));
$dbi->expects($this->any())
->method('getColumns')
->will(
$this->returnValue(
[
"id" => ["Type" => "integer"],
"col1" => ["Type" => 'varchar(100)'],
"col2" => ["Type" => 'DATETIME']
]
)
);
$dbi->expects($this->any())
->method('getColumnNames')
->will($this->returnValue(["id", "col1", "col2"]));
$map = [
[
'PMA_db', 'PMA_table1', DatabaseInterface::CONNECT_USER,
[]
],
[
'PMA_db', 'PMA_table', DatabaseInterface::CONNECT_USER,
[['Key_name' => 'PRIMARY', 'Column_name' => 'id']]
],
[
'PMA_db', 'PMA_table2', DatabaseInterface::CONNECT_USER,
[
['Key_name' => 'PRIMARY', 'Column_name' => 'id'],
['Key_name' => 'PRIMARY', 'Column_name' => 'col1']
]
],
];
$dbi->expects($this->any())
->method('getTableIndexes')
->will($this->returnValueMap($map));
$dbi->expects($this->any())
->method('tryQuery')
->will($this->returnValue(true));
$dbi->expects($this->any())
->method('fetchResult')
->will($this->returnValue([0]));
$this->normalization = new Normalization($dbi);
}
/**
* Test for getHtmlForColumnsList
*
* @return void
*/
public function testGetHtmlForColumnsList()
{
$db = "PMA_db";
$table = "PMA_table";
$this->assertContains(
'',
$this->normalization->getHtmlForColumnsList($table, $db)
);
$this->assertEquals(
'col1 [ varchar(100) ]
',
$this->normalization->getHtmlForColumnsList($table, $db, 'String', 'checkbox')
);
}
/**
* Test for getHtmlForCreateNewColumn
*
* @return void
*/
public function testGetHtmlForCreateNewColumn()
{
$GLOBALS['cfg']['BrowseMIME'] = true;
$GLOBALS['cfg']['MaxRows'] = 25;
$GLOBALS['col_priv'] = false;
$db = "PMA_db";
$table = "PMA_table";
$numFields = 1;
$result = $this->normalization->getHtmlForCreateNewColumn($numFields, $db, $table);
$this->assertContains(
'