2016-06-10 22:27:06 +02:00
|
|
|
describe('Chart.plugins', function() {
|
2016-05-27 01:22:11 +02:00
|
|
|
var oldPlugins;
|
|
|
|
|
|
|
|
beforeAll(function() {
|
2016-06-10 22:27:06 +02:00
|
|
|
oldPlugins = Chart.plugins.getAll();
|
2016-05-27 01:22:11 +02:00
|
|
|
});
|
2016-06-10 22:26:35 +02:00
|
|
|
|
2016-05-27 01:22:11 +02:00
|
|
|
afterAll(function() {
|
2016-06-10 22:27:06 +02:00
|
|
|
Chart.plugins.register(oldPlugins);
|
2016-05-27 01:22:11 +02:00
|
|
|
});
|
|
|
|
|
2016-04-17 18:02:33 +02:00
|
|
|
beforeEach(function() {
|
2016-06-10 22:27:06 +02:00
|
|
|
Chart.plugins.clear();
|
2016-04-17 18:02:33 +02:00
|
|
|
});
|
|
|
|
|
2016-06-10 22:27:06 +02:00
|
|
|
describe('Chart.plugins.register', function() {
|
|
|
|
it('should register a plugin', function() {
|
|
|
|
Chart.plugins.register({});
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.register({});
|
|
|
|
expect(Chart.plugins.count()).toBe(2);
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
|
2016-06-10 22:27:06 +02:00
|
|
|
it('should register an array of plugins', function() {
|
|
|
|
Chart.plugins.register([{}, {}, {}]);
|
|
|
|
expect(Chart.plugins.count()).toBe(3);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should succeed to register an already registered plugin', function() {
|
|
|
|
var plugin = {};
|
|
|
|
Chart.plugins.register(plugin);
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.register(plugin);
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.register([{}, plugin, plugin]);
|
|
|
|
expect(Chart.plugins.count()).toBe(2);
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
});
|
|
|
|
|
2016-06-10 22:27:06 +02:00
|
|
|
describe('Chart.plugins.unregister', function() {
|
|
|
|
it('should unregister a plugin', function() {
|
|
|
|
var plugin = {};
|
|
|
|
Chart.plugins.register(plugin);
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.unregister(plugin);
|
|
|
|
expect(Chart.plugins.count()).toBe(0);
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
|
2016-06-10 22:27:06 +02:00
|
|
|
it('should unregister an array of plugins', function() {
|
|
|
|
var plugins = [{}, {}, {}];
|
|
|
|
Chart.plugins.register(plugins);
|
|
|
|
expect(Chart.plugins.count()).toBe(3);
|
|
|
|
Chart.plugins.unregister(plugins.slice(0, 2));
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
|
2016-06-10 22:27:06 +02:00
|
|
|
it('should succeed to unregister a plugin not registered', function() {
|
|
|
|
var plugin = {};
|
|
|
|
Chart.plugins.register(plugin);
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.unregister({});
|
|
|
|
expect(Chart.plugins.count()).toBe(1);
|
|
|
|
Chart.plugins.unregister([{}, plugin]);
|
|
|
|
expect(Chart.plugins.count()).toBe(0);
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
});
|
|
|
|
|
2016-06-10 22:26:55 +02:00
|
|
|
describe('Chart.plugins.notify', function() {
|
2016-06-10 22:27:06 +02:00
|
|
|
it('should call plugins with arguments', function() {
|
2016-06-10 22:26:55 +02:00
|
|
|
var myplugin = {
|
|
|
|
count: 0,
|
|
|
|
trigger: function(chart) {
|
|
|
|
myplugin.count = chart.count;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
Chart.plugins.register(myplugin);
|
|
|
|
Chart.plugins.notify('trigger', [{ count: 10 }]);
|
|
|
|
expect(myplugin.count).toBe(10);
|
|
|
|
});
|
2016-06-10 22:26:35 +02:00
|
|
|
|
2016-06-10 22:26:55 +02:00
|
|
|
it('should return TRUE if no plugin explicitly returns FALSE', function() {
|
|
|
|
Chart.plugins.register({ check: function() {} });
|
|
|
|
Chart.plugins.register({ check: function() { return; } });
|
|
|
|
Chart.plugins.register({ check: function() { return null; } });
|
|
|
|
Chart.plugins.register({ check: function() { return 42 } });
|
|
|
|
var res = Chart.plugins.notify('check');
|
|
|
|
expect(res).toBeTruthy();
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
|
2016-06-10 22:26:55 +02:00
|
|
|
it('should return FALSE if no plugin explicitly returns FALSE', function() {
|
|
|
|
Chart.plugins.register({ check: function() {} });
|
|
|
|
Chart.plugins.register({ check: function() { return; } });
|
|
|
|
Chart.plugins.register({ check: function() { return false; } });
|
|
|
|
Chart.plugins.register({ check: function() { return 42 } });
|
|
|
|
var res = Chart.plugins.notify('check');
|
|
|
|
expect(res).toBeFalsy();
|
|
|
|
});
|
2016-04-17 18:02:33 +02:00
|
|
|
});
|
|
|
|
});
|