1
1
'use strict' ;
2
2
3
+ // Flags: --expose-internals
4
+
3
5
require ( '../common' ) ;
4
6
const assert = require ( 'assert' ) ;
7
+ const { getNavigatorPlatform } = require ( 'internal/navigator' ) ;
5
8
6
9
const is = {
7
10
number : ( value , key ) => {
@@ -15,3 +18,55 @@ is.number(navigator.hardwareConcurrency, 'hardwareConcurrency');
15
18
assert . ok ( navigator . hardwareConcurrency > 0 ) ;
16
19
assert . strictEqual ( typeof navigator . userAgent , 'string' ) ;
17
20
assert . match ( navigator . userAgent , / ^ N o d e \. j s \/ \d + $ / ) ;
21
+
22
+ assert . strictEqual ( typeof navigator . platform , 'string' ) ;
23
+ if ( process . platform === 'darwin' ) {
24
+ assert . strictEqual ( navigator . platform , 'MacIntel' ) ;
25
+ } else if ( process . platform === 'win32' ) {
26
+ assert . strictEqual ( navigator . platform , 'Win32' ) ;
27
+ } else if ( process . platform === 'linux' && process . arch === 'ia32' ) {
28
+ assert . strictEqual ( navigator . platform , 'Linux i686' ) ;
29
+ } else if ( process . platform === 'linux' && process . arch === 'x64' ) {
30
+ assert . strictEqual ( navigator . platform , 'Linux x86_64' ) ;
31
+ } else if ( process . platform === 'freebsd' ) {
32
+ if ( process . arch === 'ia32' ) {
33
+ assert . strictEqual ( navigator . platform , 'FreeBSD i386' ) ;
34
+ } else if ( process . arch === 'x64' ) {
35
+ assert . strictEqual ( navigator . platform , 'FreeBSD amd64' ) ;
36
+ } else {
37
+ assert . strictEqual ( navigator . platform , `FreeBSD ${ process . arch } ` ) ;
38
+ }
39
+ } else if ( process . platform === 'openbsd' ) {
40
+ if ( process . arch === 'ia32' ) {
41
+ assert . strictEqual ( navigator . platform , 'OpenBSD i386' ) ;
42
+ } else if ( process . arch === 'x64' ) {
43
+ assert . strictEqual ( navigator . platform , 'OpenBSD amd64' ) ;
44
+ } else {
45
+ assert . strictEqual ( navigator . platform , `OpenBSD ${ process . arch } ` ) ;
46
+ }
47
+ } else if ( process . platform === 'sunos' ) {
48
+ if ( process . arch === 'ia32' ) {
49
+ assert . strictEqual ( navigator . platform , 'SunOS i86pc' ) ;
50
+ } else {
51
+ assert . strictEqual ( navigator . platform , `SunOS ${ process . arch } ` ) ;
52
+ }
53
+ } else {
54
+ assert . strictEqual ( navigator . platform , `${ process . platform [ 0 ] . toUpperCase ( ) } ${ process . platform . slice ( 1 ) } ${ process . arch } ` ) ;
55
+ }
56
+
57
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'darwin' } ) , 'MacIntel' ) ;
58
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'darwin' } ) , 'MacIntel' ) ;
59
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'linux' } ) , 'Linux i686' ) ;
60
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'linux' } ) , 'Linux x86_64' ) ;
61
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'linux' } ) , 'Linux arm64' ) ;
62
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'win32' } ) , 'Win32' ) ;
63
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'win32' } ) , 'Win32' ) ;
64
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'win32' } ) , 'Win32' ) ;
65
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'freebsd' } ) , 'FreeBSD i386' ) ;
66
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'freebsd' } ) , 'FreeBSD amd64' ) ;
67
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'freebsd' } ) , 'FreeBSD arm64' ) ;
68
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'openbsd' } ) , 'OpenBSD i386' ) ;
69
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'openbsd' } ) , 'OpenBSD amd64' ) ;
70
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'openbsd' } ) , 'OpenBSD arm64' ) ;
71
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'sunos' } ) , 'SunOS i86pc' ) ;
72
+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'sunos' } ) , 'SunOS x64' ) ;
0 commit comments