mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
reconcile apphost
This commit is contained in:
parent
6f1cdf9329
commit
1fcc7ed63e
27 changed files with 8058 additions and 194 deletions
170
dashboard-ui/bower_components/fingerprintjs2/specs/specs.js
vendored
Normal file
170
dashboard-ui/bower_components/fingerprintjs2/specs/specs.js
vendored
Normal file
|
@ -0,0 +1,170 @@
|
|||
"use strict";
|
||||
describe("Fingerprint2", function () {
|
||||
describe("new", function () {
|
||||
it("creates a new instance of FP2", function () {
|
||||
expect(new Fingerprint2()).not.toBeNull();
|
||||
});
|
||||
|
||||
it("accepts an empty options object", function () {
|
||||
expect(new Fingerprint2({})).not.toBeNull();
|
||||
});
|
||||
|
||||
it("uses default options", function () {
|
||||
var fp2 = new Fingerprint2();
|
||||
expect(fp2.options.swfContainerId).toEqual("fingerprintjs2");
|
||||
expect(fp2.options.swfPath).toEqual("flash/compiled/FontList.swf");
|
||||
});
|
||||
|
||||
it("allows to override default options", function () {
|
||||
var fp2 = new Fingerprint2({swfPath: "newpath"});
|
||||
expect(fp2.options.swfContainerId).toEqual("fingerprintjs2");
|
||||
expect(fp2.options.swfPath).toEqual("newpath");
|
||||
});
|
||||
|
||||
it("allows to add new options", function () {
|
||||
var fp2 = new Fingerprint2({excludeUserAgent: true});
|
||||
expect(fp2.options.swfContainerId).toEqual("fingerprintjs2");
|
||||
expect(fp2.options.swfPath).toEqual("flash/compiled/FontList.swf");
|
||||
expect(fp2.options.excludeUserAgent).toBe(true);
|
||||
});
|
||||
|
||||
describe("sortPluginsFor", function () {
|
||||
it("has default value", function (){
|
||||
var fp2 = new Fingerprint2();
|
||||
expect(fp2.options.sortPluginsFor).toEqual([/palemoon/i]);
|
||||
});
|
||||
|
||||
it("allows to set new array of regexes", function () {
|
||||
var fp2 = new Fingerprint2({sortPluginsFor: [/firefox/i, /chrome/i]});
|
||||
expect(fp2.options.sortPluginsFor).toEqual([/firefox/i, /chrome/i]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("get", function () {
|
||||
describe("default options", function () {
|
||||
it("calculates fingerprint", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
fp2.get(function(result){
|
||||
expect(result).toMatch(/^[0-9a-f]{32}$/i);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("does not try calling flash font detection", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
spyOn(fp2, "flashFontsKey");
|
||||
fp2.get(function(result) {
|
||||
expect(fp2.flashFontsKey).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("non-default options", function () {
|
||||
it("does not use userAgent when excluded", function (done) {
|
||||
var fp2 = new Fingerprint2({excludeUserAgent: true});
|
||||
spyOn(fp2, "getUserAgent");
|
||||
fp2.get(function(result) {
|
||||
expect(fp2.getUserAgent).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("does not use screen resolution when excluded", function (done) {
|
||||
var fp2 = new Fingerprint2({excludeScreenResolution: true});
|
||||
spyOn(fp2, "getScreenResolution");
|
||||
fp2.get(function(result) {
|
||||
expect(fp2.getScreenResolution).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("does not use available screen resolution when excluded", function (done) {
|
||||
var fp2 = new Fingerprint2({excludeAvailableScreenResolution: true});
|
||||
spyOn(fp2, "getAvailableScreenResolution");
|
||||
fp2.get(function(result) {
|
||||
expect(fp2.getAvailableScreenResolution).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("does not use plugins info when excluded", function (done) {
|
||||
var fp2 = new Fingerprint2({excludePlugins: true});
|
||||
spyOn(fp2, "getRegularPlugins");
|
||||
fp2.get(function(result) {
|
||||
expect(fp2.getRegularPlugins).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("returns components", function () {
|
||||
it("does it return components as a second argument to callback", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
fp2.get(function(result, components) {
|
||||
expect(components).not.toBeNull();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("checks if returned components is array", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
fp2.get(function(result, components) {
|
||||
expect(components).toBeArrayOfObjects();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("checks if js_fonts component is array", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
fp2.get(function(result, components) {
|
||||
for(var x = 0; x < components.length; x++) {
|
||||
if(components[x].key == "js_fonts") {
|
||||
expect(components[x].value).toBeArray();
|
||||
}
|
||||
}
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("returns user_agent as the first element", function (done) {
|
||||
var fp2 = new Fingerprint2();
|
||||
fp2.get(function(result, components) {
|
||||
expect(components[0].key).toEqual("user_agent");
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("baseFontArray iteration", function () {
|
||||
it("only iterates specified items", function (done) {
|
||||
var baseFonts = ["monospace", "sans-serif", "serif"];
|
||||
var ctr = 0;
|
||||
for (var x in baseFonts) {
|
||||
ctr++;
|
||||
}
|
||||
|
||||
expect(baseFonts.length).toEqual(3);
|
||||
expect(ctr).toEqual(baseFonts.length);
|
||||
|
||||
// Somewhere deep in your JavaScript library...
|
||||
Array.prototype.foo = 1;
|
||||
Array.prototype.bar = 2;
|
||||
ctr = 0;
|
||||
for (var x in baseFonts) {
|
||||
console.log(x);
|
||||
ctr++;
|
||||
// Now foo & bar is a part of EVERY array and
|
||||
// will show up here as a value of 'x'.
|
||||
}
|
||||
|
||||
expect(baseFonts.length).toEqual(3);
|
||||
// sadface
|
||||
expect(ctr).not.toEqual(baseFonts.length);
|
||||
expect(ctr).toEqual(5);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue