mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 12:19:08 +02:00
c6bda02468
The original implementation tries to intercept events from the chart internal iframe, which ones failing on Chrome 60. Checking internals doesn't seem the best approach, instead we could consider that a chart has been resized after the resize method has been called and processed. So let's hook `Chart.resize` and callback once it's done.
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
var Context = require('./jasmine.context');
|
|
var matchers = require('./jasmine.matchers');
|
|
var utils = require('./jasmine.utils');
|
|
|
|
(function() {
|
|
|
|
// Keep track of all acquired charts to automatically release them after each specs
|
|
var charts = {};
|
|
|
|
function acquireChart() {
|
|
var chart = utils.acquireChart.apply(utils, arguments);
|
|
charts[chart.id] = chart;
|
|
return chart;
|
|
}
|
|
|
|
function releaseChart(chart) {
|
|
utils.releaseChart.apply(utils, arguments);
|
|
delete charts[chart.id];
|
|
}
|
|
|
|
function createMockContext() {
|
|
return new Context();
|
|
}
|
|
|
|
window.acquireChart = acquireChart;
|
|
window.releaseChart = releaseChart;
|
|
window.waitForResize = utils.waitForResize;
|
|
window.createMockContext = createMockContext;
|
|
|
|
// some style initialization to limit differences between browsers across different plateforms.
|
|
utils.injectCSS(
|
|
'.chartjs-wrapper, .chartjs-wrapper canvas {' +
|
|
'border: 0;' +
|
|
'margin: 0;' +
|
|
'padding: 0;' +
|
|
'}' +
|
|
'.chartjs-wrapper {' +
|
|
'position: absolute' +
|
|
'}');
|
|
|
|
jasmine.specsFromFixtures = utils.specsFromFixtures;
|
|
|
|
beforeEach(function() {
|
|
jasmine.addMatchers(matchers);
|
|
});
|
|
|
|
afterEach(function() {
|
|
// Auto releasing acquired charts
|
|
Object.keys(charts).forEach(function(id) {
|
|
var chart = charts[id];
|
|
if (!(chart.$test || {}).persistent) {
|
|
releaseChart(chart);
|
|
}
|
|
});
|
|
});
|
|
}());
|