createDatabaseInterface();
//$_POST
$_POST['primary_add_user'] = 'primary_add_user';
//$GLOBALS
$config = Config::getInstance();
$config->settings['MaxRows'] = 10;
$config->settings['ServerDefault'] = 'server';
$config->settings['RememberSorting'] = true;
$config->settings['SQP'] = [];
$config->settings['MaxCharactersInDisplayedSQL'] = 1000;
$config->settings['ShowSQL'] = true;
$config->settings['TableNavigationLinksMode'] = 'icons';
$config->settings['LimitChars'] = 100;
$config->settings['DBG']['sql'] = false;
$config->settings['ShowHint'] = true;
$GLOBALS['table'] = 'table';
$GLOBALS['server'] = 0;
$GLOBALS['urlParams'] = [];
$this->replicationGui = new ReplicationGui(new Replication(DatabaseInterface::getInstance()), new Template());
}
#[Group('medium')]
public function testGetHtmlForPrimaryReplication(): void
{
$html = $this->replicationGui->getHtmlForPrimaryReplication(null, false, 'primary_add_user', null, null);
//validate 1: Primary replication
$this->assertStringContainsString('
', $html);
$this->assertStringContainsString('This server is configured as primary in a replication process.', $html);
//validate 2: getHtmlForReplicationStatusTable
$this->assertStringContainsString('assertStringContainsString('Binlog_Do_DB', $html);
$this->assertStringContainsString('Binlog_Ignore_DB', $html);
$this->assertStringContainsString('primary-bin.000030', $html);
//validate 3: getHtmlForReplicationReplicasTable
$this->assertStringContainsString('replication_replicas_section', $html);
$this->assertStringContainsString('
Server ID | ', $html);
$this->assertStringContainsString('
Host | ', $html);
//replica host
$this->assertStringContainsString('
Server_id1 | ', $html);
$this->assertStringContainsString('
Server_id2 | ', $html);
$this->assertStringContainsString('
Host1 | ', $html);
$this->assertStringContainsString('
Host2 | ', $html);
//Notice
$this->assertStringContainsString('Only replicas started with the', $html);
//validate 4: navigation URL
$this->assertStringContainsString('
', $html);
}
public function testGetHtmlForReplicaConfiguration(): void
{
$replicationInfo = new ReplicationInfo(DatabaseInterface::getInstance());
$replicationInfo->load();
//Call the test function
$html = $this->replicationGui->getHtmlForReplicaConfiguration(
null,
true,
$replicationInfo->getReplicaStatus(),
isset($_POST['replica_configure']),
);
//legend
$this->assertStringContainsString('', $html);
$this->assertStringContainsString('', $html);
//notice
$this->assertStringContainsString('Server is configured as replica in a replication process.', $html);
//replica 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);
}
public function testGetHtmlForReplicationChangePrimary(): void
{
//Call the test function
$html = $this->replicationGui->getHtmlForReplicationChangePrimary('replica_changeprimary');
$this->assertStringContainsString('