helpers.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // jasmine matcher for expecting an element to have a css class
  2. // https://github.com/angular/angular.js/blob/master/test/matchers.js
  3. beforeEach(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. if (result.pass) {
  12. result.message = 'Expected "' + actual + '" not to have the "' + expected + '" class.';
  13. } else {
  14. result.message = 'Expected "' + actual + '" to have the "' + expected + '" class.';
  15. }
  16. return result;
  17. }
  18. }
  19. },
  20. toBeHidden: function(util, customEqualityTesters) {
  21. return {
  22. compare: function(actual) {
  23. var result = {
  24. pass: actual.hasClass('ng-hide') || actual.css('display') === 'none'
  25. };
  26. if (result.pass) {
  27. result.message = 'Expected "' + actual + '" not to be hidden';
  28. } else {
  29. result.message = 'Expected "' + actual + '" to be hidden';
  30. }
  31. return result;
  32. }
  33. }
  34. },
  35. toHaveFocus: function(util, customEqualityTesters) {
  36. return {
  37. compare: function(actual) {
  38. var result = {
  39. pass: document.activeElement === actual[0]
  40. };
  41. if (result.pass) {
  42. result.message = 'Expected "' + actual + '" not to have focus';
  43. } else {
  44. result.message = 'Expected "' + actual + '" to have focus';
  45. }
  46. return result;
  47. }
  48. }
  49. }
  50. });
  51. });