| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- describe("Fingerprint", function(){
- beforeEach(function() {
- this.addMatchers({
- toBeInstanceOf : function(expected) {
- return this.actual instanceof expected && this.actual.length > 0;
- },
- toBeA: function(expected) {
- return typeof this.actual === expected;
- }
- });
- });
- describe("new Fingerprint", function(){
- it("Creates a new instance of Fingerprint", function(){
- expect(new Fingerprint()).not.toBeNull();
- });
- it("Accepts a custom hashing function as argument", function(){
- var hasher = function(){return 31;};
- expect(new Fingerprint(hasher)).not.toBeNull();
- });
- it("Accepts a custom hasing function as options argument", function(){
- var hasher = function(){return 31;};
- expect(new Fingerprint({hasher: hasher})).not.toBeNull();
- });
- });
- describe("#get", function(){
- it("Calculates fingerprint with built-in hashing if no custom hashing is given", function(){
- var fingerprint = new Fingerprint();
- spyOn(fingerprint, 'murmurhash3_32_gc');
- fingerprint.get();
- expect(fingerprint.murmurhash3_32_gc).toHaveBeenCalled();
- });
- it("Calculates fingerprint with custom hashing if it is given as an argument", function(){
- var hasher = function(){return 'abcdef';};
- var fingerprint = new Fingerprint(hasher);
- expect(fingerprint.get()).toEqual('abcdef');
- });
- it("Calculates fingerprint with custom hashing if it is given as an options argument", function(){
- var hasher = function(){return 'abcdef';};
- var fingerprint = new Fingerprint({hasher: hasher});
- expect(fingerprint.get()).toEqual('abcdef');
- });
- it('Calculates fingerprint with canvas fingerprinting if it is said to do so', function(){
- var fp = new Fingerprint({canvas: true});
- spyOn(fp, 'getCanvasFingerprint');
- fp.get();
- expect(fp.getCanvasFingerprint).toHaveBeenCalled();
- });
- it('Does not try to use canvas fingerprinting when not told to(version 1)', function(){
- var fp = new Fingerprint({canvas: false});
- spyOn(fp, 'getCanvasFingerprint');
- fp.get();
- expect(fp.getCanvasFingerprint).not.toHaveBeenCalled();
- });
- it('Does not try to use canvas fingerprinting when not told to(version 2)', function(){
- var fp = new Fingerprint();
- spyOn(fp, 'getCanvasFingerprint');
- fp.get();
- expect(fp.getCanvasFingerprint).not.toHaveBeenCalled();
- });
- it('Calculates fingerprint with ActiveX fingerprinting if it is said to do so', function(){
- var fp = new Fingerprint({ie_activex: true});
- spyOn(fp, 'isIE').andReturn(true);
- spyOn(fp, 'getIEPluginsString');
- fp.get();
- expect(fp.getIEPluginsString).toHaveBeenCalled();
- });
- it('Does not try to use ActiveX fingerprinting when not told to(version 1)', function(){
- var fp = new Fingerprint({ie_activex: false});
- spyOn(fp, 'getIEPluginsString');
- fp.get();
- expect(fp.getIEPluginsString).not.toHaveBeenCalled();
- });
- it('Does not try to use ActiveX fingerprinting when not told to(version 2)', function(){
- var fp = new Fingerprint();
- spyOn(fp, 'getIEPluginsString');
- fp.get();
- expect(fp.getIEPluginsString).not.toHaveBeenCalled();
- });
- it('Calculates fingerprint accessing screen resolution if it is said to do so', function(){
- var fp = new Fingerprint({screen_resolution: true});
- spyOn(fp, 'getScreenResolution');
- fp.get();
- expect(fp.getScreenResolution).toHaveBeenCalled();
- });
- it('Does not try to use screen resolution when not told to', function(){
- var fp = new Fingerprint();
- spyOn(fp, 'getScreenResolution');
- fp.get();
- expect(fp.getScreenResolution).not.toHaveBeenCalled();
- });
- it("Returns a number as a fingerprint value when used with a built-in hashing function", function(){
- var fingerprint = new Fingerprint();
- expect(fingerprint.get()).toBeA('number');
- });
- it('Returns a string from getCanvasFingerprint function', function(){
- var fp = new Fingerprint({canvas: true});
- expect(fp.getCanvasFingerprint()).toBeA('string');
- });
- it('Does not fail when document.body is null', function(){
- var body = document.body.parentNode.removeChild(document.body);
- var fingerprint = new Fingerprint();
- expect(fingerprint.get()).toBeA('number');
- document.body = body;
- });
- });
- });
|