it('can invoke function each child views recursivly.', function() { view = new View(); var view2 = new View(); var view3 = new View(); view.addChild(view2); view2.addChild(view3); spyOn(view3, 'recursive'); view.recursive(function() {}); expect(view3.recursive).toHaveBeenCalled(); });
it('set skipThis true then skip invoke function with root view.', function() { view = new View(); var view2 = new View(); var view3 = new View(); view.addChild(view2); view2.addChild(view3); var spy = jasmine.createSpy('recursive'); view.recursive(spy, true); expect(spy.calls.argsFor(0)[0]).not.toBe(view); expect(spy.calls.argsFor(0)[0]).toBe(view2); expect(spy.calls.count()).toBe(2); });
it('Can add child views.', function() { view = new View(); var view2 = new View(); view.addChild(view2); expect(view.children.has(util.stamp(view2))); });
it('Can add some process before added.', function() { view = new View(); var view2 = new View(); var spy = jasmine.createSpy('beforeAdd'); view.addChild(view2, spy); expect(spy).toHaveBeenCalledWith(view); expect(view.children.has(util.stamp(view2))); });
it('send resize message properly.', function() { view._onResize = jasmine.createSpy('viewOnResize'); var view2 = new View(document.getElementById('container3')); var view3 = new View(document.getElementById('container4')); // view <- view2 <- view3 view.addChild(view2); view2.addChild(view3); view3.resize(view3); expect(view._onResize).toHaveBeenCalledWith(view3); });
beforeEach(function() { view = new View(); view2 = new View(); view.addChild(view2); });