Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSmita Kumari <kumarismita62@gmail.com>2014-07-20 14:51:42 +0400
committerSmita Kumari <kumarismita62@gmail.com>2014-07-20 18:43:24 +0400
commit4fc196cc85d37714e3b7a2ede3ef6798268fa8f6 (patch)
tree96bbb160c255e560992f8d83e968a9c952e808bf /test
parent9d83647c4efb84db9bc70e45c54a8a6275fb3531 (diff)
Improve unit tests for central columns using MOCK DBI
Signed-off-by: Smita Kumari <kumarismita62@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/libraries/PMA_central_columns_test.php239
1 files changed, 225 insertions, 14 deletions
diff --git a/test/libraries/PMA_central_columns_test.php b/test/libraries/PMA_central_columns_test.php
index d94809c27b..49d1a56d4c 100644
--- a/test/libraries/PMA_central_columns_test.php
+++ b/test/libraries/PMA_central_columns_test.php
@@ -22,6 +22,7 @@ require_once 'libraries/tbl_columns_definition_form.lib.php';
require_once 'libraries/Types.class.php';
require_once 'libraries/mysql_charsets.inc.php';
require_once 'libraries/central_columns.lib.php';
+require_once 'libraries/sqlparser.lib.php';
/**
* tests for central_columns.lib.php
@@ -46,11 +47,58 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
$GLOBALS['cfg']['ActionLinksMode'] = 'icons';
$GLOBALS['pmaThemeImage'] = 'image';
$GLOBALS['cfg']['CharEditing'] = '';
+ $GLOBALS['cfg']['LimitChars'] = 50;
+ $GLOBALS['db'] = 'PMA_db';
+ $GLOBALS['table'] = 'PMA_table';
//$_SESSION
$GLOBALS['server'] = 1;
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
$_SESSION['PMA_Theme'] = new PMA_Theme();
+ $_SESSION['relation'][1] = array(
+ 'central_columnswork'=>true, 'relwork'=>1,
+ 'db'=>'phpmyadmin', 'relation'=>'pma_central_columns'
+ );
+ //mock DBI
+ $dbi = $this->getMockBuilder('PMA_DatabaseInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $GLOBALS['dbi'] = $dbi;
+ // set expectations
+ $dbi->expects($this->any())
+ ->method('selectDb')
+ ->will($this->returnValue(true));
+ $dbi->expects($this->any())
+ ->method('getColumns')
+ ->will(
+ $this->returnValue(
+ array(
+ "id"=>array("Type"=>"integer", "Null"=>"NO"),
+ "col1"=>array("Type"=>'varchar(100)', "Null"=>"YES"),
+ "col2"=>array("Type"=>'DATETIME', "Null"=>"NO")
+ )
+ )
+ );
+ $dbi->expects($this->any())
+ ->method('getColumnNames')
+ ->will($this->returnValue(array("id", "col1", "col2")));
+ $dbi->expects($this->any())
+ ->method('fetchResult')
+ ->will($this->returnValue(array("id", "col1")));
+ $dbi->expects($this->any())
+ ->method('tryQuery')
+ ->will($this->returnValue(true));
+ $dbi->expects($this->any())
+ ->method('fetchValue')
+ ->will(
+ $this->returnValue('PMA_table=CREATE table `PMA_table` (id integer)')
+ );
+ $dbi->expects($this->any())
+ ->method('getTables')
+ ->will(
+ $this->returnValue(array("PMA_table", "PMA_table1", "PMA_table2"))
+ );
+
}
/**
@@ -60,7 +108,12 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
*/
public function testPMACentralColumnsGetParams()
{
- $this->assertFalse(
+ $this->assertSame(
+ array(
+ 'user' => 'pma_user',
+ 'db' => 'phpmyadmin',
+ 'table' => 'pma_central_columns'
+ ),
PMA_centralColumnsGetParams()
);
}
@@ -73,9 +126,13 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
public function testPMAGetColumnsList()
{
$this->assertEquals(
- array(),
+ array("id", "col1"),
PMA_getColumnsList('phpmyadmin')
);
+ $this->assertEquals(
+ array("id", "col1"),
+ PMA_getColumnsList('phpmyadmin', 0, 0)
+ );
}
/**
@@ -86,7 +143,7 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
function testPMAGetCentralColumnsCount()
{
$this->assertEquals(
- 0,
+ 'id',
PMA_getCentralColumnsCount('phpmyadmin')
);
}
@@ -98,13 +155,15 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
*/
public function testPMASyncUniqueColumns()
{
- $field_select = array("column1");
+ $field_select = array("col1");
+ $_POST['db'] = 'PMA_db';
+ $_POST['table'] = 'PMA_table';
$this->assertInstanceOf(
- 'PMA_Message', PMA_syncUniqueColumns($field_select)
+ 'PMA_Message', PMA_syncUniqueColumns($field_select, false)
);
- $field_select = array("table1");
+ $field_select = array("PMA_table");
$this->assertInstanceOf(
- 'PMA_Message', PMA_syncUniqueColumns($field_select, true)
+ 'PMA_Message', PMA_syncUniqueColumns($field_select)
);
}
@@ -115,12 +174,17 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
*/
public function testPMADeleteColumnsFromList()
{
- $field_select = array("phpmydmin");
+ $field_select = array("col1");
+ $_POST['db'] = 'PMA_db';
+ $_POST['table'] = 'PMA_table';
+ $this->assertTrue(
+ PMA_deleteColumnsFromList($field_select, false)
+ );
$this->assertInstanceOf(
- 'PMA_Message', PMA_deleteColumnsFromList($field_select)
+ 'PMA_Message', PMA_deleteColumnsFromList(array('column1'), false)
);
$this->assertInstanceOf(
- 'PMA_Message', PMA_deleteColumnsFromList($field_select, true)
+ 'PMA_Message', PMA_deleteColumnsFromList(array('PMA_table'))
);
}
@@ -131,23 +195,88 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
*/
public function testPMAMakeConsistentWithList()
{
+ $dbi = $GLOBALS['dbi'];
+ $dbitmp = $this->getMockBuilder('PMA_DatabaseInterface')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $GLOBALS['dbi'] = $dbitmp;
+ $dbitmp->expects($this->any())
+ ->method('selectDb')
+ ->will($this->returnValue(true));
+ $dbitmp->expects($this->any())
+ ->method('getColumnNames')
+ ->will($this->returnValue(array("id", "col1", "col2")));
+ $dbitmp->expects($this->any())
+ ->method('tryQuery')
+ ->will($this->returnValue(true));
+ $dbitmp->expects($this->any())
+ ->method('fetchResult')
+ ->will(
+ $this->returnValue(
+ array(
+ array(
+ 'col_name'=>"id", "col_type"=>'integer',
+ 'col_length'=>0, 'col_isNull'=>0, 'col_extra'=>'',
+ 'col_default'=>1
+ ),
+ array('col_name'=>"col1", 'col_type'=>'varchar',
+ 'col_length'=>100, 'col_isNull'=>1, 'col_extra'=>'',
+ 'col_default'=>1
+ ),
+ array(
+ 'col_name'=>"col2", 'col_type'=>'DATETIME',
+ 'col_length'=>0, 'col_isNull'=>1, 'col_extra'=>'',
+ 'col_default'=>'CURRENT_TIMESTAMP'
+ )
+ )
+ )
+ );
+ $dbitmp->expects($this->any())
+ ->method('fetchValue')
+ ->will(
+ $this->returnValue('PMA_table=CREATE table `PMA_table` (id integer)')
+ );
$this->assertTrue(
- PMA_makeConsistentWithList("phpmyadmin", array())
+ PMA_makeConsistentWithList("phpmyadmin", array('PMA_table'))
);
+ $GLOBALS['dbi'] = $dbi;
}
/**
+ * Test for PMA_getCentralColumnsFromTable
+ *
+ * @return void
+ */
+ public function testPMAGetCentralColumnsFromTable()
+ {
+ $db = 'PMA_db';
+ $table = 'PMA_table';
+ $this->assertEquals(
+ array("id", "col1"),
+ PMA_getCentralColumnsFromTable($db, $table)
+ );
+ $this->assertEquals(
+ array("id", "col1"),
+ PMA_getCentralColumnsFromTable($db, $table, true)
+ );
+ }
+ /**
* Test for PMA_updateOneColumn
*
* @return void
*/
public function testPMAUpdateOneColumn()
{
- $this->assertInstanceOf(
- 'PMA_Message', PMA_updateOneColumn(
+ $this->assertTrue(
+ PMA_updateOneColumn(
"phpmyadmin", "", "", "", "", "", "", "", ""
)
);
+ $this->assertTrue(
+ PMA_updateOneColumn(
+ "phpmyadmin", "col1", "", "", "", "", "", "", ""
+ )
+ );
}
/**
@@ -277,9 +406,13 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
public function testPMAGetCentralColumnsListRaw()
{
$this->assertEquals(
- array(),
+ json_encode(array("id", "col1")),
PMA_getCentralColumnsListRaw('phpmyadmin', 'pma_central_columns')
);
+ $this->assertEquals(
+ json_encode(array("id", "col1")),
+ PMA_getCentralColumnsListRaw('phpmyadmin', '')
+ );
}
/**
@@ -302,4 +435,82 @@ class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
$result
);
}
+
+ /**
+ * Test for PMA_configErrorMessage
+ *
+ * @return void
+ */
+ public function testPMAConfigErrorMessage()
+ {
+ $this->assertInstanceOf(
+ 'PMA_Message',
+ PMA_configErrorMessage()
+ );
+ }
+
+ /**
+ * Test for PMA_findExistingColNames
+ *
+ * @return void
+ */
+ public function testPMAFindExistingColNames()
+ {
+ $this->assertEquals(
+ array('id', 'col1'),
+ PMA_findExistingColNames('phpmyadmin', 'col1', true)
+ );
+ }
+
+ /**
+ * Test for PMA_getHTMLforTableDropdown
+ *
+ * @return void
+ */
+ public function testPMAGetHTMLforTableDropdown()
+ {
+ $db = 'PMA_db';
+ $result = PMA_getHTMLforTableDropdown($db);
+ $this->assertTag(array('tag'=>'select', 'id'=>'table-select'), $result);
+ $this->assertTag(
+ array(
+ 'tag'=>'option', 'attributes'=>array('value'=>'PMA_table'),
+ 'content'=>'PMA_table'
+ ), $result
+ );
+ }
+
+ /**
+ * Test for PMA_getHTMLforColumnDropdown
+ *
+ * @return void
+ */
+ public function testPMAGetHTMLforColumnDropdown()
+ {
+ $db = 'PMA_db';
+ $selected_tbl = 'PMA_table';
+ $result = PMA_getHTMLforColumnDropdown($db, $selected_tbl);
+ $this->assertEquals(
+ '<option value="col2">col2</option>',
+ $result
+ );
+ }
+
+ /**
+ * Test for PMA_getHTMLforAddCentralColumn
+ *
+ * @return void
+ */
+ public function testPMAGetHTMLforAddCentralColumn()
+ {
+ $result = PMA_getHTMLforAddCentralColumn(20, 0, 'phpmyadmin');
+ $this->assertTag(array('tag'=>'table', 'tag'=>'form'), $result);
+ $this->assertContains(
+ PMA_URL_getHiddenInputs('phpmyadmin')
+ . '<input type="hidden" name="add_column" value="add">'
+ . '<input type="hidden" name="pos" value="0" />'
+ . '<input type="hidden" name="total_rows" value="20"/>',
+ $result
+ );
+ }
} \ No newline at end of file