YTestWrapAfter.js revision 33d85edf47749fa345d7b636b9b4b9d0d0386f44
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Test = YUITest;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Object.each(YUITest, function(item, name) {
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass var name = name.replace('Test', '');
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass Y.Test[name] = item;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass});
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Assert = YUITest.Assert;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Assert.Error = Y.Test.AssertionError;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Assert.ComparisonFailure = Y.Test.ComparisonFailure;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Assert.UnexpectedValue = Y.Test.UnexpectedValue;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.Mock = Y.Test.Mock;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.ObjectAssert = Y.Test.ObjectAssert;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.ArrayAssert = Y.Test.ArrayAssert;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.DateAssert = Y.Test.DateAssert;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass/**
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass * Asserts that a given condition is true. If not, then a Y.Assert.Error object is thrown
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass * and the test fails.
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @method assert
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @param {Boolean} condition The condition to test.
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @param {String} message The message to display if the assertion fails.
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @for YUI
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @static
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass */
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.assert = function(condition, message){
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass Y.Assert._increment();
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass if (!condition){
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass throw new Y.Assert.Error(Y.Assert._formatMessage(message, "Assertion failed."));
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass }
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass};
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass/**
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * Forces an assertion error to occur. Shortcut for Y.Assert.fail().
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @method fail
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @param {String} message (Optional) The message to display with the failure.
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @for YUI
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass * @static
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass */
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav GlassY.fail = Y.Assert.fail;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glassvar logEvent = function(event) {
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass //data variables
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass var message = "";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass var messageType = "";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass switch(event.type){
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass case this.BEGIN_EVENT:
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass message = "Testing began at " + (new Date()).toString() + ".";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass messageType = "info";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass break;
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass case this.COMPLETE_EVENT:
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass message = Y.substitute("Testing completed at " +
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass (new Date()).toString() + ".\n" +
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass "Passed:{passed} Failed:{failed} " +
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass "Total:{total} ({ignored} ignored)",
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass event.results);
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass messageType = "info";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass break;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass case this.TEST_FAIL_EVENT:
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass message = event.testName + ": failed.\n" + event.error.getMessage();
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass messageType = "fail";
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass break;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass case this.TEST_IGNORE_EVENT:
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass message = event.testName + ": ignored.";
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass messageType = "ignore";
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass break;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass case this.TEST_PASS_EVENT:
aa2ac226ad6e45232f8416eecc99d2165ce74d03Dav Glass message = event.testName + ": passed.";
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass messageType = "pass";
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass break;
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass case this.TEST_SUITE_BEGIN_EVENT:
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass message = "Test suite \"" + event.testSuite.name + "\" started.";
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass messageType = "info";
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass break;
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass
0523d0a8daaa474f0214203f8cbb0bc4a88e2964Dav Glass case this.TEST_SUITE_COMPLETE_EVENT:
5432371fbb6d790a76159481f0dd16e806812153Dav Glass message = Y.substitute("Test suite \"" +
5432371fbb6d790a76159481f0dd16e806812153Dav Glass event.testSuite.name + "\" completed" + ".\n" +
216633e2ad28e9568a902f3763c3bef052c5f908Dav Glass "Passed:{passed} Failed:{failed} " +
aa2ac226ad6e45232f8416eecc99d2165ce74d03Dav Glass "Total:{total} ({ignored} ignored)",
5432371fbb6d790a76159481f0dd16e806812153Dav Glass event.results);
aa2ac226ad6e45232f8416eecc99d2165ce74d03Dav Glass messageType = "info";
5432371fbb6d790a76159481f0dd16e806812153Dav Glass break;
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass
5432371fbb6d790a76159481f0dd16e806812153Dav Glass case this.TEST_CASE_BEGIN_EVENT:
5432371fbb6d790a76159481f0dd16e806812153Dav Glass message = "Test case \"" + event.testCase.name + "\" started.";
5432371fbb6d790a76159481f0dd16e806812153Dav Glass messageType = "info";
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass break;
5432371fbb6d790a76159481f0dd16e806812153Dav Glass
5432371fbb6d790a76159481f0dd16e806812153Dav Glass case this.TEST_CASE_COMPLETE_EVENT:
5432371fbb6d790a76159481f0dd16e806812153Dav Glass message = Y.substitute("Test case \"" +
5432371fbb6d790a76159481f0dd16e806812153Dav Glass event.testCase.name + "\" completed.\n" +
5432371fbb6d790a76159481f0dd16e806812153Dav Glass "Passed:{passed} Failed:{failed} " +
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass "Total:{total} ({ignored} ignored)",
162527ab925c04aa8d6bbf78d0484a133a8076f1Dav Glass event.results);
5432371fbb6d790a76159481f0dd16e806812153Dav Glass messageType = "info";
5432371fbb6d790a76159481f0dd16e806812153Dav Glass break;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass default:
aa2ac226ad6e45232f8416eecc99d2165ce74d03Dav Glass message = "Unexpected event " + event.type;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass message = "info";
5432371fbb6d790a76159481f0dd16e806812153Dav Glass }
5432371fbb6d790a76159481f0dd16e806812153Dav Glass
5432371fbb6d790a76159481f0dd16e806812153Dav Glass Y.log(message, messageType, "TestRunner");
5432371fbb6d790a76159481f0dd16e806812153Dav Glass}
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glassvar i, name;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glassfor (i in Y.Test.Runner) {
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass name = Y.Test.Runner[i];
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass if (i.indexOf('_EVENT') > -1) {
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass Y.Test.Runner.subscribe(name, logEvent);
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass }
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass};
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav GlassY.Test.Runner.ignoreEmpty = true;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav GlassY.Test.Runner.on = Y.Test.Runner.attach;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glassif (Y.config.win) {
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass Y.config.win.YUITest = YUITest;
f7aa62ea2e8cf43fbb9d83db5060db540ff1893fDav Glass}
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass
d2a5a45ff58ab15a8ee0339edcd03f0243373d59Dav Glass