replicationGui = new ReplicationGui(new Replication(), new Template()); //$_SESSION //Mock DBI $slave_host = [ [ 'Server_id' => 'Server_id1', 'Host' => 'Host1', ], [ 'Server_id' => 'Server_id2', 'Host' => 'Host2', ], ]; $fetchResult = [ [ "SHOW SLAVE HOSTS", null, null, DatabaseInterface::CONNECT_USER, 0, $slave_host, ], ]; $dbi = $this->getMockBuilder('PhpMyAdmin\DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $dbi->expects($this->any())->method('fetchResult') ->will($this->returnValueMap($fetchResult)); $fields_info = [ "Host" => [ "Field" => "host", "Type" => "char(60)", "Null" => "NO", ], ]; $dbi->expects($this->any())->method('getColumns') ->will($this->returnValue($fields_info)); $GLOBALS['dbi'] = $dbi; } /** * Test for getHtmlForMasterReplication * * @return void * @group medium */ public function testGetHtmlForMasterReplication() { global $master_variables_alerts; global $master_variables_oks; global $strReplicationStatus_master; $master_variables_alerts = null; $master_variables_oks = null; $strReplicationStatus_master = null; //Call the test function $html = $this->replicationGui->getHtmlForMasterReplication(); //validate 1: Master replication $this->assertStringContainsString( 'Master replication', $html ); $this->assertStringContainsString( 'This server is configured as master in a replication process.', $html ); //validate 2: getHtmlForReplicationStatusTable $this->assertStringContainsString( '
assertStringContainsString( "Binlog_Do_DB", $html ); $this->assertStringContainsString( "Binlog_Ignore_DB", $html ); //$server_master_replication $this->assertStringContainsString( "master-bin.000030", $html ); //validate 3: getHtmlForReplicationSlavesTable $this->assertStringContainsString( 'replication_slaves_section', $html ); $this->assertStringContainsString( 'Server ID', $html ); $this->assertStringContainsString( 'Host', $html ); //slave host $this->assertStringContainsString( 'Server_id1', $html ); $this->assertStringContainsString( 'Server_id2', $html ); $this->assertStringContainsString( 'Host1', $html ); $this->assertStringContainsString( 'Host2', $html ); //Notice $this->assertStringContainsString( 'Only slaves started with the', $html ); //validate 4: navigation URL $this->assertStringContainsString( '', $html ); } /** * Test for getHtmlForSlaveConfiguration * * @return void */ public function testGetHtmlForSlaveConfiguration() { global $server_slave_replication; //Call the test function $html = $this->replicationGui->getHtmlForSlaveConfiguration( true, $server_slave_replication ); //legend $this->assertStringContainsString( 'Slave replication', $html ); $this->assertStringContainsString( '
', $html ); //notice $this->assertStringContainsString( 'Server is configured as slave in a replication process.', $html ); //slave session $this->assertStringContainsString( '
assertStringContainsString( 'Master_SSL_CA_Path', $html ); $this->assertStringContainsString( 'Master_SSL_Cert', $html ); $this->assertStringContainsString( 'Master_SSL_Cipher', $html ); $this->assertStringContainsString( 'Seconds_Behind_Master', $html ); } /** * Test for getHtmlForReplicationChangeMaster * * @return void */ public function testGetHtmlForReplicationChangeMaster() { //Call the test function $html = $this->replicationGui->getHtmlForReplicationChangeMaster( 'slave_changemaster' ); $this->assertStringContainsString( '
', $html ); $this->assertStringContainsString( 'Slave configuration', $html ); $this->assertStringContainsString( 'Change or reconfigure master server', $html ); $notice = 'Make sure you have a unique server-id ' . 'in your configuration file (my.cnf)'; $this->assertStringContainsString( $notice, $html ); } }