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( '