// jasmine matcher for expecting an element to have a css class // https://github.com/angular/angular.js/blob/master/test/matchers.js beforeEach(function() { jasmine.addMatchers({ toHaveClass: function(util, customEqualityTesters) { return { compare: function(actual, expected) { var result = { pass: actual.hasClass(expected) }; if (result.pass) { result.message = 'Expected "' + actual + '" not to have the "' + expected + '" class.'; } else { result.message = 'Expected "' + actual + '" to have the "' + expected + '" class.'; } return result; } } }, toBeHidden: function(util, customEqualityTesters) { return { compare: function(actual) { var result = { pass: actual.hasClass('ng-hide') || actual.css('display') === 'none' }; if (result.pass) { result.message = 'Expected "' + actual + '" not to be hidden'; } else { result.message = 'Expected "' + actual + '" to be hidden'; } return result; } } }, toHaveFocus: function(util, customEqualityTesters) { return { compare: function(actual) { var result = { pass: document.activeElement === actual[0] }; if (result.pass) { result.message = 'Expected "' + actual + '" not to have focus'; } else { result.message = 'Expected "' + actual + '" to have focus'; } return result; } } } }); });