scandit-sdk
Version:
Scandit Barcode Scanner SDK for the Web
153 lines • 5.18 kB
JavaScript
"use strict";
/* tslint:disable:no-implicit-dependencies no-any */
/**
* BrowserHelper tests
*/
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var ava_1 = tslib_1.__importDefault(require("ava"));
var __1 = require("..");
Object.defineProperty(navigator, "platform", {
value: "iPhone"
});
// tslint:disable-next-line:max-func-body-length
ava_1.default("checkBrowserCompatibility", function (t) {
Object.defineProperty(window, "Blob", {
value: null
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["mediaDevices", "webWorkers", "webAssembly", "blob", "urlObject", "offscreenCanvas", "webgl"],
scannerSupport: false
});
Object.defineProperty(navigator, "mediaDevices", {
value: {
getUserMedia: function () {
return;
}
},
configurable: true
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["webWorkers", "webAssembly", "blob", "urlObject", "offscreenCanvas", "webgl"],
scannerSupport: false
});
window.Worker = function () {
return;
};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["webAssembly", "blob", "urlObject", "offscreenCanvas", "webgl"],
scannerSupport: false
});
window.WebAssembly = {};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["blob", "urlObject", "offscreenCanvas", "webgl"],
scannerSupport: false
});
window.Blob = (function () {
return;
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["urlObject", "offscreenCanvas", "webgl"],
scannerSupport: false
});
window.URL = {
createObjectURL: function () {
return;
}
};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: ["offscreenCanvas", "webgl"],
scannerSupport: true
});
window.OffscreenCanvas = function () {
return;
};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: ["webgl"],
scannerSupport: true
});
window.WebGLRenderingContext = function () {
return;
};
Object.defineProperty(__1.BrowserHelper, "canvas", {
value: {
getContext: function () {
return null;
}
}
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: ["webgl"],
scannerSupport: true
});
Object.defineProperty(__1.BrowserHelper, "canvas", {
value: {
getContext: function () {
return true;
}
}
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: [],
scannerSupport: true
});
__1.BrowserHelper.userAgentInfo.setUA("Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) " +
"AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0 Mobile/15D60 Safari/604.1");
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["webAssemblyErrorFree"],
scannerSupport: false
});
__1.BrowserHelper.userAgentInfo.setUA("Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) " +
"AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1");
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: [],
scannerSupport: true
});
Object.defineProperty(navigator, "mediaDevices", {
value: undefined,
configurable: true
});
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: false,
missingFeatures: ["mediaDevices"],
scannerSupport: true
});
navigator.enumerateDevices = function () {
return Promise.resolve([]);
};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: [],
scannerSupport: true
});
navigator.enumerateDevices = undefined;
window.MediaStreamTrack = {
getSources: function () {
return;
}
};
t.deepEqual(__1.BrowserHelper.checkBrowserCompatibility(), {
fullSupport: true,
missingFeatures: [],
scannerSupport: true
});
});
ava_1.default("getDeviceId", function (t) {
var currentDeviceId = __1.BrowserHelper.getDeviceId();
t.regex(currentDeviceId, /[0-9a-f]{40}/);
t.deepEqual(__1.BrowserHelper.getDeviceId(), currentDeviceId);
document.cookie = "scandit-device-id=";
t.notDeepEqual(__1.BrowserHelper.getDeviceId(), currentDeviceId);
});
//# sourceMappingURL=browserHelper.spec.js.map