setLanguage();
DatabaseInterface::$instance = $this->createDatabaseInterface();
Current::$server = 2;
Current::$database = 'db';
Current::$table = 'table';
$this->object = new AuthenticationConfig(new ResponseRendererStub());
}
public function testShowLoginFormWithoutAjax(): void
{
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
$responseRenderer = ResponseRenderer::getInstance();
$responseRenderer->setAjax(false);
$this->object = new AuthenticationConfig($responseRenderer);
self::assertNull($this->object->showLoginForm());
}
public function testShowLoginFormWithAjax(): void
{
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
$responseRenderer = ResponseRenderer::getInstance();
$responseRenderer->setAjax(true);
$this->object = new AuthenticationConfig($responseRenderer);
$response = $this->object->showLoginForm();
self::assertNotNull($response);
$body = (string) $response->getBody();
self::assertJson($body);
$json = json_decode($body, true);
self::assertIsArray($json);
self::assertArrayHasKey('reload_flag', $json);
self::assertSame('1', $json['reload_flag']);
}
public function testAuthCheck(): void
{
Config::getInstance()->selectedServer = ['user' => 'username', 'password' => 'password'];
self::assertTrue(
$this->object->readCredentials(),
);
}
public function testAuthSetUser(): void
{
self::assertTrue(
$this->object->storeCredentials(),
);
}
public function testAuthFails(): void
{
Config::getInstance()->settings['Servers'] = [1];
$dbi = $this->getMockBuilder(DatabaseInterface::class)
->disableOriginalConstructor()
->getMock();
DatabaseInterface::$instance = $dbi;
$response = $this->object->showFailure(AuthenticationFailure::deniedByDatabaseServer());
$html = (string) $response->getBody();
self::assertStringContainsString(
'You probably did not create a configuration file. You might want ' .
'to use the setup script to create one.',
$html,
);
self::assertStringContainsString(
'Retry to connect',
$html,
);
}
}