]>
git.proxmox.com Git - mirror_novnc.git/blob - tests/test.localization.js
1 var expect
= chai
.expect
;
3 import { l10n
} from '../app/localization.js';
5 describe('Localization', function() {
8 describe('language selection', function () {
10 beforeEach(function () {
11 // window.navigator is a protected read-only property in many
12 // environments, so we need to redefine it whilst running these
14 origNavigator
= Object
.getOwnPropertyDescriptor(window
, "navigator");
15 if (origNavigator
=== undefined) {
16 // Object.getOwnPropertyDescriptor() doesn't work
17 // properly in any version of IE
21 Object
.defineProperty(window
, "navigator", {value
: {}});
22 if (window
.navigator
.languages
!== undefined) {
23 // Object.defineProperty() doesn't work properly in old
28 window
.navigator
.languages
= [];
30 afterEach(function () {
31 Object
.defineProperty(window
, "navigator", origNavigator
);
34 it('should use English by default', function() {
35 expect(l10n
.language
).to
.equal('en');
37 it('should use English if no user language matches', function() {
38 window
.navigator
.languages
= ["nl", "de"];
39 l10n
.setup(["es", "fr"]);
40 expect(l10n
.language
).to
.equal('en');
42 it('should use the most preferred user language', function() {
43 window
.navigator
.languages
= ["nl", "de", "fr"];
44 l10n
.setup(["es", "fr", "de"]);
45 expect(l10n
.language
).to
.equal('de');
47 it('should prefer sub-languages languages', function() {
48 window
.navigator
.languages
= ["pt-BR"];
49 l10n
.setup(["pt", "pt-BR"]);
50 expect(l10n
.language
).to
.equal('pt-BR');
52 it('should fall back to language "parents"', function() {
53 window
.navigator
.languages
= ["pt-BR"];
54 l10n
.setup(["fr", "pt", "de"]);
55 expect(l10n
.language
).to
.equal('pt');
57 it('should not use specific language when user asks for a generic language', function() {
58 window
.navigator
.languages
= ["pt", "de"];
59 l10n
.setup(["fr", "pt-BR", "de"]);
60 expect(l10n
.language
).to
.equal('de');
62 it('should handle underscore as a separator', function() {
63 window
.navigator
.languages
= ["pt-BR"];
64 l10n
.setup(["pt_BR"]);
65 expect(l10n
.language
).to
.equal('pt_BR');
67 it('should handle difference in case', function() {
68 window
.navigator
.languages
= ["pt-br"];
69 l10n
.setup(["pt-BR"]);
70 expect(l10n
.language
).to
.equal('pt-BR');