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(
'
',
$html
);
$this->assertContains(
'
',
$html
);
$this->assertContains(
'play',
$html
);
$this->assertContains(
'Start auto refresh ',
$html
);
$this->assertContains(
'
Refresh rate: assertContains(
'5 seconds ',
$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(
'',
$html
);
$this->assertContains(
'Processes ',
$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
);
}
}