angular-material-npfixed
Version:
The Angular Material project is an implementation of Material Design in Angular.js. This project provides a set of reusable, well-tested, and accessible Material Design UI components. Angular Material is supported internally at Google by the Angular.js, M
72 lines (54 loc) • 2.14 kB
JavaScript
describe('<md-fab-toolbar> directive', function() {
beforeEach(module('material.components.fabToolbar'));
var pageScope, element, controller;
function build(template) {
inject(function($compile, $rootScope) {
pageScope = $rootScope.$new();
element = $compile(template)(pageScope);
controller = element.controller('mdFabToolbar');
pageScope.$apply();
});
}
it('applies a class for each direction', inject(function() {
build(
'<md-fab-toolbar md-direction="{{direction}}"></md-fab-toolbar>'
);
pageScope.$apply('direction = "left"');
expect(element.hasClass('md-left')).toBe(true);
pageScope.$apply('direction = "right"');
expect(element.hasClass('md-right')).toBe(true);
}));
it('accepts a string for md-direction', inject(function() {
build(
'<md-fab-toolbar md-direction="right"></md-fab-toolbar>'
);
expect(element.hasClass('md-right')).toBe(true);
}));
it('allows programmatic opening through the md-open attribute', inject(function() {
build(
'<md-fab-toolbar md-open="isOpen"></md-fab-toolbar>'
);
// By default, it should be closed
expect(controller.isOpen).toBe(false);
// When md-open is true, it should be open
pageScope.$apply('isOpen = true');
expect(controller.isOpen).toBe(true);
// When md-open is false, it should be closed
pageScope.$apply('isOpen = false');
expect(controller.isOpen).toBe(false);
}));
it('properly finishes the animation', inject(function(mdFabToolbarAnimation) {
build(
'<md-fab-toolbar md-open="isOpen">' +
' <md-fab-trigger><button></button></md-fab-trigger>' +
' <md-fab-actions><md-toolbar><button></button></md-toolbar></md-fab-actions>' +
'</md-fab-toolbar>'
);
var addDone = jasmine.createSpy('addDone');
var removeDone = jasmine.createSpy('removeDone');
mdFabToolbarAnimation.addClass(element, 'md-is-open', addDone);
expect(addDone).toHaveBeenCalled();
mdFabToolbarAnimation.removeClass(element, 'md-is-open', removeDone);
expect(removeDone).toHaveBeenCalled();
}));
});