summaryrefslogtreecommitdiffstats
path: root/js/vendor/angular-ui/modules/directives/reset/test/resetSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/reset/test/resetSpec.js')
-rwxr-xr-xjs/vendor/angular-ui/modules/directives/reset/test/resetSpec.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/js/vendor/angular-ui/modules/directives/reset/test/resetSpec.js b/js/vendor/angular-ui/modules/directives/reset/test/resetSpec.js
new file mode 100755
index 000000000..c96a2d8b5
--- /dev/null
+++ b/js/vendor/angular-ui/modules/directives/reset/test/resetSpec.js
@@ -0,0 +1,55 @@
+/*global describe, beforeEach, module, inject, it, spyOn, expect, $ */
+describe('uiReset', function () {
+ 'use strict';
+
+ var scope, $compile;
+ beforeEach(module('ui.directives'));
+ beforeEach(inject(function (_$rootScope_, _$compile_, _$window_) {
+ scope = _$rootScope_.$new();
+ $compile = _$compile_;
+ }));
+
+ describe('compiling this directive', function () {
+ it('should throw an error if we have no model defined', function () {
+ function compile() {
+ $compile('<input type="text" ui-reset/>')(scope);
+ }
+
+ expect(compile).toThrow();
+ });
+ it('should proper DOM structure', function () {
+ scope.foo = 'bar';
+ scope.$digest();
+ var element = $compile('<input type="text" ui-reset ng-model="foo"/>')(scope);
+ expect(element.parent().is('span')).toBe(true);
+ expect(element.next().is('a')).toBe(true);
+ });
+ });
+ describe('clicking on the created anchor tag', function () {
+ it('should prevent the default action', function () {
+ var element = $compile('<input type="text" ui-reset ng-model="foo"/>')(scope);
+ spyOn($.Event.prototype, 'preventDefault');
+ element.siblings().get(0).click();
+ expect($.Event.prototype.preventDefault).toHaveBeenCalled();
+ });
+ it('should set the model value to null and clear control when no options given', function () {
+ scope.foo = 'bar';
+ var element = $compile('<input type="text" ui-reset ng-model="foo"/>')(scope);
+ scope.$digest();
+ expect(element.val()).toBe('bar');
+ element.next().click();
+ expect(scope.foo).toBe(null);
+ expect(element.val()).toBe('');
+ });
+ it('should set the model value to the options scope variable when a string is passed in options', function () {
+ scope.foo = 'bar';
+ scope.resetTo = 'i was reset';
+ var element = $compile('<input type="text" ui-reset="resetTo" ng-model="foo"/>')(scope);
+ scope.$digest();
+ expect(element.val()).toBe('bar');
+ element.next().click();
+ expect(scope.foo).toBe('i was reset');
+ expect(element.val()).toBe('i was reset');
+ });
+ });
+}); \ No newline at end of file