mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-06 22:29:44 +08:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
describe('NavController', function() {
|
|
var ctrl, navBarEl, contentEl;
|
|
|
|
var content = function(title) {
|
|
return {
|
|
el: document.createElement('div'),
|
|
title: title,
|
|
detach: function() {
|
|
this.el.parentNode && this.el.parentNode.removeChild(this.el);
|
|
},
|
|
attach: function() {
|
|
}
|
|
}
|
|
}
|
|
|
|
beforeEach(function() {
|
|
navBarEl = document.createElement('div');
|
|
contentEl = document.createElement('div');
|
|
|
|
ctrl = new NavController({
|
|
navBar: new NavBar({el: navBarEl }),
|
|
content: { el: contentEl }
|
|
});
|
|
});
|
|
|
|
it('Should load controllers', function() {
|
|
ctrl = new NavController({
|
|
navBar: new NavBar({el: navBarEl }),
|
|
content: { el: contentEl },
|
|
controllers: [{}]
|
|
});
|
|
expect(ctrl.getControllers().length).toEqual(1);
|
|
});
|
|
|
|
it('Should push controller', function() {
|
|
ctrl.push(content('Page 1'));
|
|
expect(ctrl.getControllers().length).toEqual(1);
|
|
ctrl.push(content('Page 2'));
|
|
expect(ctrl.getControllers().length).toEqual(2);
|
|
var last = ctrl.pop();
|
|
expect(ctrl.getControllers().length).toEqual(1);
|
|
expect(last.title).toEqual('Page 2');
|
|
});
|
|
|
|
it('Should change top view controller', function() {
|
|
expect(ctrl.getTopController()).toBe(undefined);
|
|
var c1 = content('Page 1');
|
|
var c2 = content('Page 2');
|
|
ctrl.push(c1);
|
|
expect(ctrl.getTopController()).toEqual(c1);
|
|
ctrl.push(c2);
|
|
expect(ctrl.getTopController()).toEqual(c2);
|
|
ctrl.pop();
|
|
expect(ctrl.getTopController()).toEqual(c1);
|
|
|
|
// Make sure we can't pop the first one off
|
|
ctrl.pop();
|
|
expect(ctrl.getTopController()).toEqual(c1);
|
|
});
|
|
});
|