diff --git a/test/libraries/PMA_server_status_test.php b/test/libraries/PMA_server_status_test.php new file mode 100644 index 0000000000..d31b55ea84 --- /dev/null +++ b/test/libraries/PMA_server_status_test.php @@ -0,0 +1,227 @@ +getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + + //this data is needed when PMA_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 + ), + array( + "SELECT concat('Com_', variable_name), variable_value " + . "FROM data_dictionary.GLOBAL_STATEMENTS", + 0, + 1, + null, + 0, + $server_status + ), + ); + + $dbi->expects($this->any())->method('fetchResult') + ->will($this->returnValueMap($fetchResult)); + + $GLOBALS['dbi'] = $dbi; + + $this->ServerStatusData = new PMA_ServerStatusData(); + } + + /** + * Test for PMA_getHtmlForServerStatus + * + * @return void + */ + public function testPMAGetHtmlForServerStatus() + { + //paramaters + $upTime = "10h"; + $bytes_received = 100; + $bytes_sent = 200; + $max_used_conn = 500; + $aborted_conn = 200; + $conn = 1000; + $this->ServerStatusData->status['Uptime'] = $upTime; + $this->ServerStatusData->status['Bytes_received'] = $bytes_received; + $this->ServerStatusData->status['Bytes_sent'] = $bytes_sent; + $this->ServerStatusData->status['Max_used_connections'] = $max_used_conn; + $this->ServerStatusData->status['Aborted_connects'] = $aborted_conn; + $this->ServerStatusData->status['Connections'] = $conn; + + //Call the test function + $html = PMA_getHtmlForServerStatus($this->ServerStatusData); + + //validate 1: PMA_getHtmlForServerStateGeneralInfo + //traffic: $bytes_received + $bytes_sent + $traffic = $bytes_received + $bytes_sent; + $traffic_html = 'Network traffic since startup: ' . $traffic . ' B'; + $this->assertContains( + $traffic_html, + $html + ); + //updatetime + $upTime_html = 'This MySQL server has been running for ' + . '0 days, 0 hours, 0 minutes and 10h seconds'; + $this->assertContains( + $upTime_html, + $html + ); + //master state + $master_html = 'This MySQL server works as master'; + $this->assertContains( + $master_html, + $html + ); + + //validate 2: PMA_getHtmlForServerStateTraffic + $traffic_html = ''; + $this->assertContains( + $traffic_html, + $html + ); + //traffic hint + $traffic_html = 'On a busy server, the byte counters may overrun'; + $this->assertContains( + $traffic_html, + $html + ); + //$bytes_received + $this->assertContains( + '
' . $bytes_received . ' B', + $html + ); + //$bytes_sent + $this->assertContains( + '' . $bytes_sent . ' B', + $html + ); + + //validate 3: PMA_getHtmlForServerStateConnections + $this->assertContains( + '', + $html + ); + $this->assertContains( + '', + $html + ); + //Max_used_connections + $this->assertContains( + '
max. concurrent connections' . $max_used_conn, + $html + ); + //Aborted_connects + $this->assertContains( + '' . $aborted_conn, + $html + ); + } +} +