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