'bar ', '1' => ' test');
$_REQUEST['clause_is_unique'] = false;
$_REQUEST['sql_query'] = 'SELECT a';
$GLOBALS['goto'] = 'index.php';
$result = PMA_getFormParametersForInsertForm(
'dbname', 'tablename', array(), $where_clause, 'localhost'
);
$this->assertEquals(
array(
'db' => 'dbname',
'table' => 'tablename',
'goto' => 'index.php',
'err_url' => 'localhost',
'sql_query' => 'SELECT a',
'where_clause[foo]' => 'bar',
'where_clause[1]' => 'test',
'clause_is_unique' => false
),
$result
);
}
/**
* Test for PMA_getWhereClauseArray
*
* @return void
*/
public function testGetWhereClauseArray()
{
$this->assertEquals(
array(),
PMA_getWhereClauseArray(null)
);
$this->assertEquals(
array(1, 2, 3),
PMA_getWhereClauseArray(array(1, 2, 3))
);
$this->assertEquals(
array('clause'),
PMA_getWhereClauseArray('clause')
);
}
/**
* Test for PMA_analyzeWhereClauses
*
* @return void
*/
public function testAnalyzeWhereClause()
{
$clauses = array('a=1', 'b="fo\o"');
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->exactly(2))
->method('query')
->willReturnOnConsecutiveCalls(
'result1',
'result2'
);
$dbi->expects($this->exactly(2))
->method('fetchAssoc')
->willReturnOnConsecutiveCalls(
array('assoc1'),
array('assoc2')
);
$GLOBALS['dbi'] = $dbi;
$result = PMA_analyzeWhereClauses($clauses, 'table', 'db');
$this->assertEquals(
array(
array('a=1', 'b="fo\\\\o"'),
array('result1', 'result2'),
array(
array('assoc1'),
array('assoc2')
),
''
),
$result
);
}
/**
* Test for PMA_showEmptyResultMessageOrSetUniqueCondition
*
* @return void
*/
public function testShowEmptyResultMessageOrSetUniqueCondition()
{
$temp = new stdClass;
$temp->orgname = 'orgname';
$temp->table = 'table';
$temp->type = 'real';
$temp->primary_key = 1;
$meta_arr = array($temp);
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->at(0))
->method('getFieldsMeta')
->with('result1')
->will($this->returnValue($meta_arr));
$GLOBALS['dbi'] = $dbi;
$result = PMA_showEmptyResultMessageOrSetUniqueCondition(
array('1' => array('1' => 1)), 1, array(),
'SELECT', array('1' => 'result1')
);
$this->assertTrue($result);
// case 2
$GLOBALS['cfg']['ShowSQL'] = false;
$responseMock = $this->getMockBuilder('PMA\libraries\Response')
->disableOriginalConstructor()
->setMethods(array('addHtml'))
->getMock();
$restoreInstance = PMA\libraries\Response::getInstance();
$response = new ReflectionProperty('PMA\libraries\Response', '_instance');
$response->setAccessible(true);
$response->setValue($responseMock);
$result = PMA_showEmptyResultMessageOrSetUniqueCondition(
array(false), 0, array('1'), 'SELECT', array('1' => 'result1')
);
$response->setValue($restoreInstance);
$this->assertFalse($result);
}
/**
* Test for PMA_loadFirstRow
*
* @return void
*/
public function testLoadFirstRow()
{
$GLOBALS['cfg']['InsertRows'] = 2;
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->at(0))
->method('query')
->with(
'SELECT * FROM `db`.`table` LIMIT 1;',
null,
PMA\libraries\DatabaseInterface::QUERY_STORE
)
->will($this->returnValue('result1'));
$GLOBALS['dbi'] = $dbi;
$result = PMA_loadFirstRow('table', 'db');
$this->assertEquals(
array('result1', array(false, false)),
$result
);
}
/**
* Test for PMA_urlParamsInEditMode
*
* @return void
*/
public function testUrlParamsInEditMode()
{
$where_clause_array = array('foo=1', 'bar=2');
$_REQUEST['sql_query'] = 'SELECT 1';
$result = PMA_urlParamsInEditMode(array(1), $where_clause_array, '');
$this->assertEquals(
array(
'0' => 1,
'where_clause' => 'bar=2',
'sql_query' => 'SELECT 1'
),
$result
);
}
/**
* Test for PMA_showTypeOrFunction
*
* @return void
*/
public function testShowTypeOrFunction()
{
$GLOBALS['cfg']['ShowFieldTypesInDataEditView'] = true;
$GLOBALS['cfg']['ServerDefault'] = 1;
$url_params = array('ShowFunctionFields' => 2);
$result = PMA_showTypeOrFunction('function', $url_params, false);
$this->assertEquals(
' : '
. 'Function',
$result
);
// case 2
$result = PMA_showTypeOrFunction('function', $url_params, true);
$this->assertEquals(
'
Function | ',
$result
);
// case 3
$result = PMA_showTypeOrFunction('type', $url_params, false);
$this->assertEquals(
' : '
. 'Type',
$result
);
// case 4
$result = PMA_showTypeOrFunction('type', $url_params, true);
$this->assertEquals(
'Type | ',
$result
);
}
/**
* Test for PMA_analyzeTableColumnsArray
*
* @return void
*/
public function testAnalyzeTableColumnsArray()
{
$column = array(
'Field' => '1<2',
'Field_md5' => 'pswd',
'Type' => 'float(10, 1)'
);
$result = PMA_analyzeTableColumnsArray(
$column, array(), false
);
$this->assertEquals(
$result['Field_html'],
'1<2'
);
$this->assertEquals(
$result['Field_md5'],
'4342210df36bf2ff2c4e2a997a6d4089'
);
$this->assertEquals(
$result['True_Type'],
'float'
);
$this->assertEquals(
$result['len'],
100
);
$this->assertEquals(
$result['Field_title'],
'1<2'
);
$this->assertEquals(
$result['is_binary'],
false
);
$this->assertEquals(
$result['is_blob'],
false
);
$this->assertEquals(
$result['is_char'],
false
);
$this->assertEquals(
$result['pma_type'],
'float(10, 1)'
);
$this->assertEquals(
$result['wrap'],
' nowrap'
);
$this->assertEquals(
$result['Field'],
'1<2'
);
}
/**
* Test for PMA_getColumnTitle
*
* @return void
*/
public function testGetColumnTitle()
{
$column = array();
$column['Field'] = 'f1<';
$column['Field_html'] = 'f1<';
$this->assertEquals(
PMA_getColumnTitle($column, array()),
'f1<'
);
$comments = array();
$comments['f1<'] = 'comment>';
$result = PMA_getColumnTitle($column, $comments);
$this->assertContains(
'title="comment>"',
$result
);
$this->assertContains(
'f1<',
$result
);
}
/**
* Test for PMA_isColumn
*
* @return void
*/
public function testIsColumn()
{
$column = array();
$types = array('binary', 'varbinary');
$column['Type'] = 'binaryfoo';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'Binaryfoo';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'varbinaryfoo';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'barbinaryfoo';
$this->assertFalse(PMA_isColumn($column, $types));
$types = array('char', 'varchar');
$column['Type'] = 'char(10)';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'VarChar(20)';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'foochar';
$this->assertFalse(PMA_isColumn($column, $types));
$types = array('blob', 'tinyblob', 'mediumblob', 'longblob');
$column['Type'] = 'blob';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'bloB';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'mediumBloB';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'tinyblobabc';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'longblob';
$this->assertTrue(PMA_isColumn($column, $types));
$column['Type'] = 'foolongblobbar';
$this->assertFalse(PMA_isColumn($column, $types));
}
/**
* Test for PMA_getEnumSetAndTimestampColumns
*
* @return void
*/
public function testGetEnumAndTimestampColumns()
{
$column = array();
$column['True_Type'] = 'set';
$this->assertEquals(
array('set', '', false),
PMA_getEnumSetAndTimestampColumns($column, false)
);
$column['True_Type'] = 'enum';
$this->assertEquals(
array('enum', '', false),
PMA_getEnumSetAndTimestampColumns($column, false)
);
$column['True_Type'] = 'timestamp';
$column['Type'] = 'date';
$this->assertEquals(
array('date', ' nowrap', true),
PMA_getEnumSetAndTimestampColumns($column, false)
);
$column['True_Type'] = 'timestamp';
$column['Type'] = 'date';
$this->assertEquals(
array('date', ' nowrap', false),
PMA_getEnumSetAndTimestampColumns($column, true)
);
$column['True_Type'] = 'SET';
$column['Type'] = 'num';
$this->assertEquals(
array('num', ' nowrap', false),
PMA_getEnumSetAndTimestampColumns($column, false)
);
$column['True_Type'] = '';
$column['Type'] = 'num';
$this->assertEquals(
array('num', ' nowrap', false),
PMA_getEnumSetAndTimestampColumns($column, false)
);
}
/**
* Test for PMA_getFunctionColumn
*
* @return void
*/
public function testGetFunctionColumn()
{
$GLOBALS['cfg']['ProtectBinary'] = 'blob';
$column = array();
$column['is_blob'] = true;
$this->assertContains(
'Binary | ',
PMA_getFunctionColumn(
$column, false, '', '', array(), 0, 0, 0, false, false, array()
)
);
$GLOBALS['cfg']['ProtectBinary'] = 'all';
$column['is_binary'] = true;
$this->assertContains(
'Binary | ',
PMA_getFunctionColumn(
$column, true, '', '', array(), 0, 0, 0, false, false, array()
)
);
$GLOBALS['cfg']['ProtectBinary'] = 'noblob';
$column['is_blob'] = false;
$this->assertContains(
'Binary | ',
PMA_getFunctionColumn(
$column, true, '', '', array(), 0, 0, 0, false, false, array()
)
);
$GLOBALS['cfg']['ProtectBinary'] = false;
$column['True_Type'] = 'enum';
$this->assertContains(
'-- | ',
PMA_getFunctionColumn(
$column, true, '', '', array(), 0, 0, 0, false, false, array()
)
);
$column['True_Type'] = 'set';
$this->assertContains(
'-- | ',
PMA_getFunctionColumn(
$column, true, '', '', array(), 0, 0, 0, false, false, array()
)
);
$column['True_Type'] = '';
$column['pma_type'] = 'int';
$this->assertContains(
'-- | ',
PMA_getFunctionColumn(
$column, true, '', '', array('int'), 0, 0, 0, false, false, array()
)
);
$GLOBALS['PMA_Types'] = new Types;
$column['Field'] = 'num';
$this->assertContains(
'