describe('Ionic Header Bar', function() { var el, rootScope, compile; beforeEach(module('ionic')); beforeEach(inject(function($animate, $compile, $rootScope) { compile = $compile; rootScope = $rootScope; ionic.requestAnimationFrame = function(cb) { cb(); }; $animate.enabled(false); el = null; })); it('Should not add title-left or title-right classes when align-title=center', function() { el = compile('')(rootScope); var headerView = el.isolateScope().headerBarView; var title = angular.element(headerView.el.querySelector('.title')); expect(title.hasClass('title-left')).not.toEqual(true); expect(title.hasClass('title-right')).not.toEqual(true); }); it('Should add title-left class when align-title=left', inject(function($animate) { el = compile('')(rootScope); rootScope.$apply(); var headerView = el.isolateScope().headerBarView; var title = angular.element(headerView.el.querySelector('.title')); expect(title.hasClass('title-left')).toEqual(true); })); it('Should add title-right class when align-title=right', function() { el = compile('')(rootScope); rootScope.$apply(); var headerView = el.isolateScope().headerBarView; var title = angular.element(headerView.el.querySelector('.title')); expect(title.hasClass('title-right')).toEqual(true); }); it('Should re-align the title when leftButtons change', function() { rootScope.leftButtons = []; el = compile('')(rootScope); var headerView = el.isolateScope().headerBarView; //trigger initial align() rootScope.$apply(); spyOn(headerView, 'align'); var button = { content: '' }; rootScope.leftButtons.push(button); rootScope.$apply(); expect(headerView.align).toHaveBeenCalled(); }); it('Should re-align the title when rightButtons change', function() { rootScope.rightButtons = []; el = compile('')(rootScope); var headerView = el.isolateScope().headerBarView; //trigger initial align() rootScope.$apply(); spyOn(headerView, 'align'); var button = { content: '' }; rootScope.rightButtons.push(button); rootScope.$apply(); expect(headerView.align).toHaveBeenCalled(); }); });