2017-03-05 16:10:06 +01:00
|
|
|
<?php namespace Tests;
|
|
|
|
|
|
|
|
class LanguageTest extends TestCase
|
|
|
|
{
|
|
|
|
|
2017-03-05 16:34:54 +01:00
|
|
|
protected $langs;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* LanguageTest constructor.
|
|
|
|
*/
|
2019-09-14 00:58:40 +02:00
|
|
|
public function setUp(): void
|
2017-03-05 16:34:54 +01:00
|
|
|
{
|
|
|
|
parent::setUp();
|
2018-12-16 16:46:02 +01:00
|
|
|
$this->langs = array_diff(scandir(resource_path('lang')), ['..', '.', 'check.php', 'format.php']);
|
2017-03-05 16:34:54 +01:00
|
|
|
}
|
|
|
|
|
2017-04-29 17:47:41 +02:00
|
|
|
public function test_locales_config_key_set_properly()
|
|
|
|
{
|
|
|
|
$configLocales = config('app.locales');
|
|
|
|
sort($configLocales);
|
|
|
|
sort($this->langs);
|
|
|
|
$this->assertTrue(implode(':', $this->langs) === implode(':', $configLocales), 'app.locales configuration variable matches found lang files');
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_correct_language_if_not_logged_in()
|
|
|
|
{
|
|
|
|
$loginReq = $this->get('/login');
|
|
|
|
$loginReq->assertSee('Log In');
|
|
|
|
|
|
|
|
$loginPageFrenchReq = $this->get('/login', ['Accept-Language' => 'fr']);
|
|
|
|
$loginPageFrenchReq->assertSee('Se Connecter');
|
|
|
|
}
|
|
|
|
|
2018-08-12 14:34:14 +02:00
|
|
|
public function test_public_lang_autodetect_can_be_disabled()
|
|
|
|
{
|
|
|
|
config()->set('app.auto_detect_locale', false);
|
|
|
|
$loginReq = $this->get('/login');
|
|
|
|
$loginReq->assertSee('Log In');
|
|
|
|
|
|
|
|
$loginPageFrenchReq = $this->get('/login', ['Accept-Language' => 'fr']);
|
|
|
|
$loginPageFrenchReq->assertDontSee('Se Connecter');
|
|
|
|
}
|
|
|
|
|
2017-03-05 16:34:54 +01:00
|
|
|
public function test_all_lang_files_loadable()
|
|
|
|
{
|
|
|
|
$files = array_diff(scandir(resource_path('lang/en')), ['..', '.']);
|
|
|
|
foreach ($this->langs as $lang) {
|
|
|
|
foreach ($files as $file) {
|
|
|
|
$loadError = false;
|
|
|
|
try {
|
|
|
|
$translations = trans(str_replace('.php', '', $file), [], $lang);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
$loadError = true;
|
|
|
|
}
|
|
|
|
$this->assertFalse($loadError, "Translation file {$lang}/{$file} failed to load");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-22 14:18:26 +02:00
|
|
|
public function test_rtl_config_set_if_lang_is_rtl()
|
|
|
|
{
|
|
|
|
$this->asEditor();
|
|
|
|
$this->assertFalse(config('app.rtl'), "App RTL config should be false by default");
|
|
|
|
setting()->putUser($this->getEditor(), 'language', 'ar');
|
|
|
|
$this->get('/');
|
|
|
|
$this->assertTrue(config('app.rtl'), "App RTL config should have been set to true by middleware");
|
|
|
|
}
|
|
|
|
|
2017-03-05 16:10:06 +01:00
|
|
|
}
|