[jboss-svn-commits] JBL Code SVN: r6020 - in labs/jbosslabs/trunk/portal-extensions/portal-dnd: dndRenderer.war/js/connection test
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 30 10:45:32 EDT 2006
Author: szimano
Date: 2006-08-30 10:45:30 -0400 (Wed, 30 Aug 2006)
New Revision: 6020
Modified:
labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/connection/connection.js
labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/ajaxAsserts.js
labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/testPortletDrop.html
Log:
ajax tests JBLAB-728
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/connection/connection.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/connection/connection.js 2006-08-30 14:19:01 UTC (rev 6019)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/dndRenderer.war/js/connection/connection.js 2006-08-30 14:45:30 UTC (rev 6020)
@@ -270,6 +270,64 @@
},
/**
+ * Method for initiating an synchronous request via the XHR object.
+ * @public
+ * @param {string} method HTTP transaction method
+ * @param {string} uri Fully qualified path of resource
+ * @param callback User-defined callback function or object
+ * @param {string} postData POST body
+ * @return {object} Returns the connection object
+ */
+ syncRequest:function(method, uri, callback, postData)
+ {
+ var o = this.getConnectionObject();
+
+ if(!o){
+ return null;
+ }
+ else{
+ if(this._isFormSubmit){
+ if(this._isFileUpload){
+ this.uploadFile(o.tId, callback, uri);
+ this.releaseObject(o);
+ return;
+ }
+
+ //If the specified HTTP method is GET, setForm() will return an
+ //encoded string that is concatenated to the uri to
+ //create a querystring.
+ if(method == 'GET'){
+ uri += "?" + this._sFormData;
+ }
+ else if(method == 'POST'){
+ postData = this._sFormData;
+ }
+ this._sFormData = '';
+ }
+
+ o.conn.open(method, uri, false);
+
+ if(this._isFormSubmit || (postData && this._default_post_header)){
+ this.initHeader('Content-Type','application/x-www-form-urlencoded');
+ if(this._isFormSubmit){
+ this._isFormSubmit = false;
+ }
+ }
+
+ //Verify whether the transaction has any user-defined HTTP headers
+ //and set them.
+ if(this._has_http_headers){
+ this.setHeader(o);
+ }
+
+ this.handleReadyState(o, callback);
+ postData?o.conn.send(postData):o.conn.send(null);
+
+ return o;
+ }
+ },
+
+ /**
* This method serves as a timer that polls the XHR object's readyState
* property during a transaction, instead of binding a callback to the
* onreadystatechange event. Upon readyState 4, handleTransactionResponse
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/ajaxAsserts.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/ajaxAsserts.js 2006-08-30 14:19:01 UTC (rev 6019)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/ajaxAsserts.js 2006-08-30 14:45:30 UTC (rev 6020)
@@ -2,19 +2,7 @@
var ajaxFailComment;
var ajaxFailed = false;
-var ajaxProcessed = false;
-
-function ajaxStart() {
- ajaxProcessed = false;
-}
-
-function ajaxEnd() {
- ajaxProcessed = true;
- inform("Ending ajax");
-}
-
function invokeTestAjax(postData, handleSuccess, handleFailure) {
- ajaxStart();
var callback =
{
@@ -23,41 +11,20 @@
argument: []
};
- var request = YAHOO.util.Connect.asyncRequest('POST', host+ajaxURI, callback, postData);
+ var request = YAHOO.util.Connect.syncRequest('POST', host+ajaxURI, callback, postData);
-
- while (!isAjaxProcessed()) {
- // wait till call is processed
- //waitForAjax();
- inform(isAjaxProcessed());
- }
-
handleAjaxError();
}
-function waitForAjax()
-{
- //wait half second
- var millis = 500;
-
- date = new Date();
- var curDate = null;
-
- do { var curDate = new Date(); }
- while(curDate - date < millis);
-
-}
-
function isAjaxProcessed() {
return ajaxProcessed;
}
function handleAjaxError() {
- inform("handle error "+ajaxFailed);
if(ajaxFailed) {
ajaxFailed = false;
- throw new JSUnitException(ajaxFailComment,ajaxFailMsg);
+ _assert(ajaxFailComment, false, ajaxFailMsg);
}
}
@@ -69,74 +36,183 @@
}
}
-function _trueTypeOfAjax(something) {
- var result = typeof something;
- try {
- switch (result) {
- case 'string':
- case 'boolean':
- case 'number':
+function failAjax(failureMessage) {
+ _assertAjax("Call fail()", false, failureMessage);
+}
+
+
+function assertAjax() {
+ _validateArguments(1, arguments);
+ var booleanValue = nonCommentArg(1, 1, arguments);
+
+ if (typeof(booleanValue) != 'boolean')
+ error('Bad argument to assert(boolean)');
+
+ _assertAjax(commentArg(1, arguments), booleanValue === true, 'Call to assert(boolean) with false');
+}
+
+function assertTrueAjax() {
+ _validateArguments(1, arguments);
+ var booleanValue = nonCommentArg(1, 1, arguments);
+
+ if (typeof(booleanValue) != 'boolean')
+ error('Bad argument to assertTrue(boolean)');
+
+ _assertAjax(commentArg(1, arguments), booleanValue === true, 'Call to assertTrue(boolean) with false');
+}
+
+function assertFalseAjax() {
+ _validateArguments(1, arguments);
+ var booleanValue = nonCommentArg(1, 1, arguments);
+
+ if (typeof(booleanValue) != 'boolean')
+ error('Bad argument to assertFalse(boolean)');
+
+ _assertAjax(commentArg(1, arguments), booleanValue === false, 'Call to assertFalse(boolean) with true');
+}
+
+function assertEqualsAjax() {
+ _validateArguments(2, arguments);
+ var var1 = nonCommentArg(1, 2, arguments);
+ var var2 = nonCommentArg(2, 2, arguments);
+ _assertAjax(commentArg(2, arguments), var1 === var2, 'Expected ' + _displayStringForValue(var1) + ' but was ' + _displayStringForValue(var2));
+}
+
+function assertNotEqualsAjax() {
+ _validateArguments(2, arguments);
+ var var1 = nonCommentArg(1, 2, arguments);
+ var var2 = nonCommentArg(2, 2, arguments);
+ _assertAjax(commentArg(2, arguments), var1 !== var2, 'Expected not to be ' + _displayStringForValue(var2));
+}
+
+function assertNullAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), aVar === null, 'Expected ' + _displayStringForValue(null) + ' but was ' + _displayStringForValue(aVar));
+}
+
+function assertNotNullAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), aVar !== null, 'Expected not to be ' + _displayStringForValue(null));
+}
+
+function assertUndefinedAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), aVar === top.JSUNIT_UNDEFINED_VALUE, 'Expected ' + _displayStringForValue(top.JSUNIT_UNDEFINED_VALUE) + ' but was ' + _displayStringForValue(aVar));
+}
+
+function assertNotUndefinedAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), aVar !== top.JSUNIT_UNDEFINED_VALUE, 'Expected not to be ' + _displayStringForValue(top.JSUNIT_UNDEFINED_VALUE));
+}
+
+function assertNaNAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), isNaN(aVar), 'Expected NaN');
+}
+
+function assertNotNaNAjax() {
+ _validateArguments(1, arguments);
+ var aVar = nonCommentArg(1, 1, arguments);
+ _assertAjax(commentArg(1, arguments), !isNaN(aVar), 'Expected not NaN');
+}
+
+function assertObjectEqualsAjax() {
+ _validateArguments(2, arguments);
+ var var1 = nonCommentArg(1, 2, arguments);
+ var var2 = nonCommentArg(2, 2, arguments);
+ var type;
+ var msg = commentArg(2, arguments)?commentArg(2, arguments):'';
+ var isSame = (var1 === var2);
+ //shortpath for references to same object
+ var isEqual = ( (type = _trueTypeOf(var1)) == _trueTypeOf(var2) );
+ if (isEqual && !isSame) {
+ switch (type) {
+ case 'String':
+ case 'Number':
+ isEqual = (var1 == var2);
break;
- case 'object':
- case 'function':
- switch (something.constructor)
- {
- case String:
- result = 'String';
- break;
- case Boolean:
- result = 'Boolean';
- break;
- case Number:
- result = 'Number';
- break;
- case Array:
- result = 'Array';
- break;
- case RegExp:
- result = 'RegExp';
- break;
- case Function:
- result = 'Function';
- break;
- default:
- var m = something.constructor.toString().match(/function\s*([^( ]+)\(/);
- if (m)
- result = m[1];
- else
- break;
- }
+ case 'Boolean':
+ case 'Date':
+ isEqual = (var1 === var2);
break;
+ case 'RegExp':
+ case 'Function':
+ isEqual = (var1.toString() === var2.toString());
+ break;
+ default: //Object | Array
+ var i;
+ if (isEqual = (var1.length === var2.length))
+ for (i in var1)
+ assertObjectEqualsAjax(msg + ' found nested ' + type + '@' + i + '\n', var1[i], var2[i]);
}
+ _assertAjax(msg, isEqual, 'Expected ' + _displayStringForValue(var1) + ' but was ' + _displayStringForValue(var2));
}
- finally {
- result = result.substr(0, 1).toUpperCase() + result.substr(1);
- return result;
- }
}
-function _displayStringForValueAjax(aVar) {
- var result = '<' + aVar + '>';
- if (!(aVar === null || aVar === top.JSUNIT_UNDEFINED_VALUE)) {
- result += ' (' + _trueTypeOfAjax(aVar) + ')';
- }
- return result;
+assertArrayEquals = assertObjectEquals;
+
+function assertEvaluatesToTrueAjax() {
+ _validateArguments(1, arguments);
+ var value = nonCommentArg(1, 1, arguments);
+ if (!value)
+ failAjax(commentArg(1, arguments));
}
-function _validateArgumentsAjax(expectedNumberOfNonCommentArgs, args) {
- if (!( args.length == expectedNumberOfNonCommentArgs ||
- (args.length == expectedNumberOfNonCommentArgs + 1 && typeof(args[0]) == 'string') ))
- error('Incorrect arguments passed to assert function');
+function assertEvaluatesToFalseAjax() {
+ _validateArguments(1, arguments);
+ var value = nonCommentArg(1, 1, arguments);
+ if (value)
+ failAjax(commentArg(1, arguments));
}
-function assertEqualsAjax() {
- _validateArgumentsAjax(2, arguments);
+function assertHTMLEqualsAjax() {
+ _validateArguments(2, arguments);
var var1 = nonCommentArg(1, 2, arguments);
var var2 = nonCommentArg(2, 2, arguments);
- inform("assert " + (var1 === var2));
- _assertAjax(commentArg(2, arguments), var1 === var2, 'Expected ' + _displayStringForValueAjax(var1) + ' but was ' + _displayStringForValueAjax(var2));
+ var var1Standardized = standardizeHTML(var1);
+ var var2Standardized = standardizeHTML(var2);
+
+ _assertAjax(commentArg(2, arguments), var1Standardized === var2Standardized, 'Expected ' + _displayStringForValue(var1Standardized) + ' but was ' + _displayStringForValue(var2Standardized));
}
-function failAjax(failureMessage) {
- _assertAjax("Call fail()", false, failureMessage);
-}
\ No newline at end of file
+function assertHashEqualsAjax() {
+ _validateArguments(2, arguments);
+ var var1 = nonCommentArg(1, 2, arguments);
+ var var2 = nonCommentArg(2, 2, arguments);
+ for (var key in var1) {
+ assertNotUndefinedAjax("Expected hash had key " + key + " that was not found", var2[key]);
+ assertEqualsAjax(
+ "Value for key " + key + " mismatch - expected = " + var1[key] + ", actual = " + var2[key],
+ var1[key], var2[key]
+ );
+ }
+ for (var key in var2) {
+ assertNotUndefinedAjax("Actual hash had key " + key + " that was not expected", var1[key]);
+ }
+}
+
+function assertRoughlyEqualsAjax() {
+ _validateArguments(3, arguments);
+ var expected = nonCommentArg(1, 3, arguments);
+ var actual = nonCommentArg(2, 3, arguments);
+ var tolerance = nonCommentArg(3, 3, arguments);
+ assertTrueAjax(
+ "Expected " + expected + ", but got " + actual + " which was more than " + tolerance + " away",
+ Math.abs(expected - actual) < tolerance
+ );
+}
+
+function assertContainsAjax() {
+ _validateArguments(2, arguments);
+ var contained = nonCommentArg(1, 2, arguments);
+ var container = nonCommentArg(2, 2, arguments);
+ assertTrueAjax(
+ "Expected '" + container + "' to contain '" + contained + "'",
+ container.indexOf(contained) != -1
+ );
+}
Modified: labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/testPortletDrop.html
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/testPortletDrop.html 2006-08-30 14:19:01 UTC (rev 6019)
+++ labs/jbosslabs/trunk/portal-extensions/portal-dnd/test/testPortletDrop.html 2006-08-30 14:45:30 UTC (rev 6020)
@@ -86,14 +86,10 @@
var postdata = "action=TEST_MODE&mode=true";
var handle = function(o) {
- inform("bim");
- assertEqualsAjax("Wrong response", o.responseText, "Test mode ONs");
- ajaxEnd();
+ assertEqualsAjax("Wrong response", o.responseText, "Test mode ON");
}
var error = function(o) {
- inform("bom");
failAjax("Ajax call failed");
- ajaxEnd();
}
invokeTestAjax(postdata, handle, error);
@@ -101,18 +97,29 @@
var postdata2 = "action=TEST_MODE&mode=false";
var handle2 = function(o) {
- assertEqualsAjax("Wrong response", o.responseText, "Test mode OFFs");
- ajaxEnd()
+ assertEqualsAjax("Wrong response", o.responseText, "Test mode OFF");
}
var error2 = function(o) {
failAjax("Ajax call failed");
- ajaxEnd()
}
-
+
invokeTestAjax(postdata2, handle2, error2);
}
+ function testAjaxWrongParamsTestMode() {
+ var postdata = "action=TEST_MODE&mod=true";
+
+ var handle = function(o) {
+ failAjax("TEST MODE should return error");
+ }
+ var error = function(o) {
+ // do nothing - params are wrong - weverything is ok
+ }
+
+ invokeTestAjax(postdata, handle, error);
+ }
+
</script>
</head>
More information about the jboss-svn-commits
mailing list