2017-03-05 10:10:06 -05:00
< ? php namespace Tests ;
class LanguageTest extends TestCase
{
2017-03-05 10:34:54 -05:00
protected $langs ;
/**
* LanguageTest constructor .
*/
2019-09-13 18:58:40 -04:00
public function setUp () : void
2017-03-05 10:34:54 -05:00
{
parent :: setUp ();
2018-12-16 10:46:02 -05:00
$this -> langs = array_diff ( scandir ( resource_path ( 'lang' )), [ '..' , '.' , 'check.php' , 'format.php' ]);
2017-03-05 10:34:54 -05:00
}
2017-04-29 11:47:41 -04:00
public function test_locales_config_key_set_properly ()
{
$configLocales = config ( 'app.locales' );
sort ( $configLocales );
sort ( $this -> langs );
2020-03-04 17:14:25 -05:00
$this -> assertEquals ( implode ( ':' , $configLocales ), implode ( ':' , $this -> langs ), 'app.locales configuration variable does not match those found in lang files' );
2017-04-29 11:47:41 -04:00
}
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 08:34:14 -04: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 10:34:54 -05: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 08:18:26 -04: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 10:10:06 -05:00
}