]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Do not mess up with global.window
authorIskren Chernev <iskren.chernev@gmail.com>
Sat, 11 Mar 2017 22:45:10 +0000 (00:45 +0200)
committerIskren Chernev <iskren.chernev@gmail.com>
Sat, 11 Mar 2017 22:45:10 +0000 (00:45 +0200)
src/test/moment/locale.js

index 1892fdd0e4ed4c357e6ea1c83532c64fe716573a..c992c119719eb56f8e82b4a0ec3674ce7d74f17f 100644 (file)
@@ -47,50 +47,6 @@ test('library getters and setters', function (assert) {
     assert.equal(r, 'en', 'locale should return en by default');
     assert.equal(moment.locale(), 'en', 'locale should return en by default');
 
-    moment.locale('default');
-    assert.equal(moment.locale(), 'en', 'default locale should return en on node');
-
-    // simulating window on node (normally avaliable only in a browser)
-    global.window = {
-        navigator: {
-            language: 'wrong-locale',
-            userLanguage: 'fr'
-        }
-    };
-
-    moment.locale('default');
-    assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.userLanguage first on browser');
-
-    global.window = {
-        navigator: {
-            language: undefined,
-            userLanguage: 'fr'
-        }
-    };
-
-    moment.locale('default');
-    assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.userLanguage first on browser');
-
-    global.window = {
-        navigator: {
-            language: 'fr',
-            userLanguage: undefined
-        }
-    };
-
-    moment.locale('default');
-    assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.language second on browser');
-
-    global.window = {
-        navigator: {
-            language: 'wrong-locale',
-            userLanguage: 'wrong-locale'
-        }
-    };
-
-    moment.locale('default');
-    assert.equal(moment.locale(), 'fr', 'default locale should return en if a browser provides unknown locale');
-
     moment.locale('fr');
     assert.equal(moment.locale(), 'fr', 'locale should return the changed locale');
 
@@ -110,6 +66,57 @@ test('library getters and setters', function (assert) {
     assert.equal(moment.locale(), 'en-gb', 'Normalize locale key underscore');
 });
 
+test('\'default\' locale', function (assert) {
+    var oldWindow = global.window;
+    try {
+        moment.locale('default');
+        assert.equal(moment.locale(), 'en', 'default locale should return en on node');
+
+        // simulating window on node (normally avaliable only in a browser)
+        global.window = {
+            navigator: {
+                language: 'wrong-locale',
+                userLanguage: 'fr'
+            }
+        };
+
+        moment.locale('default');
+        assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.userLanguage first on browser');
+
+        global.window = {
+            navigator: {
+                language: undefined,
+                userLanguage: 'fr'
+            }
+        };
+
+        moment.locale('default');
+        assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.userLanguage first on browser');
+
+        global.window = {
+            navigator: {
+                language: 'fr',
+                userLanguage: undefined
+            }
+        };
+
+        moment.locale('default');
+        assert.equal(moment.locale(), 'fr', 'default locale should return locale from window.navigator.language second on browser');
+
+        global.window = {
+            navigator: {
+                language: 'wrong-locale',
+                userLanguage: 'wrong-locale'
+            }
+        };
+
+        moment.locale('default');
+        assert.equal(moment.locale(), 'fr', 'default locale should return en if a browser provides unknown locale');
+    } finally {
+        global.window = oldWindow;
+    }
+});
+
 test('library setter array of locales', function (assert) {
     assert.equal(moment.locale(['non-existent', 'fr', 'also-non-existent']), 'fr', 'passing an array uses the first valid locale');
     assert.equal(moment.locale(['es', 'fr', 'also-non-existent']), 'es', 'passing an array uses the first valid locale');