getMockBuilder('PMA\libraries\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); //this data is needed when ServerStatusData constructs $server_status = array( "Aborted_clients" => "0", "Aborted_connects" => "0", "Com_delete_multi" => "0", "Com_create_function" => "0", "Com_empty_query" => "0", ); $server_variables= array( "auto_increment_increment" => "1", "auto_increment_offset" => "1", "automatic_sp_privileges" => "ON", "back_log" => "50", "big_tables" => "OFF", ); $fetchResult = array( array( "SHOW GLOBAL STATUS", 0, 1, null, 0, $server_status ), array( "SHOW GLOBAL VARIABLES", 0, 1, null, 0, $server_variables ) ); $dbi->expects($this->any())->method('fetchResult') ->will($this->returnValueMap($fetchResult)); $GLOBALS['dbi'] = $dbi; $this->ServerStatusData = new ServerStatusData(); $upTime = "10h"; $this->ServerStatusData->status['Uptime'] = $upTime; $this->ServerStatusData->used_queries = array( "Com_change_db" => "15", "Com_select" => "12", "Com_set_option" => "54", "Com_show_databases" => "16", "Com_show_status" => "14", "Com_show_tables" => "13", ); } /** * Test for PMA_getHtmlForQueryStatistics * * @return void */ public function testPMAGetHtmlForQueryStatistics() { //Call the test function $html = PMA_getHtmlForQueryStatistics($this->ServerStatusData); $hour_factor = 3600 / $this->ServerStatusData->status['Uptime']; $used_queries = $this->ServerStatusData->used_queries; $total_queries = array_sum($used_queries); $questions_from_start = sprintf( __('Questions since startup: %s'), PMA\libraries\Util::formatNumber($total_queries, 0) ); //validate 1: PMA_getHtmlForQueryStatistics $this->assertContains( '

', $html ); $this->assertContains( $questions_from_start, $html ); //validate 2: per hour $this->assertContains( __('per hour:'), $html ); $this->assertContains( PMA\libraries\Util::formatNumber($total_queries * $hour_factor, 0), $html ); //validate 3:per minute $value_per_minute = PMA\libraries\Util::formatNumber( $total_queries * 60 / $this->ServerStatusData->status['Uptime'], 0 ); $this->assertContains( __('per minute:'), $html ); $this->assertContains( $value_per_minute, $html ); } /** * Test for PMA_getHtmlForServerStatusQueriesDetails * * @return void */ public function testPMAGetHtmlForServerStatusQueriesDetails() { //Call the test function $html = PMA_getHtmlForServerStatusQueriesDetails($this->ServerStatusData); //validate 1: PMA_getHtmlForServerStatusQueriesDetails $this->assertContains( __('Statements'), $html ); //validate 2: used queries $this->assertContains( htmlspecialchars("change db"), $html ); $this->assertContains( '54', $html ); $this->assertContains( htmlspecialchars("select"), $html ); $this->assertContains( htmlspecialchars("set option"), $html ); $this->assertContains( htmlspecialchars("show databases"), $html ); $this->assertContains( htmlspecialchars("show status"), $html ); $this->assertContains( htmlspecialchars("show tables"), $html ); //validate 3:serverstatusquerieschart $this->assertContains( '
', $html ); $this->assertContains( '