Initial commit
This commit is contained in:
277
#pma/test/libraries/PMA_server_status_processes_test.php
Normal file
277
#pma/test/libraries/PMA_server_status_processes_test.php
Normal file
@ -0,0 +1,277 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for server_status_processes.lib.php
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
use PMA\libraries\Theme;
|
||||
|
||||
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
require_once 'libraries/server_status_processes.lib.php';
|
||||
require_once 'libraries/database_interface.inc.php';
|
||||
|
||||
|
||||
|
||||
require_once 'libraries/sanitizing.lib.php';
|
||||
|
||||
/**
|
||||
* class PMA_ServerStatusProcesses_Test
|
||||
*
|
||||
* this class is for testing server_status_processes.lib.php functions
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_ServerStatusProcesses_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for setUp
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['host'] = "localhost";
|
||||
$GLOBALS['PMA_PHP_SELF'] = PMA_getenv('PHP_SELF');
|
||||
$GLOBALS['replication_info']['master']['status'] = true;
|
||||
$GLOBALS['replication_info']['slave']['status'] = false;
|
||||
$GLOBALS['replication_types'] = array();
|
||||
|
||||
$GLOBALS['pmaThemeImage'] = 'image';
|
||||
|
||||
//$_SESSION
|
||||
$_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme');
|
||||
$_SESSION['PMA_Theme'] = new Theme();
|
||||
|
||||
//Mock DBI
|
||||
$dbi = $this->getMockBuilder('PMA\libraries\DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlForProcessListAutoRefresh
|
||||
*
|
||||
* @return void
|
||||
* @group medium
|
||||
*/
|
||||
public function testPMAGetHtmlForProcessListAutoRefresh()
|
||||
{
|
||||
$html = PMA_getHtmlForProcessListAutoRefresh();
|
||||
|
||||
// Test Notice
|
||||
$this->assertContains(
|
||||
'Note: Enabling the auto refresh here might cause '
|
||||
. 'heavy traffic between the web server and the MySQL server.',
|
||||
$html
|
||||
);
|
||||
// Test tab links
|
||||
$this->assertContains(
|
||||
'<div class="tabLinks">',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<a id="toggleRefresh" href="#">',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'play',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'Start auto refresh</a>',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<label>Refresh rate: <select',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<option value="5" selected="selected">5 seconds</option>',
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlForServerProcesslist
|
||||
*
|
||||
* @return void
|
||||
* @group medium
|
||||
*/
|
||||
public function testPMAGetHtmlForServerProcessList()
|
||||
{
|
||||
$process = array(
|
||||
"User" => "User1",
|
||||
"Host" => "Host1",
|
||||
"Id" => "Id1",
|
||||
"db" => "db1",
|
||||
"Command" => "Command1",
|
||||
"Info" => "Info1",
|
||||
"State" => "State1",
|
||||
"Time" => "Time1"
|
||||
);
|
||||
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 12;
|
||||
$GLOBALS['dbi']->expects($this->any())->method('fetchAssoc')
|
||||
->will($this->onConsecutiveCalls($process));
|
||||
|
||||
$html = PMA_getHtmlForServerProcesslist();
|
||||
|
||||
// Test process table
|
||||
$this->assertContains(
|
||||
'<table id="tableprocesslist" '
|
||||
. 'class="data clearfloat noclick sortable">',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'<th>Processes</th>',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'Show Full Queries',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'server_status_processes.php',
|
||||
$html
|
||||
);
|
||||
|
||||
$_REQUEST['full'] = true;
|
||||
$_REQUEST['sort_order'] = 'ASC';
|
||||
$_REQUEST['order_by_field'] = 'db';
|
||||
$_REQUEST['column_name'] = 'Database';
|
||||
$html = PMA_getHtmlForServerProcesslist();
|
||||
|
||||
$this->assertContains(
|
||||
'Truncate Shown Queries',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'Database',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'DESC',
|
||||
$html
|
||||
);
|
||||
|
||||
$_REQUEST['sort_order'] = 'DESC';
|
||||
$_REQUEST['order_by_field'] = 'Host';
|
||||
$_REQUEST['column_name'] = 'Host';
|
||||
$html = PMA_getHtmlForServerProcesslist();
|
||||
|
||||
$this->assertContains(
|
||||
'Host',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'ASC',
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getHtmlForServerProcessItem
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testPMAGetHtmlForServerProcessItem()
|
||||
{
|
||||
//parameters
|
||||
$process = array(
|
||||
"user" => "User1",
|
||||
"host" => "Host1",
|
||||
"id" => "Id1",
|
||||
"db" => "db1",
|
||||
"command" => "Command1",
|
||||
"info" => "Info1",
|
||||
"state" => "State1",
|
||||
"time" => "Time1",
|
||||
);
|
||||
$odd_row = true;
|
||||
$show_full_sql = true;
|
||||
|
||||
$_REQUEST['sort_order'] = "desc";
|
||||
$_REQUEST['order_by_field'] = "process";
|
||||
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 12;
|
||||
|
||||
//Call the test function
|
||||
$html = PMA_getHtmlForServerProcessItem($process, $odd_row, $show_full_sql);
|
||||
|
||||
//validate 1: $kill_process
|
||||
$url_params = array(
|
||||
'kill' => $process['id'],
|
||||
'ajax_request' => true
|
||||
);
|
||||
$kill_process = 'server_status_processes.php'
|
||||
. PMA_URL_getCommon($url_params);
|
||||
$this->assertContains(
|
||||
$kill_process,
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
'ajax kill_process',
|
||||
$html
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Kill'),
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 2: $process['User']
|
||||
$this->assertContains(
|
||||
htmlspecialchars($process['user']),
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 3: $process['Host']
|
||||
$this->assertContains(
|
||||
htmlspecialchars($process['host']),
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 4: $process['db']
|
||||
$this->assertContains(
|
||||
__('None'),
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 5: $process['Command']
|
||||
$this->assertContains(
|
||||
htmlspecialchars($process['command']),
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 6: $process['Time']
|
||||
$this->assertContains(
|
||||
$process['time'],
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 7: $process['state']
|
||||
$this->assertContains(
|
||||
$process['state'],
|
||||
$html
|
||||
);
|
||||
|
||||
//validate 8: $process['info']
|
||||
$this->assertContains(
|
||||
$process['info'],
|
||||
$html
|
||||
);
|
||||
|
||||
unset($process['info']);
|
||||
$html = PMA_getHtmlForServerProcessItem($process, $odd_row, $show_full_sql);
|
||||
|
||||
$this->assertContains(
|
||||
'---',
|
||||
$html
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user