seriestests.html revision 4f6209ded4da421d5e804d9b6740c640e801b0aa
562568c870b1109f8b462727a15d214d71d892afTripp<link type="text/css" rel="stylesheet" href="/build/logreader/assets/skins/sam/logreader.css" />
562568c870b1109f8b462727a15d214d71d892afTripp width: 400px;
562568c870b1109f8b462727a15d214d71d892afTripp height: 300px;
562568c870b1109f8b462727a15d214d71d892afTripp<script type="text/javascript" src="/build/yui/yui.js"></script>
562568c870b1109f8b462727a15d214d71d892afTripp allowRollup: false,
562568c870b1109f8b462727a15d214d71d892afTripp filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
562568c870b1109f8b462727a15d214d71d892afTripp }).use('charts', 'test', 'event-simulate', 'console', function (Y) {
562568c870b1109f8b462727a15d214d71d892afTripp var ASSERT = Y.Assert,
562568c870b1109f8b462727a15d214d71d892afTripp ObjectAssert = Y.ObjectAssert;
562568c870b1109f8b462727a15d214d71d892afTripp //-------------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp // Chart Event Test Case
562568c870b1109f8b462727a15d214d71d892afTripp //-------------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp function ChartEventTestCase(cfg, type)
562568c870b1109f8b462727a15d214d71d892afTripp this.name = "Event '" + type + "' Tests";
562568c870b1109f8b462727a15d214d71d892afTripp //---------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp // Setup and teardown of test harnesses
562568c870b1109f8b462727a15d214d71d892afTripp //---------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp * Sets up several event handlers used to test UserAction mouse events.
562568c870b1109f8b462727a15d214d71d892afTripp setUp : function()
562568c870b1109f8b462727a15d214d71d892afTripp //create the chart
562568c870b1109f8b462727a15d214d71d892afTripp //reset the result
562568c870b1109f8b462727a15d214d71d892afTripp //assign event handler
562568c870b1109f8b462727a15d214d71d892afTripp //this.handler = Y.on(this.eventType, Y.bind(this.handleEvent,this), this.element);
562568c870b1109f8b462727a15d214d71d892afTripp this.handler = Y.delegate(this.eventType, Y.bind(this.handleEvent, this), this.contentBox, ".yui3-seriesmarker");
562568c870b1109f8b462727a15d214d71d892afTripp * Removes event handlers that were used during the test.
562568c870b1109f8b462727a15d214d71d892afTripp tearDown : function()
562568c870b1109f8b462727a15d214d71d892afTripp //remove the element
562568c870b1109f8b462727a15d214d71d892afTripp //---------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp // Event handler
562568c870b1109f8b462727a15d214d71d892afTripp //---------------------------------------------------------------------
562568c870b1109f8b462727a15d214d71d892afTripp * Uses to trap and assign the event object for interrogation.
562568c870b1109f8b462727a15d214d71d892afTripp * @param {Event} event The event object created from the event.
562568c870b1109f8b462727a15d214d71d892afTripp handleEvent : function(event)
562568c870b1109f8b462727a15d214d71d892afTripp function ChartMarkerEventTestCase()
562568c870b1109f8b462727a15d214d71d892afTripp ChartMarkerEventTestCase.superclass.constructor.apply(this, arguments);
562568c870b1109f8b462727a15d214d71d892afTripp Y.extend(ChartMarkerEventTestCase, ChartEventTestCase, {
562568c870b1109f8b462727a15d214d71d892afTripp getMarkerData: function(e)
562568c870b1109f8b462727a15d214d71d892afTripp var type = e.type,
562568c870b1109f8b462727a15d214d71d892afTripp cb = this.chart.get("contentBox"),
562568c870b1109f8b462727a15d214d71d892afTripp markerNode = e.currentTarget,
562568c870b1109f8b462727a15d214d71d892afTripp strArr = markerNode.getAttribute("id").split("_"),
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp seriesIndex = strArr.pop(),
562568c870b1109f8b462727a15d214d71d892afTripp series = this.chart.getSeries(parseInt(seriesIndex, 10)),
562568c870b1109f8b462727a15d214d71d892afTripp items = this.chart.getSeriesItems(series, index),
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp x = pageX - cb.getX(),
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp y = pageY - cb.getY();
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp type: "markerEvent:" + type,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp originEvent: e,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp pageX:pageX,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp pageY:pageY,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp categoryItem:items.category,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp node:markerNode,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp series:series,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp index:index,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp seriesIndex:seriesIndex
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: ["miscellaneous", "expenses", "revenue"],
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp //Simulate a mousemove event to test to ensure that the correct series data is associated with
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp //the correct markers.
562568c870b1109f8b462727a15d214d71d892afTripp testDefault: function()
562568c870b1109f8b462727a15d214d71d892afTripp var currentSeries,
562568c870b1109f8b462727a15d214d71d892afTripp categoryKey,
562568c870b1109f8b462727a15d214d71d892afTripp categoryDisplayName,
562568c870b1109f8b462727a15d214d71d892afTripp seriesDisplayName,
562568c870b1109f8b462727a15d214d71d892afTripp categoryValue,
562568c870b1109f8b462727a15d214d71d892afTripp seriesValue,
562568c870b1109f8b462727a15d214d71d892afTripp markerData,
562568c870b1109f8b462727a15d214d71d892afTripp //determine category and series axes by direction of chart
562568c870b1109f8b462727a15d214d71d892afTripp direction = this.chart.get("direction"),
562568c870b1109f8b462727a15d214d71d892afTripp categoryAxis = direction == "horizontal" ? "x" : "y",
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp seriesAxis = direction == "horizontal" ? "y" : "x",
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp markerWidth,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp markerHeight;
562568c870b1109f8b462727a15d214d71d892afTripp categoryKey = currentSeries.get(categoryAxis + "Key");
562568c870b1109f8b462727a15d214d71d892afTripp categoryDisplayName = currentSeries.get(categoryAxis + "DisplayName");
562568c870b1109f8b462727a15d214d71d892afTripp seriesDisplayName = currentSeries.get(seriesAxis + "DisplayName");
562568c870b1109f8b462727a15d214d71d892afTripp marker = currentSeries.get("markers")[i];
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp markerWidth = marker.get("width");
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp markerHeight = marker.get("height");
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp markerXY = marker.getXY();
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp clientX: markerXY[0] + markerWidth/2,
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp clientY: markerXY[1] + markerHeight/2
562568c870b1109f8b462727a15d214d71d892afTripp categoryValue = this.chart.get("dataProvider")[markerData.index][categoryKey];
562568c870b1109f8b462727a15d214d71d892afTripp seriesValue = this.chart.get("dataProvider")[markerData.index][seriesKey];
562568c870b1109f8b462727a15d214d71d892afTripp Y.assert(markerData.categoryItem.displayName == categoryDisplayName);
562568c870b1109f8b462727a15d214d71d892afTripp Y.assert(markerData.valueItem.displayName == seriesDisplayName);
562568c870b1109f8b462727a15d214d71d892afTripp Y.assert(markerData.categoryItem.value == categoryValue);
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp Y.assert(markerData.pageX === markerData.originEvent.pageX);
4f6209ded4da421d5e804d9b6740c640e801b0aaTripp Y.assert(markerData.pageY === markerData.originEvent.pageY);
562568c870b1109f8b462727a15d214d71d892afTripp Y.ChartMarkerEventTestCase = ChartMarkerEventTestCase;
562568c870b1109f8b462727a15d214d71d892afTripp var DataProviderWithZeros = [
562568c870b1109f8b462727a15d214d71d892afTripp {category:"1/1/2010", miscellaneous:1000, expenses:0, revenue:2200},
562568c870b1109f8b462727a15d214d71d892afTripp {category:"2/1/2010", miscellaneous:0, expenses:0, revenue:100},
562568c870b1109f8b462727a15d214d71d892afTripp {category:"3/1/2010", miscellaneous:0, expenses:0, revenue:1500},
562568c870b1109f8b462727a15d214d71d892afTripp {category:"4/1/2010", miscellaneous:0, expenses:500, revenue:2800},
562568c870b1109f8b462727a15d214d71d892afTripp {category:"5/1/2010", miscellaneous:0, expenses:0, revenue:2650},
562568c870b1109f8b462727a15d214d71d892afTripp {category:"6/1/2010", miscellaneous:0, expenses:0, revenue:1200}
562568c870b1109f8b462727a15d214d71d892afTripp SeriesKeys = ["miscellaneous", "expenses", "revenue"],
562568c870b1109f8b462727a15d214d71d892afTripp DataProviderWithNull = [
562568c870b1109f8b462727a15d214d71d892afTripp {category:"1/1/2010", miscellaneous:1000, expenses:null, revenue:2200},
562568c870b1109f8b462727a15d214d71d892afTripp DataProvider,
562568c870b1109f8b462727a15d214d71d892afTripp suite = new Y.Test.Suite("Chart Series Tests"),
562568c870b1109f8b462727a15d214d71d892afTripp zeroValueColumnMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "column",
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithZeros,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp zeroValueBarMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "bar",
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithZeros,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp zeroValueStackedColumnMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "column",
562568c870b1109f8b462727a15d214d71d892afTripp stacked: true,
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithZeros,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp zeroValueStackedBarMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "bar",
562568c870b1109f8b462727a15d214d71d892afTripp stacked: true,
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithZeros,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp nullValueColumnMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "column",
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithNull,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp nullValueBarMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "bar",
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithNull,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp nullValueStackedColumnMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "column",
562568c870b1109f8b462727a15d214d71d892afTripp stacked: true,
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithNull,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp nullValueStackedBarMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp type: "bar",
562568c870b1109f8b462727a15d214d71d892afTripp stacked: true,
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithNull,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp zeroValueComboMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithZeros,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover"),
562568c870b1109f8b462727a15d214d71d892afTripp nullValueComboMouseOverTests = new Y.ChartMarkerEventTestCase({
562568c870b1109f8b462727a15d214d71d892afTripp render: "#mychart",
562568c870b1109f8b462727a15d214d71d892afTripp dataProvider: DataProviderWithNull,
562568c870b1109f8b462727a15d214d71d892afTripp seriesKeys: SeriesKeys
562568c870b1109f8b462727a15d214d71d892afTripp }, "mouseover");
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(zeroValueColumnMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(zeroValueBarMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(zeroValueStackedColumnMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(zeroValueStackedBarMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(nullValueColumnMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(nullValueBarMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(nullValueStackedColumnMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(nullValueStackedBarMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(zeroValueComboMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp suite.add(nullValueComboMouseOverTests);
562568c870b1109f8b462727a15d214d71d892afTripp //return it
562568c870b1109f8b462727a15d214d71d892afTripp return suite;
562568c870b1109f8b462727a15d214d71d892afTripp var r = new Y.Console({
562568c870b1109f8b462727a15d214d71d892afTripp verbose : true,
562568c870b1109f8b462727a15d214d71d892afTripp newestOnTop : false
562568c870b1109f8b462727a15d214d71d892afTripp //add to the testrunner and run