messengercustom-servicesmacoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscord
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
906 lines
35 KiB
906 lines
35 KiB
9 years ago
|
describe('Ext.chart.series.Series', function() {
|
||
|
|
||
|
describe('resolveListenerScope', function () {
|
||
|
|
||
|
var testScope;
|
||
|
|
||
|
function setTestScope() {
|
||
|
testScope = this;
|
||
|
}
|
||
|
|
||
|
var scopeObject = {
|
||
|
setTestScope: setTestScope
|
||
|
};
|
||
|
|
||
|
var store = Ext.create('Ext.data.Store', {
|
||
|
fields: ['x', 'y'],
|
||
|
data: [
|
||
|
{x: 0, y: 0},
|
||
|
{x: 1, y: 1}
|
||
|
]
|
||
|
});
|
||
|
|
||
|
var seriesConfig = {
|
||
|
type: 'bar',
|
||
|
xField: 'x',
|
||
|
yField: 'y'
|
||
|
};
|
||
|
|
||
|
function createContainer(options) {
|
||
|
var config = {
|
||
|
width: 400,
|
||
|
height: 400,
|
||
|
layout: 'fit'
|
||
|
};
|
||
|
Ext.apply(config, options);
|
||
|
var container = Ext.create('Ext.container.Container', config);
|
||
|
container.setTestScope = setTestScope;
|
||
|
return container;
|
||
|
}
|
||
|
|
||
|
function createController() {
|
||
|
return Ext.create('Ext.app.ViewController', {
|
||
|
setTestScope: setTestScope
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function createChart(options) {
|
||
|
var config = {
|
||
|
store: store,
|
||
|
series: seriesConfig
|
||
|
};
|
||
|
Ext.apply(config, options);
|
||
|
var chart = Ext.create('Ext.chart.CartesianChart', config);
|
||
|
chart.setTestScope = setTestScope;
|
||
|
return chart;
|
||
|
}
|
||
|
|
||
|
function createSeriesClass(listenerScope) {
|
||
|
return Ext.define(null, {
|
||
|
extend: 'Ext.chart.series.Bar',
|
||
|
xField: 'x',
|
||
|
yField: 'y',
|
||
|
setTestScope: setTestScope,
|
||
|
listeners: {
|
||
|
test: {
|
||
|
fn: 'setTestScope',
|
||
|
scope: listenerScope
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
describe('series instance listener', function () {
|
||
|
|
||
|
describe('no chart controller, chart container controller', function () {
|
||
|
var chart, series,
|
||
|
container, containerController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
containerController = createController();
|
||
|
chart = createChart();
|
||
|
container = createContainer({
|
||
|
controller: containerController
|
||
|
});
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart container controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(containerController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart container controller", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(containerController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
describe('chart controller, no chart container controller', function () {
|
||
|
var chart, series,
|
||
|
container, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
controller: chartController
|
||
|
});
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart controller", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
describe('chart controller, chart container controller', function () {
|
||
|
var chart, container, series,
|
||
|
chartController,
|
||
|
containerController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
containerController = createController();
|
||
|
chart = createChart({
|
||
|
controller: chartController
|
||
|
});
|
||
|
container = createContainer({
|
||
|
controller: containerController
|
||
|
});
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart controller", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('no chart controller, no chart container controller', function () {
|
||
|
var chart, series, container;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chart = createChart();
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should fail", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
expect(function () {
|
||
|
series.fireEvent('test', series);
|
||
|
}).toThrow();
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the chart", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chart);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart inside container with defaultListenerScope: true (no controllers)', function () {
|
||
|
var chart, series, container;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chart = createChart();
|
||
|
container = createContainer({
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should fail", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
expect(function () {
|
||
|
series.fireEvent('test', series);
|
||
|
}).toThrow();
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the container", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(container);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with a controller and defaultListenerScope: true', function () {
|
||
|
var chart, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
controller: chartController,
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to the chart controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the chart", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chart);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with a controller (no container)', function () {
|
||
|
var chart, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
controller: chartController
|
||
|
});
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to the chart controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the chart controller", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with defaultListenerScope: true (container, no controllers)', function () {
|
||
|
var chart, container, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chart = createChart({
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
series = chart.getSeries()[0];
|
||
|
series.setTestScope = setTestScope;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'this'
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: scopeObject
|
||
|
});
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to the chart controller", function () {
|
||
|
series.on({
|
||
|
test: 'setTestScope',
|
||
|
scope: 'controller'
|
||
|
});
|
||
|
expect(function () {
|
||
|
series.fireEvent('test', series);
|
||
|
}).toThrow();
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the chart", function () {
|
||
|
series.on('test', 'setTestScope');
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chart);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
// #######################################################################################
|
||
|
|
||
|
describe('series class listener', function () {
|
||
|
|
||
|
describe('no chart controller, chart container controller', function () {
|
||
|
var chart, series,
|
||
|
container, containerController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
containerController = createController();
|
||
|
chart = createChart({
|
||
|
series: []
|
||
|
});
|
||
|
container = createContainer({
|
||
|
controller: containerController
|
||
|
});
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart container controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(containerController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart container controller", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(containerController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
describe('chart controller, no chart container controller', function () {
|
||
|
var chart, series,
|
||
|
container, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
series: [],
|
||
|
controller: chartController
|
||
|
});
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart controller", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
describe('chart controller, chart container controller', function () {
|
||
|
var chart, container, series,
|
||
|
chartController,
|
||
|
containerController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
containerController = createController();
|
||
|
chart = createChart({
|
||
|
series: [],
|
||
|
controller: chartController
|
||
|
});
|
||
|
container = createContainer({
|
||
|
controller: containerController
|
||
|
});
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart controller", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('no chart controller, no chart container controller', function () {
|
||
|
var chart, series, container;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chart = createChart({
|
||
|
series: []
|
||
|
});
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should fail", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
expect(function () {
|
||
|
series.fireEvent('test', series);
|
||
|
}).toThrow();
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to the series", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart inside container with defaultListenerScope: true (no controllers)', function () {
|
||
|
var chart, series, container;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chart = createChart({
|
||
|
series: []
|
||
|
});
|
||
|
container = createContainer({
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
container.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should fail", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
expect(function () {
|
||
|
series.fireEvent('test', series);
|
||
|
}).toThrow();
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart container", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(container);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with a controller and defaultListenerScope: true', function () {
|
||
|
var chart, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
series: [],
|
||
|
controller: chartController,
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chart);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with a controller (no container)', function () {
|
||
|
var chart, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
series: [],
|
||
|
controller: chartController
|
||
|
});
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart controller", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('chart with defaultListenerScope: true (container, no controllers)', function () {
|
||
|
var chart, container, series, chartController;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
testScope = undefined;
|
||
|
chartController = createController();
|
||
|
chart = createChart({
|
||
|
series: [],
|
||
|
controller: chartController,
|
||
|
defaultListenerScope: true
|
||
|
});
|
||
|
container = createContainer();
|
||
|
container.add(chart);
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
chart.destroy();
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'this' should refer to the series", function () {
|
||
|
series = new (createSeriesClass('this'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(series);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to an arbitrary object should refer to that object", function () {
|
||
|
series = new (createSeriesClass(scopeObject))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(scopeObject);
|
||
|
});
|
||
|
|
||
|
it("listener scoped to 'controller' should refer to chart controller", function () {
|
||
|
series = new (createSeriesClass('controller'))();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chartController);
|
||
|
});
|
||
|
|
||
|
it("listener with no explicit scope should be scoped to chart", function () {
|
||
|
series = new (createSeriesClass())();
|
||
|
chart.setSeries(series);
|
||
|
series.fireEvent('test', series);
|
||
|
expect(testScope).toBe(chart);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
})
|
||
|
|
||
|
});
|
||
|
});
|