text: YUI.add('charts-legend-tests', function(Y) {
      var suite = new Y.Test.Suite('charts-legend-tests example test suite'),
          _getClassName = Y.ClassNameManager.getClassName,
          CHART_BOUNDINGBOX = "." + _getClassName("cartesianchartlegend"),
          CHART_CONTENTBOX = "." + _getClassName("cartesianchartlegend-content"),
          CHART_SERIESMARKER = "." + _getClassName("seriesmarker"),
          CHART_TOOLTIP = "." + _getClassName("chart-tooltip"),
          CONFIG = Y.config,
          WINDOW = CONFIG.win,
          DOCUMENT = CONFIG.doc,
          isTouch = ((WINDOW && ("ontouchstart" in WINDOW)) && !(Y.UA.chrome && Y.UA.chrome < 6)),
          isMouse = !isTouch,
          SHOWTOOLTIPEVENT = isTouch ? "tap" : "mouseover",
          HIDETOOLTIPEVENT = isTouch ? "tap" : "mouseout",
          TOTAL_MARKERS = 15,
          ONE = 1;
  
      suite.add(new Y.Test.Case({
          name: "Charts Legend Tests",
  
          dataProvider: [
              {date:"5/1/2010", miscellaneous:2000, expenses:3700, revenue:2200}, 
              {date:"5/2/2010", miscellaneous:50, expenses:9100, revenue:100}, 
              {date:"5/3/2010", miscellaneous:400, expenses:1100, revenue:1500}, 
              {date:"5/4/2010", miscellaneous:200, expenses:1900, revenue:2800}, 
              {date:"5/5/2010", miscellaneous:5000, expenses:5000, revenue:2650} 
          ],
  
          seriesKeys: [
              "miscellaneous",
              "expenses",
              "revenue"
          ],
          
          _should: {
              ignore: {
                  testMouseEvents:  isTouch//,
                //  testTouchEvents: isMouse
              }
          },
  
          testChartLoaded : function()
          {
              var boundingBox = Y.all(CHART_BOUNDINGBOX),
                  contentBox = Y.all(CHART_CONTENTBOX); 
              Y.Assert.areEqual(ONE, boundingBox.size(), "There should be one chart bounding box.");
              Y.Assert.areEqual(ONE, contentBox.size(), "There should be one chart contentBox.");
          },
  
          testSeriesMarkerLoaded : function()
          {
              var seriesMarkers = Y.all(CHART_SERIESMARKER);
              Y.Assert.areEqual(TOTAL_MARKERS, seriesMarkers.size(), "There should be " + TOTAL_MARKERS + " markers.");
          },
  
          testMouseEvents: function()
          {
              var result = null,
                  eventNode = CHART_SERIESMARKER,
                  handleEvent = function(event) 
                  {
                      result = event;
                  },
                  seriesIndex,
                  item,
                  index,
                  id,
                  lastDash,
                  seriesKey,
                  contents,
                  handler = Y.delegate(SHOWTOOLTIPEVENT, Y.bind(handleEvent, this), CHART_CONTENTBOX, eventNode),
                  seriesMarkers = Y.all(CHART_SERIESMARKER),
                  tooltip = Y.all(CHART_TOOLTIP).shift();
              seriesMarkers.each(function(node) {
                  var domNode = node.getDOMNode(), 
                      xy = node.getXY(),
                      x = xy[0] - Y.one('document').get('scrollLeft'),
                      y = xy[1] - Y.one('document').get('scrollTop');
                  Y.Event.simulate(domNode, SHOWTOOLTIPEVENT, {
                      clientX:x,
                      clientY:y
                  });
                  id = result.currentTarget.get("id");
                  lastDash = id.lastIndexOf("_");
                  index = id.substr(lastDash + 1);
                  seriesIndex = id.charAt(lastDash - 1);
                  seriesKey = this.seriesKeys[seriesIndex];
                  item = this.dataProvider[index];
                  contents = Y.Node.create("<div><div>date: " + item.date + "<br>" + seriesKey + ": " + item[seriesKey] + "</div></div>").get("innerHTML");
                  Y.Assert.areEqual(contents, tooltip.get("innerHTML"), "The contents of the tooltip should be " + contents);
                  Y.Event.simulate(domNode, HIDETOOLTIPEVENT);
              }, this);
              /*
          },
  
          testTouchEvents: function()
          {
              var result = null,
                  test = this,
                  timeout = 1000,
                  interval = 10,
                  eventNode = CHART_SERIESMARKER,
                  index,
                  id,
                  item,
                  lastDash,
                  contents,
                  node,
                  seriesMarkers = Y.all(CHART_SERIESMARKER),
                  tooltip = Y.all(CHART_TOOLTIP).shift(),
                  condition = function() {
                      return tooltip.getStyle("visibility") == "visible";
                  },
                  checkAndFireEvent = function(seriesMarkers)
                  {
                      node = seriesMarkers.shift();
                      if(node)
                      {
                          node.simulateGesture("tap", {
                              point: [3, 3],
                              duration: 0
                          }, function() {
                             test.resume(function() {
                                  test.poll(condition, interval, timeout, success, failure);
                              });
                          }); 
                          test.wait();        
                      }
  
                  },
                  success = function() {
                      id = node.get("id");
                      lastDash = id.lastIndexOf("_");
                      index = id.substr(id.lastIndexOf("_") + 1);
                      seriesIndex = id.charAt(lastDash - 1);
                      seriesKey = this.seriesKeys[seriesIndex];
                      item = this.dataProvider[index];
                      contents = Y.Node.create("<div><div>date: " + item.date + "<br>" + seriesKey + ": " + item[seriesKey] + "</div></div>").get("innerHTML");
                      Y.Assert.areEqual(contents, tooltip.get("innerHTML"), "The contents of the tooltip should be " + contents);
                      checkAndFireEvent(seriesMarkers);
                  },
                  failure = function() {
                      Y.Assert.fail("Example does not seem to have executed within " + timeout + " seconds.");
                  };
              checkAndFireEvent(seriesMarkers);
              */
          }
      }));
  
      Y.Test.Runner.add(suite);
  }, '' ,{requires:['classnamemanager', 'event-touch', 'node', 'node-event-simulate']});
  
  