/*global QUnit:false, module:false, test:false, asyncTest:false, expect:false*/
/*global start:false, stop:false ok:false, equal:false, notEqual:false, deepEqual:false*/
/*global notDeepEqual:false, strictEqual:false, notStrictEqual:false, raises:false*/
(function($) {

  /*
    ======== A Handy Little QUnit Reference ========
    http://docs.jquery.com/QUnit

    Test methods:
      expect(numAssertions)
      stop(increment)
      start(decrement)
    Test assertions:
      ok(value, [message])
      equal(actual, expected, [message])
      notEqual(actual, expected, [message])
      deepEqual(actual, expected, [message])
      notDeepEqual(actual, expected, [message])
      strictEqual(actual, expected, [message])
      notStrictEqual(actual, expected, [message])
      raises(block, [expected], [message])
  */

  function clearBody() {
      var irisGeneratedCode = $("#start_iris").nextAll();
      if (irisGeneratedCode !== undefined) {
          irisGeneratedCode.remove();
      }
  }

  module('Module Event', {
      setup: function() {
          iris.notify("iris-reset");
      },
      teardown: function () {
          clearBody();
      }
  });

  test("Event Test", function () {
      expect(1);

      iris.on("test-event", onEvent);
      iris.notify("test-event");

      iris.off("test-event", onEvent);
      iris.notify("test-event");

  });

  test("Duplicated Event Test", function () {
      expect(1);

      iris.on("duplicated-event", onEvent);
      iris.on("duplicated-event", onEvent);
      iris.on("duplicated-event", onEvent);

      iris.notify("duplicated-event");

  });
  
  test("Off all functions Test", function () {
      expect(3);
      
      iris.on("off-all-functions", onEvent);
      iris.on("off-all-functions", onEvent2);

      iris.notify("off-all-functions"); // +2

      iris.off("off-all-functions");
      
      iris.notify("off-all-functions"); // 0

      iris.on("off-all-functions", onEvent);
      iris.notify("off-all-functions"); // +1
  });
  
  
  function onEvent () {
    window.ok(true, "On event callback");
  }
  
  function onEvent2 () {
    window.ok(true, "On event2 callback");
  }

}(jQuery));
@@ -1173,21 +1173,491 @@
   test(%22
-Event
+Notify An Undefined Event%22, function () %7B%0A      expect(1);%0A%0A      raises(function () %7B%0A          iris.notify(undefined);%0A%0A      %7D,%0A      %22%5Bnotify%5D event name parameter is not defined%22,%0A      %22Thrown an exception when notify an undefined event%22);%0A  %7D);%0A%0A  test(%22Notify An Event Without Callbacks Test%22, function () %7B%0A      expect(1);%0A%0A      iris.notify(%22test-event%22);%0A%0A      window.ok(true, %22No errors when notify a undefined event without callbacks%22);%0A  %7D);%0A%0A  test(%22On & Off
  Test%22, 
@@ -1750,32 +1750,38 @@
 y(%22test-event%22);
+ // +1
 %0A%0A      iris.off
@@ -1833,25 +1833,773 @@
 est-event%22);
-%0A
+ // 0%0A%0A  %7D);%0A%0A  test(%22Manage Multiple Event Types Test%22, function () %7B%0A      expect(8);%0A%0A      iris.on(%22event-type-1%22, onEvent);%0A      iris.notify(%22event-type-1%22); // +1%0A%0A      iris.on(%22event-type-2%22, onEvent);%0A      iris.notify(%22event-type-2%22); // +1%0A%0A      iris.on(%22event-type-1%22, onEvent2);%0A      iris.notify(%22event-type-1%22); // +2%0A%0A      iris.on(%22event-type-2%22, onEvent2);%0A      iris.notify(%22event-type-2%22); // +2%0A%0A      iris.off(%22event-type-1%22, onEvent);%0A      iris.notify(%22event-type-1%22); // +1%0A%0A      iris.off(%22event-type-2%22, onEvent);%0A      iris.notify(%22event-type-2%22); // +1%0A%0A      iris.off(%22event-type-1%22, onEvent2);%0A      iris.notify(%22event-type-1%22); // 0%0A%0A      iris.off(%22event-type-2%22, onEvent2);%0A      iris.notify(%22event-type-2%22); // 0
 %0A  %7D);%0A%0A  te

Create more test cases for events module