Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2922698
navigator.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
navigator.js
View Options
import
{
test
,
testDeep
,
summary
}
from
'./helpers.js'
;
console
.
log
(
'Navigator Tests\n'
);
test
(
'navigator exists'
,
typeof
navigator
,
'object'
);
test
(
'navigator toStringTag'
,
Object
.
prototype
.
toString
.
call
(
navigator
),
'[object Navigator]'
);
test
(
'navigator.hardwareConcurrency exists'
,
typeof
navigator
.
hardwareConcurrency
,
'number'
);
test
(
'navigator.hardwareConcurrency is positive'
,
navigator
.
hardwareConcurrency
>=
1
,
true
);
test
(
'navigator.hardwareConcurrency is integer'
,
Number
.
isInteger
(
navigator
.
hardwareConcurrency
),
true
);
test
(
'navigator.language exists'
,
typeof
navigator
.
language
,
'string'
);
test
(
'navigator.language is en-US'
,
navigator
.
language
,
'en-US'
);
test
(
'navigator.languages exists'
,
Array
.
isArray
(
navigator
.
languages
),
true
);
test
(
'navigator.languages length'
,
navigator
.
languages
.
length
>=
1
,
true
);
test
(
'navigator.languages contains language'
,
navigator
.
languages
.
includes
(
navigator
.
language
),
true
);
test
(
'navigator.platform exists'
,
typeof
navigator
.
platform
,
'string'
);
test
(
'navigator.platform is non-empty'
,
navigator
.
platform
.
length
>
0
,
true
);
test
(
'navigator.userAgent exists'
,
typeof
navigator
.
userAgent
,
'string'
);
test
(
'navigator.userAgent starts with Ant'
,
navigator
.
userAgent
.
startsWith
(
'Ant/'
),
true
);
console
.
log
(
'\nLockManager Tests\n'
);
test
(
'navigator.locks exists'
,
typeof
navigator
.
locks
,
'object'
);
test
(
'navigator.locks toStringTag'
,
Object
.
prototype
.
toString
.
call
(
navigator
.
locks
),
'[object LockManager]'
);
test
(
'navigator.locks.request exists'
,
typeof
navigator
.
locks
.
request
,
'function'
);
test
(
'navigator.locks.query exists'
,
typeof
navigator
.
locks
.
query
,
'function'
);
(
async
()
=>
{
let
exclusiveLockAcquired
=
false
;
let
exclusiveLockName
=
null
;
let
exclusiveLockMode
=
null
;
let
exclusiveLockReleased
=
false
;
await
navigator
.
locks
.
request
(
'test_resource'
,
async
lock
=>
{
exclusiveLockAcquired
=
true
;
exclusiveLockName
=
lock
.
name
;
exclusiveLockMode
=
lock
.
mode
;
return
'done'
;
})
.
then
(()
=>
{
exclusiveLockReleased
=
true
;
});
test
(
'exclusive lock was acquired'
,
exclusiveLockAcquired
,
true
);
test
(
'exclusive lock has correct name'
,
exclusiveLockName
,
'test_resource'
);
test
(
'exclusive lock has correct mode'
,
exclusiveLockMode
,
'exclusive'
);
test
(
'exclusive lock was released'
,
exclusiveLockReleased
,
true
);
let
sharedLockMode
=
null
;
await
navigator
.
locks
.
request
(
'shared_resource'
,
{
mode
:
'shared'
},
async
lock
=>
{
sharedLockMode
=
lock
.
mode
;
});
test
(
'shared lock has correct mode'
,
sharedLockMode
,
'shared'
);
let
ifAvailableResult
=
null
;
await
navigator
.
locks
.
request
(
'available_resource'
,
{
ifAvailable
:
true
},
async
lock
=>
{
ifAvailableResult
=
lock
?
'acquired'
:
'not available'
;
});
test
(
'ifAvailable lock was acquired'
,
ifAvailableResult
,
'acquired'
);
const
queryResult
=
await
navigator
.
locks
.
query
();
test
(
'query returns object'
,
typeof
queryResult
,
'object'
);
test
(
'query has held array'
,
Array
.
isArray
(
queryResult
.
held
),
true
);
test
(
'query has pending array'
,
Array
.
isArray
(
queryResult
.
pending
),
true
);
let
lockOrder
=
[];
await
navigator
.
locks
.
request
(
'order_test'
,
async
lock
=>
{
lockOrder
.
push
(
1
);
});
await
navigator
.
locks
.
request
(
'order_test'
,
async
lock
=>
{
lockOrder
.
push
(
2
);
});
testDeep
(
'locks execute in order'
,
lockOrder
,
[
1
,
2
]);
let
lockToStringTag
=
null
;
await
navigator
.
locks
.
request
(
'tostring_test'
,
async
lock
=>
{
lockToStringTag
=
Object
.
prototype
.
toString
.
call
(
lock
);
});
test
(
'Lock toStringTag'
,
lockToStringTag
,
'[object Lock]'
);
summary
();
})();
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Fri, Mar 27, 1:26 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
512330
Default Alt Text
navigator.js (3 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment