From 0d8bba263dc195147d6fdb09662e7926f0a58b3e Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Thu, 2 Apr 2015 19:24:45 +0200 Subject: Bump lots of changes --- .../speedometer/c3-master/spec/tooltip-spec.js | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 web/nms.gathering.org/speedometer/c3-master/spec/tooltip-spec.js (limited to 'web/nms.gathering.org/speedometer/c3-master/spec/tooltip-spec.js') diff --git a/web/nms.gathering.org/speedometer/c3-master/spec/tooltip-spec.js b/web/nms.gathering.org/speedometer/c3-master/spec/tooltip-spec.js new file mode 100644 index 0000000..de3983f --- /dev/null +++ b/web/nms.gathering.org/speedometer/c3-master/spec/tooltip-spec.js @@ -0,0 +1,101 @@ +describe('c3 chart tooltip', function () { + 'use strict'; + + var chart; + var tooltipConfiguration; + + var args = function () { + return { + data: { + columns: [ + ['data1', 30, 200, 100, 400, 150, 250], + ['data2', 50, 20, 10, 40, 15, 25], + ['data3', 150, 120, 110, 140, 115, 125] + ], + }, + tooltip: tooltipConfiguration + }; + }; + + beforeEach(function (done) { + chart = window.initChart(chart, args(), done); + }); + + describe('tooltip position', function () { + beforeAll(function () { + tooltipConfiguration = {}; + }); + + describe('without left margin', function () { + + it('should show tooltip on proper position', function () { + var eventRect = d3.select('.c3-event-rect-2').node(); + window.setMouseEvent(chart, 'mousemove', 100, 100, eventRect); + + var tooltipContainer = d3.select('.c3-tooltip-container'), + top = Math.floor(+tooltipContainer.style('top').replace(/px/, '')), + left = Math.floor(+tooltipContainer.style('left').replace(/px/, '')), + topExpected = 115, + leftExpected = 280; + expect(top).toBe(topExpected); + expect(left).toBeGreaterThan(leftExpected); + }); + + }); + + describe('with left margin', function () { + + it('should set left margin', function () { + d3.select('#chart').style('margin-left', '300px'); + expect(true).toBeTruthy(); + }); + + it('should show tooltip on proper position', function () { + var eventRect = d3.select('.c3-event-rect-2').node(); + window.setMouseEvent(chart, 'mousemove', 100, 100, eventRect); + + var tooltipContainer = d3.select('.c3-tooltip-container'), + top = Math.floor(+tooltipContainer.style('top').replace(/px/, '')), + left = Math.floor(+tooltipContainer.style('left').replace(/px/, '')), + topExpected = 115, + leftExpected = 280; + expect(top).toBe(topExpected); + expect(left).toBeGreaterThan(leftExpected); + }); + + }); + + }); + + describe('tooltip positionFunction', function () { + var topExpected = 37, leftExpected = 79; + + beforeAll(function () { + tooltipConfiguration = { + position: function (data, width, height, element) { + expect(data.length).toBe(args().data.columns.length); + expect(data[0]).toEqual(jasmine.objectContaining({ + index: 2, + value: 100, + id: 'data1' + })); + expect(width).toBeGreaterThan(0); + expect(height).toBeGreaterThan(0); + expect(element).toBe(d3.select('.c3-event-rect-2').node()); + return {top: topExpected, left: leftExpected}; + } + }; + }); + + it('should be set to the coordinate where the function returned', function () { + var eventRect = d3.select('.c3-event-rect-2').node(); + window.setMouseEvent(chart, 'mousemove', 100, 100, eventRect); + + var tooltipContainer = d3.select('.c3-tooltip-container'), + top = Math.floor(+tooltipContainer.style('top').replace(/px/, '')), + left = Math.floor(+tooltipContainer.style('left').replace(/px/, '')); + expect(top).toBe(topExpected); + expect(left).toBe(leftExpected); + }); + }); +}); -- cgit v1.2.3