You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

142 lines
4.4 KiB
JavaScript

import { FeatureDetection } from "../../Source/Cesium.js";
describe("Core/FeatureDetection", function () {
//generally, these tests just make sure the function runs, the test can't expect a value of true or false
it("detects fullscreen support", function () {
var supportsFullscreen = FeatureDetection.supportsFullscreen();
expect(typeof supportsFullscreen).toEqual("boolean");
});
it("detects web worker support", function () {
var supportsWebWorkers = FeatureDetection.supportsWebWorkers();
expect(typeof supportsWebWorkers).toEqual("boolean");
});
it("detects typed array support", function () {
var supportsTypedArrays = FeatureDetection.supportsTypedArrays();
expect(typeof supportsTypedArrays).toEqual("boolean");
});
it("detects web assembly support", function () {
var supportsWebAssembly = FeatureDetection.supportsWebAssembly();
expect(typeof supportsWebAssembly).toEqual("boolean");
});
function checkVersionArray(array) {
expect(Array.isArray(array)).toEqual(true);
array.forEach(function (d) {
expect(typeof d).toEqual("number");
});
}
it("detects Chrome", function () {
var isChrome = FeatureDetection.isChrome();
expect(typeof isChrome).toEqual("boolean");
if (isChrome) {
var chromeVersion = FeatureDetection.chromeVersion();
checkVersionArray(chromeVersion);
console.log("detected Chrome " + chromeVersion.join("."));
}
});
it("detects Safari", function () {
var isSafari = FeatureDetection.isSafari();
expect(typeof isSafari).toEqual("boolean");
if (isSafari) {
var safariVersion = FeatureDetection.safariVersion();
checkVersionArray(safariVersion);
console.log("detected Safari " + safariVersion.join("."));
}
});
it("detects Webkit", function () {
var isWebkit = FeatureDetection.isWebkit();
expect(typeof isWebkit).toEqual("boolean");
if (isWebkit) {
var webkitVersion = FeatureDetection.webkitVersion();
checkVersionArray(webkitVersion);
expect(typeof webkitVersion.isNightly).toEqual("boolean");
console.log(
"detected Webkit " +
webkitVersion.join(".") +
(webkitVersion.isNightly ? " (Nightly)" : "")
);
}
});
it("detects Internet Explorer", function () {
var isInternetExplorer = FeatureDetection.isInternetExplorer();
expect(typeof isInternetExplorer).toEqual("boolean");
if (isInternetExplorer) {
var internetExplorerVersion = FeatureDetection.internetExplorerVersion();
checkVersionArray(internetExplorerVersion);
console.log(
"detected Internet Explorer " + internetExplorerVersion.join(".")
);
}
});
it("detects Edge", function () {
var isEdge = FeatureDetection.isEdge();
expect(typeof isEdge).toEqual("boolean");
if (isEdge) {
var edgeVersion = FeatureDetection.edgeVersion();
checkVersionArray(edgeVersion);
console.log("detected Edge " + edgeVersion.join("."));
}
});
it("detects Firefox", function () {
var isFirefox = FeatureDetection.isFirefox();
expect(typeof isFirefox).toEqual("boolean");
if (isFirefox) {
var firefoxVersion = FeatureDetection.firefoxVersion();
checkVersionArray(firefoxVersion);
console.log("detected Firefox " + firefoxVersion.join("."));
}
});
it("detects imageRendering support", function () {
var supportsImageRenderingPixelated = FeatureDetection.supportsImageRenderingPixelated();
expect(typeof supportsImageRenderingPixelated).toEqual("boolean");
if (supportsImageRenderingPixelated) {
expect(FeatureDetection.imageRenderingValue()).toBeDefined();
} else {
expect(FeatureDetection.imageRenderingValue()).not.toBeDefined();
}
});
it("supportWebP throws when it has not been initialized", function () {
FeatureDetection.supportsWebP._promise = undefined;
FeatureDetection.supportsWebP._result = undefined;
expect(function () {
FeatureDetection.supportsWebP();
}).toThrowDeveloperError();
});
it("detects WebP support", function () {
FeatureDetection.supportsWebP._promise = undefined;
FeatureDetection.supportsWebP._result = undefined;
return FeatureDetection.supportsWebP
.initialize()
.then(function (supportsWebP) {
expect(typeof supportsWebP).toEqual("boolean");
expect(FeatureDetection.supportsWebP()).toEqual(supportsWebP);
});
});
});