Code coverage report for ./suites/dom/DomUtilSpec.js

Statements: 100% (55 / 55)      Branches: 100% (0 / 0)      Functions: 100% (13 / 13)      Lines: 100% (55 / 55)     

All files » ./suites/dom/ » DomUtilSpec.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 901 1   1 6 6 6 6     1 6     1 1 1 1     1 1       1 1 1 1 1 1 1     1 1 1   1 1   1 1 1   1 1 1   1 1 1       1 1 1 1       1 1 1 1 1 1 1 1 1   1 1   1   1   1   1                
describe('DomUtil', function() {
	var el;
 
	beforeEach(function() {
		el = document.createElement('div');
		el.style.position = 'absolute';
		el.style.top = el.style.left = '-10000px';
		document.body.appendChild(el);
	});
 
	afterEach(function() {
		document.body.removeChild(el);
	});
 
	describe('#get', function() {
		it('gets element by id if the given argument is string', function() {
			el.id = 'testId';
			expect(L.DomUtil.get(el.id)).to.eql(el);
		});
 
		it('returns the element if it is given as an argument', function() {
			expect(L.DomUtil.get(el)).to.eql(el);
		});
	});
 
	describe('#addClass, #removeClass, #hasClass', function() {
		it('has defined class for test element', function() {
			el.className = 'bar foo baz ';
			expect(L.DomUtil.hasClass(el, 'foo')).to.be.ok();
			expect(L.DomUtil.hasClass(el, 'bar')).to.be.ok();
			expect(L.DomUtil.hasClass(el, 'baz')).to.be.ok();
			expect(L.DomUtil.hasClass(el, 'boo')).to.not.be.ok();
		});
 
		it('adds or removes the class', function() {
			el.className = '';
			L.DomUtil.addClass(el, 'foo');
 
			expect(el.className).to.eql('foo');
			expect(L.DomUtil.hasClass(el, 'foo')).to.be.ok();
 
			L.DomUtil.addClass(el, 'bar');
			expect(el.className).to.eql('foo bar');
			expect(L.DomUtil.hasClass(el, 'foo')).to.be.ok();
 
			L.DomUtil.removeClass(el, 'foo');
			expect(el.className).to.eql('bar');
			expect(L.DomUtil.hasClass(el, 'foo')).to.not.be.ok();
 
			el.className = 'foo bar barz';
			L.DomUtil.removeClass(el, 'bar');
			expect(el.className).to.eql('foo barz');
		});
	});
 
	describe('#documentIsLtr', function () {
		it('returns true if doc direction is ltr', function () {
			expect(L.DomUtil.documentIsLtr()).to.eql(true);
			expect(L.DomUtil.documentIsLtr()).to.eql(true); // cached
		});
	});
 
	describe('#getViewportOffset', function () {
		it('calculates the viewport offset of an element', function () {
			var div = document.createElement('div');
			div.style.position = 'absolute';
			div.style.top = '100px';
			div.style.left = '200px';
			div.style.border = '10px solid black';
			div.style.padding = '50px';
			div.style.visibility = 'hidden';
 
			var div2 = document.createElement('div');
			div.style.marginTop = '100px';
 
			div.appendChild(div2);
 
			document.body.appendChild(div);
 
			expect(L.DomUtil.getViewportOffset(div2)).to.eql(new L.Point(260, 260));
 
			document.body.removeChild(div);
		});
	});
 
	// describe('#setPosition', noSpecs);
 
	// describe('#getStyle', noSpecs);
});