11'use strict' ;
22
3+ // Flags: --expose-internals
4+
35require ( '../common' ) ;
46const assert = require ( 'assert' ) ;
7+ const { getNavigatorPlatform } = require ( 'internal/navigator' ) ;
58
69const is = {
710 number : ( value , key ) => {
@@ -15,3 +18,59 @@ is.number(navigator.hardwareConcurrency, 'hardwareConcurrency');
1518assert . ok ( navigator . hardwareConcurrency > 0 ) ;
1619assert . strictEqual ( typeof navigator . userAgent , 'string' ) ;
1720assert . 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 if ( process . platform === 'aix' ) {
54+ assert . strictEqual ( navigator . platform , 'AIX' ) ;
55+ } else {
56+ assert . strictEqual ( navigator . platform , `${ process . platform [ 0 ] . toUpperCase ( ) } ${ process . platform . slice ( 1 ) } ${ process . arch } ` ) ;
57+ }
58+
59+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'darwin' } ) , 'MacIntel' ) ;
60+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'darwin' } ) , 'MacIntel' ) ;
61+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'linux' } ) , 'Linux i686' ) ;
62+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'linux' } ) , 'Linux x86_64' ) ;
63+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'linux' } ) , 'Linux arm64' ) ;
64+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'win32' } ) , 'Win32' ) ;
65+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'win32' } ) , 'Win32' ) ;
66+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'win32' } ) , 'Win32' ) ;
67+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'freebsd' } ) , 'FreeBSD i386' ) ;
68+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'freebsd' } ) , 'FreeBSD amd64' ) ;
69+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'freebsd' } ) , 'FreeBSD arm64' ) ;
70+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'openbsd' } ) , 'OpenBSD i386' ) ;
71+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'openbsd' } ) , 'OpenBSD amd64' ) ;
72+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'arm64' , platform : 'openbsd' } ) , 'OpenBSD arm64' ) ;
73+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ia32' , platform : 'sunos' } ) , 'SunOS i86pc' ) ;
74+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'sunos' } ) , 'SunOS x64' ) ;
75+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'ppc' , platform : 'aix' } ) , 'AIX' ) ;
76+ assert . strictEqual ( getNavigatorPlatform ( { arch : 'x64' , platform : 'reactos' } ) , 'Reactos x64' ) ;
0 commit comments