diff options
Diffstat (limited to 'js/tests/unit/service/SettingsResourceSpec.js')
-rw-r--r-- | js/tests/unit/service/SettingsResourceSpec.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/js/tests/unit/service/SettingsResourceSpec.js b/js/tests/unit/service/SettingsResourceSpec.js index 912e342d1..68399707a 100644 --- a/js/tests/unit/service/SettingsResourceSpec.js +++ b/js/tests/unit/service/SettingsResourceSpec.js @@ -47,4 +47,48 @@ describe('SettingsResource', () => { }); + it('should set language codes', inject((SettingsResource) => { + let codes = [ + 'ar-ma', 'ar', 'bg', 'ca', 'cs', 'cv', 'da', 'de', 'el', 'en-ca', + 'en-gb', 'eo', 'es', 'et', 'eu', 'fi', 'fr-ca', 'fr', 'gl', 'he', + 'hu', 'id', 'is', 'it', 'ja', 'ka', 'ko', 'lv', 'ms-my', 'nb', 'ne', + 'nl', 'pl', 'pt-br', 'pt', 'ro', 'ru', 'sk', 'sl', 'sv', 'th', 'tr', + 'tzm-la', 'tzm', 'uk', 'zh-cn', 'zh-tw', 'hi' + ]; + + for (let code of codes) { + SettingsResource.receive({ + language: code + }); + expect(SettingsResource.get('language')).toBe(code); + } + })); + + + it('should set default language codes', inject((SettingsResource) => { + SettingsResource.receive({ + language: 'abc' + }); + expect(SettingsResource.get('language')).toBe('en'); + })); + + + it('should fix broken language codes', inject((SettingsResource) => { + SettingsResource.receive({ + language: 'EN_CA' + }); + expect(SettingsResource.get('language')).toBe('en-ca'); + })); + + + it('should fall back to more general language code', inject(( + SettingsResource) => { + + SettingsResource.receive({ + language: 'EN_US' + }); + expect(SettingsResource.get('language')).toBe('en'); + })); + + });
\ No newline at end of file |