1
1
'use strict' ;
2
2
3
- require ( '../common' ) ;
3
+ const common = require ( '../common' ) ;
4
4
const assert = require ( 'assert' ) ;
5
+ const { execFile } = require ( 'child_process' ) ;
5
6
6
7
const is = {
7
8
number : ( value , key ) => {
@@ -15,3 +16,44 @@ is.number(navigator.hardwareConcurrency, 'hardwareConcurrency');
15
16
assert . ok ( navigator . hardwareConcurrency > 0 ) ;
16
17
assert . strictEqual ( typeof navigator . userAgent , 'string' ) ;
17
18
assert . match ( navigator . userAgent , / ^ N o d e \. j s \/ \d + $ / ) ;
19
+
20
+ assert . strictEqual ( typeof navigator . language , 'string' ) ;
21
+ assert . strictEqual ( navigator . language , 'en-US' ) ;
22
+
23
+ assert . ok ( Array . isArray ( navigator . languages ) ) ;
24
+ assert . strictEqual ( navigator . languages . length , 1 ) ;
25
+ assert . strictEqual ( typeof navigator . languages [ 0 ] , 'string' ) ;
26
+
27
+ assert . throws ( ( ) => {
28
+ navigator . languages [ 0 ] = 'foo' ;
29
+ } , new TypeError ( "Cannot assign to read only property '0' of object '[object Array]'" ) ) ;
30
+ assert . notStrictEqual ( navigator . languages [ 0 ] , 'foo' ) ;
31
+ assert . strictEqual ( navigator . languages [ 0 ] , 'en-US' ) ;
32
+
33
+ Object . defineProperty ( navigator , 'language' , { value : 'de-DE' } ) ;
34
+ assert . strictEqual ( navigator . language , 'de-DE' ) ;
35
+ assert . strictEqual ( navigator . languages . length , 1 ) ;
36
+ assert . strictEqual ( navigator . languages [ 0 ] , 'en-US' ) ;
37
+
38
+
39
+ if ( common . hasIntl ) {
40
+ {
41
+ const env = { ...process . env , LC_ALL : 'fr-FR' } ;
42
+ execFile (
43
+ process . execPath ,
44
+ [ '-p' , 'process.exit(navigator.language === "fr-FR" ? 0 : 1)' ] ,
45
+ { env } ,
46
+ common . mustSucceed ( )
47
+ ) ;
48
+ }
49
+
50
+ {
51
+ const env = { ...process . env , LC_ALL : 'fr-FR' } ;
52
+ execFile (
53
+ process . execPath ,
54
+ [ '-p' , 'process.exit(navigator.languages[0] === "fr-FR" ? 0 : 1)' ] ,
55
+ { env } ,
56
+ common . mustSucceed ( )
57
+ ) ;
58
+ }
59
+ }
0 commit comments