e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<html>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp <head>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp <meta http-equiv="content-type" content="text/html; charset=utf-8">
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp <style>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp /*Supplemental: CSS for the YUI distribution*/
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp #custom-doc { width: 95%; min-width: 950px; }
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp #pagetitle {background-image: url(/assets/bg_hd.gif);}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp #mychart {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp padding:10px 10px 10px 10px;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp }
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp </style>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp <link rel="stylesheet" type="text/css" href="/build/cssfonts/fonts-min.css">
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp </head>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<body class="yui3-skin-sam">
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<h3>Unit Tests</h3>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<div id="mychart"></div>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<script type="text/javascript" src="/build/yui/yui-min.js"></script>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp<script>
562568c870b1109f8b462727a15d214d71d892afTrippYUI({
562568c870b1109f8b462727a15d214d71d892afTripp allowRollup: false,
562568c870b1109f8b462727a15d214d71d892afTripp filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
562568c870b1109f8b462727a15d214d71d892afTripp}).use('charts', 'test', 'console', function (Y)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp{
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.namespace("example.test");
612b06cc570a4ff121dd3a165902c88fae294358Tripp
b4da4dbaec018452f750d5ffc00c96e4eba47e9aTripp var suite = new Y.Test.Suite("Y.Charts"),
b4da4dbaec018452f750d5ffc00c96e4eba47e9aTripp
b4da4dbaec018452f750d5ffc00c96e4eba47e9aTripp ChartTests = new Y.Test.Case({
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp name: "Chart Tests",
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp setUp: function() {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var myDataValues = [
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {category:"5/1/2010", values:2000, expenses:3700, revenue:2200},
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {category:"5/2/2010", values:50, expenses:9100, revenue:100},
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {category:"5/3/2010", values:400, expenses:1100, revenue:1500},
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {category:"5/4/2010", values:200, expenses:1900, revenue:2800},
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {category:"5/5/2010", values:5000, expenses:5000, revenue:2650}
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp ];
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp var mychart = new Y.Chart({width:400, height:300, dataProvider:myDataValues});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp mychart.render("#mychart");
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp this.chart = mychart;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp tearDown: function() {
0cf44740ed7838d2b3eea6d651418d706df34ff6Tripp this.chart.destroy(true);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test to ensure that all items in the series collection are of the correct type.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetSeriesByIndex: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var series = this.chart.getSeries(0),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert = Y.Assert;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.CartesianSeries, series);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test to ensure that all items in the series collection are of the correct type.
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetSeriesByKey: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var series = this.chart.getSeries("revenue"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert = Y.Assert;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.CartesianSeries, series);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test to ensure the series axes are numeric and the category axis is of type category
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetAxesByKey: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var category = this.chart.getAxisByKey("category"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp values = this.chart.getAxisByKey("values"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert = Y.Assert;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.CategoryAxis, category);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.NumericAxis, values);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test to ensure that getCategoryAxis returns a category axis
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetCategoryAxis: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var category = this.chart.get("categoryAxis"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert = Y.Assert;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.CategoryAxis, category);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test that the graph attribute is of type Graph
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetGraph: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.Assert.isInstanceOf(Y.Graph, this.chart.get("graph"));
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //Test to ensure that the axes hash contains AxisRenderer instances
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp testGetAxes: function()
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var assert = Y.Assert,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp axes = this.chart.get("axes"),
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp i;
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp for(i in axes)
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp if(axes.hasOwnProperty(i))
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp {
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp assert.isInstanceOf(Y.Axis, axes[i]);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp }
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp }
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp },
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp //Test to ensure that default series keys are correct
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp testGetSeriesKeys: function()
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp var assert = Y.Assert,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp YArray = Y.Array,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp selectedIndex,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp testKeys = ['values', 'expenses', 'revenue'],
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp newArray = [],
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp actualKeys = this.chart.get("seriesKeys"),
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp i = 0,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp len = testKeys.length;
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp assert.areEqual(actualKeys.length, testKeys.length, "Actual seriesKeys array is not the correct length.");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp for(; i < len; ++i)
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp selectedIndex = YArray.indexOf(actualKeys, testKeys[i]);
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp assert.isNotNull(selectedIndex + 1, "The seriesKeys array should contain the following key: " + testKeys[i] + ".");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp if(selectedIndex > -1)
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp newArray.push(actualKeys[selectedIndex]);
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp else
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp throw new Error("The actual seriesKeys array should but does not contain " + testKeys[i] + ".");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp assert.areEqual(newArray.length, actualKeys.length, "The seriesKeys array has more keys than it should.");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp },
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp //Test to ensure default attributes are correct
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp testGetDefaultAttributes: function()
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp var assert = Y.Assert,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp attrs = {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp direction: "horizontal",
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp type: "combo",
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp valueAxisName: "values",
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp categoryAxisName: "category",
9fe78cb6e8c09c2e8e2a4628772453f0b9c1bcb7Tripp categoryKey: "category",
9fe78cb6e8c09c2e8e2a4628772453f0b9c1bcb7Tripp categoryType: "category",
9fe78cb6e8c09c2e8e2a4628772453f0b9c1bcb7Tripp interactionType: "marker"
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp },
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp chart = this.chart,
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp i;
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp for(i in attrs)
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp if(attrs.hasOwnProperty(i))
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp {
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp assert.areEqual(chart.get(i), attrs[i], "The attribute " + i + " should equal " + attrs[i] + ".");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp }
405aac5878aad69932e8149f2c47f600721bb1cfSatyen Desai });
612b06cc570a4ff121dd3a165902c88fae294358Tripp
2283e3a241de1db1aaba484b89c8aadd89446b36Tripp suite.add(ChartTests);
612b06cc570a4ff121dd3a165902c88fae294358Tripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //create the console
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp var r = new Y.Console({
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp newestOnTop : false,
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp style: 'block' // to anchor in the example content
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp });
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp r.render('#testLogger');
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp //run the tests
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp Y.Test.Runner.setName("Y.Charts");
82d0cf8c731b23f6a2fbb31e3e696e629444363eTripp Y.Test.Runner.add(suite);
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp Y.Test.Runner.run();
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp});
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp</script>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp</body>
e393eced613f9b4a5fb6bdd461d0e0bf5064d5ecTripp</html>