Subversion Repositories Applications.papyrus

Rev

Rev 1987 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
        Copyright (c) 2004-2006, The Dojo Foundation
        All Rights Reserved.

        Licensed under the Academic Free License version 2.1 or above OR the
        modified BSD license. For more information on Dojo licensing, see:

                http://dojotoolkit.org/community/licensing.shtml
*/



dojo.provide("dojo.lang.assert");
dojo.require("dojo.lang.common");
dojo.require("dojo.lang.array");
dojo.require("dojo.lang.type");
dojo.lang.assert = function (booleanValue, message) {
        if (!booleanValue) {
                var errorMessage = "An assert statement failed.\n" + "The method dojo.lang.assert() was called with a 'false' value.\n";
                if (message) {
                        errorMessage += "Here's the assert message:\n" + message + "\n";
                }
                throw new Error(errorMessage);
        }
};
dojo.lang.assertType = function (value, type, keywordParameters) {
        if (dojo.lang.isString(keywordParameters)) {
                dojo.deprecated("dojo.lang.assertType(value, type, \"message\")", "use dojo.lang.assertType(value, type) instead", "0.5");
        }
        if (!dojo.lang.isOfType(value, type, keywordParameters)) {
                if (!dojo.lang.assertType._errorMessage) {
                        dojo.lang.assertType._errorMessage = "Type mismatch: dojo.lang.assertType() failed.";
                }
                dojo.lang.assert(false, dojo.lang.assertType._errorMessage);
        }
};
dojo.lang.assertValidKeywords = function (object, expectedProperties, message) {
        var key;
        if (!message) {
                if (!dojo.lang.assertValidKeywords._errorMessage) {
                        dojo.lang.assertValidKeywords._errorMessage = "In dojo.lang.assertValidKeywords(), found invalid keyword:";
                }
                message = dojo.lang.assertValidKeywords._errorMessage;
        }
        if (dojo.lang.isArray(expectedProperties)) {
                for (key in object) {
                        if (!dojo.lang.inArray(expectedProperties, key)) {
                                dojo.lang.assert(false, message + " " + key);
                        }
                }
        } else {
                for (key in object) {
                        if (!(key in expectedProperties)) {
                                dojo.lang.assert(false, message + " " + key);
                        }
                }
        }
};