blob: e55c86c0553525860a549b86fc5abb9f5d207612 [file] [log] [blame]
/*
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);
}
}
}
};