Ming He 6e01037e55 fix gitignroe so bower_components are included in target folder
Change-Id: I97a6ec0d4584b821970bc0fbedf3c9b898773688
2015-12-21 10:19:15 -08:00

166 lines
6.7 KiB
JavaScript

/* License: MIT.
* Copyright (C) 2013, 2014, Uri Shaked and contributors.
*/
'use strict';
describe('Provider: usSpinnerConfigProvider', function () {
beforeEach(module('angularSpinner'));
it('should have configurable options', function () {
module(function (usSpinnerConfigProvider) {
usSpinnerConfigProvider.setDefaults({color: 'black'});
});
inject(function (usSpinnerConfig) {
expect(usSpinnerConfig.config.color).toBe('black');
});
});
});
describe('Directive: us-spinner', function () {
var Spinner;
beforeEach(module(function ($provide) {
Spinner = jasmine.createSpy('Spinner');
Spinner.prototype.spin = jasmine.createSpy('Spinner.spin');
Spinner.prototype.stop = jasmine.createSpy('Spinner.stop');
$provide.value('$window', {
location: angular.copy(window.location),
navigator: angular.copy(window.navigator),
document: window.document,
Spinner: Spinner
});
}));
beforeEach(module('angularSpinner'));
it('should create a spinner object', inject(function ($rootScope, $compile) {
var element = angular.element('<div us-spinner></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner).toHaveBeenCalled();
}));
it('should start spinning the spinner automatically', inject(function ($rootScope, $compile) {
var element = angular.element('<div us-spinner></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).toHaveBeenCalled();
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
}));
it('should start spinning the second spinner without stopping the first one', inject(function ($rootScope, $compile) {
var element = angular.element('<div us-spinner></div>');
element = $compile(element)($rootScope);
var secondElement = angular.element('<div us-spinner></div>');
secondElement = $compile(secondElement)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin.calls.count()).toBe(2);
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
}));
it('should set spinner options as given in attribute', inject(function ($rootScope, $compile) {
var element = angular.element('<div us-spinner="{width:15}"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner).toHaveBeenCalledWith({width: 15});
}));
it('should update spinner options in response to scope updates', inject(function ($rootScope, $compile) {
$rootScope.actualWidth = 25;
var element = angular.element('<div us-spinner="{width:actualWidth}"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner).toHaveBeenCalledWith({width: 25});
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
$rootScope.actualWidth = 72;
$rootScope.$digest();
expect(Spinner).toHaveBeenCalledWith({width: 72});
expect(Spinner.prototype.stop).toHaveBeenCalled();
expect(Spinner.prototype.spin.calls.count()).toBe(2);
}));
it('should stop the spinner when the scope is destroyed', inject(function ($rootScope, $compile) {
var scope = $rootScope.$new();
var element = angular.element('<div us-spinner></div>');
element = $compile(element)(scope);
$rootScope.$digest();
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
scope.$destroy();
expect(Spinner.prototype.stop).toHaveBeenCalled();
}));
it('should not start spinning automatically', inject(function ($rootScope, $compile) {
var element = angular.element('<div us-spinner spinner-key="spinner"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).not.toHaveBeenCalled();
}));
it('should start spinning when service trigger the spin event', inject(function ($rootScope, $compile, usSpinnerService) {
var element = angular.element('<div us-spinner spinner-key="spinner"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).not.toHaveBeenCalled();
usSpinnerService.spin('spinner');
expect(Spinner.prototype.spin).toHaveBeenCalled();
}));
it('should start spinning the spinner automatically and stop when service trigger the stop event', inject(function ($rootScope, $compile, usSpinnerService) {
var element = angular.element('<div us-spinner spinner-key="spinner" spinner-start-active="1"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).toHaveBeenCalled();
usSpinnerService.stop('spinner');
expect(Spinner.prototype.stop).toHaveBeenCalled();
}));
it('should not start spinning the spinner automatically from binding', inject(function ($rootScope, $compile) {
$rootScope.spinnerActive = false;
var element = angular.element('<div us-spinner spinner-key="spinner" spinner-start-active="spinnerActive"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).not.toHaveBeenCalled();
}));
it('should start spinning the spinner automatically from binding', inject(function ($rootScope, $compile) {
$rootScope.spinnerActive = true;
var element = angular.element('<div us-spinner spinner-key="spinner" spinner-start-active="spinnerActive"></div>');
element = $compile(element)($rootScope);
$rootScope.$digest();
expect(Spinner.prototype.spin).toHaveBeenCalled();
}));
it('should start spinning the second spinner without starting the first one', inject(function ($rootScope, $compile, usSpinnerService) {
var element = angular.element('<div us-spinner spinner-key="spinner"></div>');
element = $compile(element)($rootScope);
var secondElement = angular.element('<div us-spinner spinner-key="spinner2"></div>');
secondElement = $compile(secondElement)($rootScope);
$rootScope.$digest();
usSpinnerService.spin('spinner2');
expect(Spinner.prototype.spin.calls.count()).toBe(1);
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
}));
it('should start spinning the spinners with the same key', inject(function ($rootScope, $compile, usSpinnerService) {
$compile('<div us-spinner spinner-key="spinner"></div>')($rootScope);
$compile('<div us-spinner spinner-key="spinner2"></div>')($rootScope);
$compile('<div us-spinner spinner-key="spinner"></div>')($rootScope);
$compile('<div us-spinner spinner-key="spinner2"></div>')($rootScope);
$compile('<div us-spinner spinner-key="spinner"></div>')($rootScope);
$rootScope.$digest();
usSpinnerService.spin('spinner');
expect(Spinner.prototype.spin.calls.count()).toBe(3);
expect(Spinner.prototype.stop).not.toHaveBeenCalled();
usSpinnerService.stop('spinner');
expect(Spinner.prototype.stop.calls.count()).toBe(3);
usSpinnerService.spin('spinner2');
expect(Spinner.prototype.spin.calls.count()).toBe(5);
usSpinnerService.stop('spinner2');
expect(Spinner.prototype.stop.calls.count()).toBe(5);
}));
});