|
|
@ -0,0 +1,143 @@ |
|
|
|
var assert = require('assert'); |
|
|
|
var jsdom_global = require('jsdom-global'); |
|
|
|
|
|
|
|
var canvasMockify = require('./canvas-mock'); |
|
|
|
var Popup = require('../lib/shared/Popup').default; |
|
|
|
|
|
|
|
|
|
|
|
describe('Popup', function () { |
|
|
|
before(function() { |
|
|
|
this.jsdom_global = jsdom_global( |
|
|
|
"<div id='mynetwork'></div>", |
|
|
|
{ skipWindowCheck: true} |
|
|
|
); |
|
|
|
canvasMockify(window); |
|
|
|
this.container = document.getElementById('mynetwork'); |
|
|
|
}); |
|
|
|
|
|
|
|
after(function() { |
|
|
|
this.jsdom_global(); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('constructor', function () { |
|
|
|
|
|
|
|
it('defaults overflowMethod to "cap"', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
assert.equal(popup.overflowMethod, 'cap'); |
|
|
|
}); |
|
|
|
|
|
|
|
it('defaults hidden to false', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
assert.equal(popup.hidden, false); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('setPosition', function () { |
|
|
|
|
|
|
|
it('handles ints', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.setPosition(1, 2); |
|
|
|
assert.equal(popup.x, 1); |
|
|
|
assert.equal(popup.y, 2); |
|
|
|
}); |
|
|
|
|
|
|
|
it('handles strings', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.setPosition('1', '2'); |
|
|
|
assert.equal(popup.x, 1); |
|
|
|
assert.equal(popup.y, 2); |
|
|
|
}); |
|
|
|
|
|
|
|
it('handles null with NaN', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.setPosition(null, null); |
|
|
|
assert(isNaN(popup.x)); |
|
|
|
assert(isNaN(popup.y)); |
|
|
|
}); |
|
|
|
|
|
|
|
it('handles null with NaN', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.setPosition(undefined, undefined); |
|
|
|
assert(isNaN(popup.x)); |
|
|
|
assert(isNaN(popup.y)); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('setText', function () { |
|
|
|
|
|
|
|
it('using Element replaces innerHTML', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.frame.innerHTML = '<div>This will get cleared!</div>'; |
|
|
|
popup.setText(document.createElement('div')); |
|
|
|
assert.equal(popup.frame.innerHTML, '<div></div>'); |
|
|
|
}); |
|
|
|
|
|
|
|
it('using string replaces innerHTML', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.frame.innerHTML = '<div>This will get cleared!</div>'; |
|
|
|
popup.setText('your text here!'); |
|
|
|
assert.equal(popup.frame.innerHTML, 'your text here!'); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('show', function () { |
|
|
|
|
|
|
|
it('set to undefined will show', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.show(undefined); |
|
|
|
assert.equal(popup.hidden, false); |
|
|
|
assert.notEqual(popup.frame.style.left, "0px"); |
|
|
|
assert.notEqual(popup.frame.style.top, "0px"); |
|
|
|
assert.equal(popup.frame.style.visibility, "visible"); |
|
|
|
}); |
|
|
|
|
|
|
|
it('set to true will show', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.show(true); |
|
|
|
assert.equal(popup.hidden, false); |
|
|
|
assert.notEqual(popup.frame.style.left, "0px"); |
|
|
|
assert.notEqual(popup.frame.style.top, "0px"); |
|
|
|
assert.equal(popup.frame.style.visibility, "visible"); |
|
|
|
}); |
|
|
|
|
|
|
|
it('set to true with overflowMethod "flip" will show', function () { |
|
|
|
var popup = new Popup(this.container, 'flip'); |
|
|
|
popup.show(true); |
|
|
|
assert.equal(popup.hidden, false); |
|
|
|
assert.equal(popup.frame.style.left, "0px"); |
|
|
|
assert.equal(popup.frame.style.top, "0px"); |
|
|
|
assert.equal(popup.frame.style.visibility, "visible"); |
|
|
|
}); |
|
|
|
|
|
|
|
it('set to false will hide', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.show(false); |
|
|
|
assert.equal(popup.hidden, true); |
|
|
|
assert.equal(popup.frame.style.left, "0px"); |
|
|
|
assert.equal(popup.frame.style.top, "0px"); |
|
|
|
assert.equal(popup.frame.style.visibility, "hidden"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('hide', function () { |
|
|
|
|
|
|
|
it('sets hidden to true, frame style to 0,0 and visibility to hidden', function () { |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.hide(); |
|
|
|
assert.equal(popup.hidden, true); |
|
|
|
assert.equal(popup.frame.style.left, "0px"); |
|
|
|
assert.equal(popup.frame.style.top, "0px"); |
|
|
|
assert.equal(popup.frame.style.visibility, "hidden"); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
describe('destroy', function () { |
|
|
|
|
|
|
|
it('removes frame from container', function () { |
|
|
|
var numChildrenBeforePopup = this.container.children.length; |
|
|
|
var popup = new Popup(this.container); |
|
|
|
popup.destroy(); |
|
|
|
assert.equal(this.container.children.length, numChildrenBeforePopup); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |