jasmine.index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var Context = require('./jasmine.context');
  2. var matchers = require('./jasmine.matchers');
  3. var utils = require('./jasmine.utils');
  4. (function() {
  5. // Keep track of all acquired charts to automatically release them after each specs
  6. var charts = {};
  7. function acquireChart() {
  8. var chart = utils.acquireChart.apply(utils, arguments);
  9. charts[chart.id] = chart;
  10. return chart;
  11. }
  12. function releaseChart(chart) {
  13. utils.releaseChart.apply(utils, arguments);
  14. delete charts[chart.id];
  15. }
  16. function createMockContext() {
  17. return new Context();
  18. }
  19. // force ratio=1 for tests on high-res/retina devices
  20. // fixes https://github.com/chartjs/Chart.js/issues/4515
  21. window.devicePixelRatio = 1;
  22. window.acquireChart = acquireChart;
  23. window.releaseChart = releaseChart;
  24. window.waitForResize = utils.waitForResize;
  25. window.createMockContext = createMockContext;
  26. // some style initialization to limit differences between browsers across different plateforms.
  27. utils.injectCSS(
  28. '.chartjs-wrapper, .chartjs-wrapper canvas {' +
  29. 'border: 0;' +
  30. 'margin: 0;' +
  31. 'padding: 0;' +
  32. '}' +
  33. '.chartjs-wrapper {' +
  34. 'position: absolute' +
  35. '}');
  36. jasmine.specsFromFixtures = utils.specsFromFixtures;
  37. jasmine.triggerMouseEvent = utils.triggerMouseEvent;
  38. beforeEach(function() {
  39. jasmine.addMatchers(matchers);
  40. });
  41. afterEach(function() {
  42. // Auto releasing acquired charts
  43. Object.keys(charts).forEach(function(id) {
  44. var chart = charts[id];
  45. if (!(chart.$test || {}).persistent) {
  46. releaseChart(chart);
  47. }
  48. });
  49. });
  50. }());