suite("QUnit Assertion Types Tests");
//Tests taken from the QUnit website's examples of each assertion type.

test( "deepEqual test", function() {
  var obj = { foo: "bar" };
  deepEqual( obj, { foo: "bar" }, "Two objects can be the same in value" );
});

test( "equal test", function() {
  equal( 1, "1", "String '1' and number 1 have the same value" );
});

test( "notDeepEqual test", function() {
  var obj = { foo: "bar" };
  notDeepEqual( obj, { foo: "bla" }, "Different object, same key, different value, not equal" );
});

test( "notEqual test", function() {
  notEqual( 1, "2", "String '2' and number 1 don't have the same value" );
});

test( "notStrictEqual test", function() {
  notStrictEqual( 1, "1", "String '1' and number 1 don't have the same value" );
});

test( "ok test", function() {
  ok( true, "true succeeds" );
  ok( "non-empty", "non-empty string succeeds" );
});

test( "strictEqual test", function() {
  strictEqual( 1, 1, "1 and 1 are the same value and type" );
});

test( "throws", function() {
  function CustomError( message ) {
    this.message = message;
  }
  CustomError.prototype.toString = function() {
    return this.message;
  };
  throws(
    function() {
        throw "error"
    },
    "throws with just a message, no expected"
  );
  throws(
    function() {
        throw new CustomError();
    },
    CustomError,
    "raised error is an instance of CustomError"
  );
  throws(
    function() {
        throw new CustomError("some error description");
    },
    /description/,
    "raised error message contains 'description'"
  );
});

suite("Positive tests for expect");
test('expect succeeds', function (){
  expect(3);
  ok(true);
  ok(true);
  ok(true);
});

test('expect succeeds async', function (done){
  expect(2);
  ok(true);
  setTimeout(function (){
    ok(true);
    done();
  }, 20);
});

test('expect succeeds using arguments', 3, function (){
  ok(true);
  ok(true);
  ok(true);
});

test('expect succeeds async using arguments', 2, function (done){
  ok(true);
  setTimeout(function (){
    ok(true);
    done();
  }, 20);
});

suite("Negative tests for expect");
test("run four negative expect() tests in a child process, should be 4 failures", function (done){
  expect(1);
  this.timeout(750);
  var cp = require('child_process');
  var n = cp.fork("./testrunner-child.js", {silent:true});
  n.on('message', function(numFailures) {
    equal(4, numFailures, "There should be 4 failed tests in the child testrunner.");
    done();
  });
  n.send({testfile:"./test/qunit-expect-negative-test.js"});
});

suite("asyncTest method support");
asyncTest( "using asyncTest to start after 100 ms", function() {
  expect( 1 );
  setTimeout(function() {
    ok( true, "Passed and ready to resume!" );
    start();
  }, 100);
});

asyncTest( "using asyncTest with done parameter", function (done){
  expect(1);
  setTimeout(function() {
    ok( true, "Passed and ready to resume!" );
    done();
  }, 100);
});

test("This non asyncTest calls stop() then start() 100 ms later.", function (){
  stop();
  expect(1);
  setTimeout(function (){
    ok(true);
    start();
  }, 100)
});
@@ -994,23 +994,24 @@
 );%0A%0A
-test( %22t
+var testT
 hrows
-%22,
+ =
  fun
@@ -1016,20 +1016,50 @@
 unction(
-) %7B%0A
+assert) %7B%0A  return function() %7B%0A  
   functi
@@ -1085,20 +1085,16 @@
 sage ) %7B
-%0A   
  this.me
@@ -1113,13 +1113,13 @@
 age;
+ %7D
 %0A  
-%7D%0A
   Cu
@@ -1161,20 +1161,16 @@
 tion() %7B
-%0A   
  return 
@@ -1186,24 +1186,27 @@
 age;
-%0A 
  %7D;%0A
-  throws(%0A
+%0A    assert(%0A  
     
@@ -1213,32 +1213,24 @@
 function() %7B
-%0A       
  throw %22erro
@@ -1231,24 +1231,22 @@
  %22error%22
-%0A   
  %7D,%0A
+  
     %22thr
@@ -1283,31 +1283,38 @@
 pected%22%0A
+  
   );%0A
-  throws(%0A
+%0A    assert(%0A  
     func
@@ -1317,32 +1317,24 @@
 function() %7B
-%0A       
  throw new C
@@ -1347,19 +1347,15 @@
 rror
-();%0A   
+;
  %7D,%0A
+  
     
@@ -1367,16 +1367,18 @@
 mError,%0A
+  
     %22rai
@@ -1422,23 +1422,30 @@
 or%22%0A
+  
   );%0A
+%0A
   
-throws(%0A
+  assert(%0A  
     
@@ -1460,16 +1460,8 @@
 () %7B
-%0A       
  thr
@@ -1509,16 +1509,14 @@
 n%22);
-%0A   
  %7D,%0A
+  
     
@@ -1530,16 +1530,18 @@
 ption/,%0A
+  
     %22rai
@@ -1586,14 +1586,105 @@
 n'%22%0A
+  
   );%0A
-%7D
+  %7D%0A%7D%0A%0Atest(%22throws%22, testThrows(global.throws));%0Atest(%22raises%22, testThrows(global.raises)
 );%0A%0A
@@ -3231,12 +3231,13 @@
  %7D, 100)%0A%7D);
+%0A

Add test for "raises".