PHP Classes

File: vendors/chart.js/test/element.point.tests.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/chart.js/test/element.point.tests.js   Download  
File: vendors/chart.js/test/element.point.tests.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 2 years ago
Size: 9,346 bytes
 

Contents

Class file image Download
// Test the point element describe('Point element tests', function() { it ('Should be constructed', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); expect(point).not.toBe(undefined); expect(point._datasetIndex).toBe(2); expect(point._index).toBe(1); }); it ('Should correctly identify as in range', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); // Safely handles if these are called before the viewmodel is instantiated expect(point.inRange(5)).toBe(false); expect(point.inLabelRange(5)).toBe(false); // Attach a view object as if we were the controller point._view = { radius: 2, hitRadius: 3, x: 10, y: 15 }; expect(point.inRange(10, 15)).toBe(true); expect(point.inRange(10, 10)).toBe(false); expect(point.inRange(10, 5)).toBe(false); expect(point.inRange(5, 5)).toBe(false); expect(point.inLabelRange(5)).toBe(false); expect(point.inLabelRange(7)).toBe(true); expect(point.inLabelRange(10)).toBe(true); expect(point.inLabelRange(12)).toBe(true); expect(point.inLabelRange(15)).toBe(false); expect(point.inLabelRange(20)).toBe(false); }); it ('should get the correct tooltip position', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); // Attach a view object as if we were the controller point._view = { radius: 2, borderWidth: 6, x: 10, y: 15 }; expect(point.tooltipPosition()).toEqual({ x: 10, y: 15, padding: 8 }); }); it ('should draw correctly', function() { var mockContext = window.createMockContext(); var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1, _chart: { ctx: mockContext, } }); // Attach a view object as if we were the controller point._view = { radius: 2, pointStyle: 'circle', hitRadius: 3, borderColor: 'rgba(1, 2, 3, 1)', borderWidth: 6, backgroundColor: 'rgba(0, 255, 0)', x: 10, y: 15, ctx: mockContext }; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'arc', args: [10, 15, 2, 0, 2 * Math.PI] }, { name: 'closePath', args: [], }, { name: 'fill', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'triangle'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [10 - 3 * 2 / Math.sqrt(3) / 2, 15 + 3 * 2 / Math.sqrt(3) * Math.sqrt(3) / 2 / 3] }, { name: 'lineTo', args: [10 + 3 * 2 / Math.sqrt(3) / 2, 15 + 3 * 2 / Math.sqrt(3) * Math.sqrt(3) / 2 / 3], }, { name: 'lineTo', args: [10, 15 - 2 * 3 * 2 / Math.sqrt(3) * Math.sqrt(3) / 2 / 3], }, { name: 'closePath', args: [], }, { name: 'fill', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'rect'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'fillRect', args: [10 - 1 / Math.SQRT2 * 2, 15 - 1 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2] }, { name: 'strokeRect', args: [10 - 1 / Math.SQRT2 * 2, 15 - 1 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2] }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'rectRot'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'translate', args: [10, 15] }, { name: 'rotate', args: [Math.PI / 4] }, { name: 'fillRect', args: [-1 / Math.SQRT2 * 2, -1 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2], }, { name: 'strokeRect', args: [-1 / Math.SQRT2 * 2, -1 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2, 2 / Math.SQRT2 * 2], }, { name: 'setTransform', args: [1, 0, 0, 1, 0, 0], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'cross'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [10, 17] }, { name: 'lineTo', args: [10, 13], }, { name: 'moveTo', args: [8, 15], }, { name: 'lineTo', args: [12, 15], },{ name: 'closePath', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'crossRot'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [10 - Math.cos(Math.PI / 4) * 2, 15 - Math.sin(Math.PI / 4) * 2] }, { name: 'lineTo', args: [10 + Math.cos(Math.PI / 4) * 2, 15 + Math.sin(Math.PI / 4) * 2], }, { name: 'moveTo', args: [10 - Math.cos(Math.PI / 4) * 2, 15 + Math.sin(Math.PI / 4) * 2], }, { name: 'lineTo', args: [10 + Math.cos(Math.PI / 4) * 2, 15 - Math.sin(Math.PI / 4) * 2], }, { name: 'closePath', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'star'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [10, 17] }, { name: 'lineTo', args: [10, 13], }, { name: 'moveTo', args: [8, 15], }, { name: 'lineTo', args: [12, 15], },{ name: 'moveTo', args: [10 - Math.cos(Math.PI / 4) * 2, 15 - Math.sin(Math.PI / 4) * 2] }, { name: 'lineTo', args: [10 + Math.cos(Math.PI / 4) * 2, 15 + Math.sin(Math.PI / 4) * 2], }, { name: 'moveTo', args: [10 - Math.cos(Math.PI / 4) * 2, 15 + Math.sin(Math.PI / 4) * 2], }, { name: 'lineTo', args: [10 + Math.cos(Math.PI / 4) * 2, 15 - Math.sin(Math.PI / 4) * 2], }, { name: 'closePath', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'line'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [8, 15] }, { name: 'lineTo', args: [12, 15], }, { name: 'closePath', args: [], }, { name: 'stroke', args: [] }]); mockContext.resetCalls(); point._view.pointStyle = 'dash'; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(1, 2, 3, 1)'] }, { name: 'setLineWidth', args: [6] }, { name: 'setFillStyle', args: ['rgba(0, 255, 0)'] }, { name: 'beginPath', args: [] }, { name: 'moveTo', args: [10, 15] }, { name: 'lineTo', args: [12, 15], }, { name: 'closePath', args: [], }, { name: 'stroke', args: [] }]); }); it ('should draw correctly with default settings if necessary', function() { var mockContext = window.createMockContext(); var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1, _chart: { ctx: mockContext, } }); // Attach a view object as if we were the controller point._view = { radius: 2, hitRadius: 3, x: 10, y: 15, ctx: mockContext }; point.draw(); expect(mockContext.getCalls()).toEqual([{ name: 'setStrokeStyle', args: ['rgba(0,0,0,0.1)'] }, { name: 'setLineWidth', args: [1] }, { name: 'setFillStyle', args: ['rgba(0,0,0,0.1)'] }, { name: 'beginPath', args: [] }, { name: 'arc', args: [10, 15, 2, 0, 2 * Math.PI] }, { name: 'closePath', args: [], }, { name: 'fill', args: [], }, { name: 'stroke', args: [] }]); }); it ('should not draw if skipped', function() { var mockContext = window.createMockContext(); var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1, _chart: { ctx: mockContext, } }); // Attach a view object as if we were the controller point._view = { radius: 2, hitRadius: 3, x: 10, y: 15, ctx: mockContext, skip: true }; point.draw(); expect(mockContext.getCalls()).toEqual([]); }); });