blob: 452c7fd41bfee00e6409c70a3b249b25ee8bc821 [file] [log] [blame]
Matteo Scandolo46b56102015-12-16 14:23:08 -08001// jasmine matcher for expecting an element to have a css class
2// https://github.com/angular/angular.js/blob/master/test/matchers.js
3beforeEach(function() {
4 jasmine.addMatchers({
5 toHaveClass: function(util, customEqualityTesters) {
6 return {
7 compare: function(actual, expected) {
8 var result = {
9 pass: actual.hasClass(expected)
10 };
11
12 if (result.pass) {
13 result.message = 'Expected "' + actual + '" not to have the "' + expected + '" class.';
14 } else {
15 result.message = 'Expected "' + actual + '" to have the "' + expected + '" class.';
16 }
17
18 return result;
19 }
20 }
21 },
22 toBeHidden: function(util, customEqualityTesters) {
23 return {
24 compare: function(actual) {
25 var result = {
26 pass: actual.hasClass('ng-hide') || actual.css('display') === 'none'
27 };
28
29 if (result.pass) {
30 result.message = 'Expected "' + actual + '" not to be hidden';
31 } else {
32 result.message = 'Expected "' + actual + '" to be hidden';
33 }
34
35 return result;
36 }
37 }
38 },
39 toHaveFocus: function(util, customEqualityTesters) {
40 return {
41 compare: function(actual) {
42 var result = {
43 pass: document.activeElement === actual[0]
44 };
45
46 if (result.pass) {
47 result.message = 'Expected "' + actual + '" not to have focus';
48 } else {
49 result.message = 'Expected "' + actual + '" to have focus';
50 }
51
52 return result;
53 }
54 }
55 }
56 });
57});