Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
Signed-off-by: Madhura Jayaratne <madhura.cj@gmail.com>
  • Loading branch information
madhuracj committed Nov 23, 2015
1 parent 534b13f commit 62dac7f
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 173 deletions.
4 changes: 2 additions & 2 deletions templates/server/databases/table_row.phtml
@@ -1,11 +1,11 @@
<tr <?php echo $tr_class ? ('class="' . $tr_class . '"') : ''; ?>>
<?php if ($GLOBALS['is_superuser'] || $GLOBALS['cfg']['AllowUserDropDatabase']): ?>
<td class="tool">
<input type="checkbox" name="selected_dbs[]" class="checkall" '
<input type="checkbox" name="selected_dbs[]" class="checkall"
title="<?php echo htmlspecialchars($current['SCHEMA_NAME']); ?>"
value="<?php echo htmlspecialchars($current['SCHEMA_NAME']); ?>"
<?php if ($GLOBALS['dbi']->isSystemSchema($current['SCHEMA_NAME'], true)): ?>
disabled="disabled"';
disabled="disabled";
<?php endif; ?>
/>
</td>
Expand Down
@@ -1,21 +1,17 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* tests for server_databases.lib.php
* Holds ServerDatabasesControllerTest class
*
* @package PhpMyAdmin-test
*/

/*
* Include to test.
*/
use PMA\libraries\di\Container;
use PMA\libraries\Theme;


require_once 'libraries/php-gettext/gettext.inc';
require_once 'libraries/build_html_for_db.lib.php';
require_once 'libraries/url_generating.lib.php';
require_once 'libraries/server_databases.lib.php';
require_once 'libraries/mysql_charsets.lib.php';

require_once 'libraries/database_interface.inc.php';
Expand All @@ -26,14 +22,12 @@
require_once 'libraries/config.default.php';

/**
* PMA_ServerDatabases_Test class
*
* this class is for testing server_databases.lib.php functions
* Tests for ServerDatabasesController class
*
* @package PhpMyAdmin-test
*/

class PMA_ServerDatabases_Test extends PHPUnit_Framework_TestCase
class ServerDatabasesControllerTest extends PHPUnit_Framework_TestCase
{
/**
* Prepares environment for the test.
Expand Down Expand Up @@ -72,22 +66,31 @@ public function setUp()
$_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme');
$_SESSION['PMA_Theme'] = new Theme();

$container = Container::getDefaultContainer();
$container->set('dbi', $GLOBALS['dbi']);
$this->response = new \PMA\Test\Stubs\Response();
$container->set('PMA\libraries\Response', $this->response);
$container->alias('response', 'PMA\libraries\Response');
}

/**
* Test for PMA_getHtmlForDatabase
* Tests for _getHtmlForDatabases
*
* @return void
* @group medium
*/
public function testPMAGetHtmlForDatabase()
public function testGetHtmlForDatabase()
{
//Mock DBI
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
->disableOriginalConstructor()
->getMock();

$GLOBALS['dbi'] = $dbi;
$class = new ReflectionClass('\PMA\libraries\controllers\server\ServerDatabasesController');
$method = $class->getMethod('_getHtmlForDatabases');
$method->setAccessible(true);

$container = Container::getDefaultContainer();
$container->factory('PMA\libraries\controllers\server\ServerDatabasesController');
$container->alias(
'ServerDatabasesController', 'PMA\libraries\controllers\server\ServerDatabasesController'
);
$ctrl = $container->get('ServerDatabasesController');

//Call the test function
$databases = array(
Expand Down Expand Up @@ -123,19 +126,7 @@ public function testPMAGetHtmlForDatabase()
);
$url_query = "token=27ae04f0b003a84e5c2796182f361ff1";

$html = PMA_getHtmlForDatabase(
$databases,
$databases_count,
$pos,
$dbstats,
$sort_by,
$sort_order,
$is_superuser,
$cfg,
$replication_types,
$replication_info,
$url_query
);
$html = $method->invoke($ctrl, $replication_types);

//validate 1: General info
$this->assertContains(
Expand Down Expand Up @@ -206,87 +197,78 @@ public function testPMAGetHtmlForDatabase()
}

/**
* Test for PMA_getListForSortDatabase
* Tests for _setSortDetails()
*
* @return void
*/
public function testPMAGetListForSortDatabase()
public function testSetSortDetails()
{
$class = new ReflectionClass('\PMA\libraries\controllers\server\ServerDatabasesController');
$method = $class->getMethod('_getHtmlForDatabases');
$method->setAccessible(true);
$propertySortBy = $class->getProperty('_sort_by');
$propertySortBy->setAccessible(true);
$propertySortOrder = $class->getProperty('_sort_order');
$propertySortOrder->setAccessible(true);

$container = Container::getDefaultContainer();
$container->factory('PMA\libraries\controllers\server\ServerDatabasesController');
$container->alias(
'ServerDatabasesController', 'PMA\libraries\controllers\server\ServerDatabasesController'
);
$ctrl = $container->get('ServerDatabasesController');

//$_REQUEST['sort_by'] and $_REQUEST['sort_order'] are empty
list($sort_by, $sort_order) = PMA_getListForSortDatabase();
$method->invoke($ctrl);
$this->assertEquals(
'SCHEMA_NAME',
$sort_by
$propertySortBy->getValue($ctrl)
);
$this->assertEquals(
'asc',
$sort_order
$propertySortOrder->getValue($ctrl)
);

$container = Container::getDefaultContainer();
$container->factory('PMA\libraries\controllers\server\ServerDatabasesController');
$container->alias(
'ServerDatabasesController', 'PMA\libraries\controllers\server\ServerDatabasesController'
);
$ctrl = $container->get('ServerDatabasesController');

// $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME'
// and $_REQUEST['sort_order'] is not 'desc'
$_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME';
$_REQUEST['sort_order'] = 'abc';
list($sort_by, $sort_order) = PMA_getListForSortDatabase();
$method->invoke($ctrl);
$this->assertEquals(
'DEFAULT_COLLATION_NAME',
$sort_by
$propertySortBy->getValue($ctrl)
);
$this->assertEquals(
'asc',
$sort_order
$propertySortOrder->getValue($ctrl)
);

$container = Container::getDefaultContainer();
$container->factory('PMA\libraries\controllers\server\ServerDatabasesController');
$container->alias(
'ServerDatabasesController', 'PMA\libraries\controllers\server\ServerDatabasesController'
);
$ctrl = $container->get('ServerDatabasesController');

// $_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME'
// and $_REQUEST['sort_order'] is 'desc'
$_REQUEST['sort_by'] = 'DEFAULT_COLLATION_NAME';
$_REQUEST['sort_order'] = 'desc';
list($sort_by, $sort_order) = PMA_getListForSortDatabase();
$method->invoke($ctrl);
$this->assertEquals(
'DEFAULT_COLLATION_NAME',
$sort_by
$propertySortBy->getValue($ctrl)
);
$this->assertEquals(
'desc',
$sort_order
);
}

/**
* Test for PMA_getHtmlForColumnOrder
*
* @return void
*/
public function testPMAGetHtmlForColumnOrder()
{
//Mock DBI
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
->disableOriginalConstructor()
->getMock();

$GLOBALS['dbi'] = $dbi;

$column_order = array(
"first_database" => array(
'format' => 'byte',
'footer' => '10333',
)
);
$first_database = array(
"first_database" => "db1"
$propertySortOrder->getValue($ctrl)
);
$html = PMA_getHtmlForColumnOrder($column_order, $first_database);
$stat = $column_order["first_database" ];
list($value, $unit)
= PMA\libraries\Util::formatByteDown($stat['footer'], 3, 1);
$this->assertContains(
$value,
$html
);
$this->assertContains(
$unit,
$html
);

}
}
91 changes: 0 additions & 91 deletions test/libraries/PMA_build_html_for_db_test.php
Expand Up @@ -99,95 +99,4 @@ public function testGetColumnOrder()
PMA_getColumnOrder()
);
}

/**
* Test for PMA_buildHtmlForDb
*
* @param array $current Current
* @param boolean $is_superuser Is superuser
* @param string $url_query URL query
* @param array $column_order Column order
* @param array $replication_types Replication types
* @param array $replication_info Replication info
* @param array $html_segments HTML segments
*
* @return void
* @dataProvider providerForTestBuildHtmlForDb
*
* @group medium
*/
public function testBuildHtmlForDb($current, $is_superuser,
$url_query, $column_order, $replication_types,
$replication_info, $html_segments
) {
$result = PMA_buildHtmlForDb(
$current, $is_superuser, $url_query,
$column_order, $replication_types, $replication_info
);
$this->assertEquals(
$column_order,
$result[0]
);
foreach ($html_segments as $html_segment) {
$this->assertContains(
$html_segment,
$result[1]
);
}
}

/**
* Data for testBuildHtmlForDb
*
* @return array data for testBuildHtmlForDb test case
*/
public function providerForTestBuildHtmlForDb()
{
return array(
array(
array('SCHEMA_NAME' => 'pma'),
true,
'target=main.php',
PMA_getColumnOrder(),
array(
'SCHEMA_NAME' => 'pma',
),
array(
'pma' => array(
'status' => 'true',
'Ignore_DB' => array(
'pma' => 'pma'
),
)
),
array(
'<td class="tool">',
'<input type="checkbox" name="selected_dbs[]"'
. ' class="checkall" title="pma" value="pma"'
)
),
array(
array('SCHEMA_NAME' => 'INFORMATION_SCHEMA'),
true,
'target=main.php',
PMA_getColumnOrder(),
array(
'SCHEMA_NAME' => 'INFORMATION_SCHEMA',
),
array(
'INFORMATION_SCHEMA' => array(
'status' => 'false',
'Ignore_DB' => array(
'INFORMATION_SCHEMA' => 'INFORMATION_SCHEMA'
)
)
),
array(
'<input type="checkbox" name="selected_dbs[]" class="checkall"'
. ' title="INFORMATION_SCHEMA" value="INFORMATION_SCHEMA"'
. ' disabled="disabled"'
)
)
);
}
}

0 comments on commit 62dac7f

Please sign in to comment.