Add an AngularJS test to DoYouEvenBench
[WebKit-https.git] / PerformanceTests / DoYouEvenBench / todomvc / architecture-examples / angularjs / test / unit / directivesSpec.js
1 /*global describe, it, beforeEach, inject, expect, angular*/
2 (function () {
3     'use strict';
4
5     beforeEach(module('todomvc'));
6
7     describe('todoBlur directive', function () {
8     var scope, compile;
9
10     beforeEach(inject(function ($rootScope, $compile) {
11     scope = $rootScope.$new();
12     compile = $compile;
13     }));
14
15     it('should $apply on blur', function () {
16     var el,
17     mock = {
18     called: false,
19     call: function () { this.called = true; }
20     };
21
22     scope.mock = mock;
23     el = angular.element('<input todo-blur="mock.call()">');
24     compile(el)(scope);
25
26     el.triggerHandler('blur');
27     scope.$digest();
28
29     expect(mock.called).toBeTruthy();
30     });
31     });
32
33     describe('todoFocus directive', function () {
34     var scope, compile, browser;
35
36     beforeEach(inject(function ($rootScope, $compile, $browser) {
37     scope = $rootScope.$new();
38     compile = $compile;
39     browser = $browser;
40     }));
41
42     it('should focus on truthy expression', function () {
43     var el = angular.element('<input todo-focus="focus">');
44     scope.focus = false;
45
46     compile(el)(scope);
47     expect(browser.deferredFns.length).toBe(0);
48
49     scope.$apply(function () {
50     scope.focus = true;
51     });
52
53     expect(browser.deferredFns.length).toBe(1);
54     });
55     });
56 }());