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(
+ '| max. concurrent connections | ',
+ $html
+ );
+ //Max_used_connections
+ $this->assertContains(
+ '' . $max_used_conn,
+ $html
+ );
+ //Aborted_connects
+ $this->assertContains(
+ ' | ' . $aborted_conn,
+ $html
+ );
+ }
+}
+
| |