You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2007/12/07 15:57:58 UTC

svn commit: r602113 - in /incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax: microjax.js test/assert.js test/microjax-test.html

Author: bdelacretaz
Date: Fri Dec  7 06:57:57 2007
New Revision: 602113

URL: http://svn.apache.org/viewvc?rev=602113&view=rev
Log:
SLING-127, microjax.removeContent method added in microjax.js, with automated test

Modified:
    incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/microjax.js
    incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/assert.js
    incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/microjax-test.html

Modified: incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/microjax.js
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/microjax.js?rev=602113&r1=602112&r2=602113&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/microjax.js (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/microjax.js Fri Dec  7 06:57:57 2007
@@ -60,7 +60,7 @@
 	/**
 	 * HTTP GET XHR Helper
 	 * @param {String} url The URL
-	 * @return The response body
+	 * @return the XHR object, use .responseText for the data
 	 * @type String
 	 */
 	microjax.httpGet = function(url) {
@@ -68,9 +68,9 @@
 	    if (httpcon) {
 			httpcon.open('GET', url, false);
 			httpcon.send(null);
-			return httpcon.responseText;
+			return httpcon;
 	    } else {
-			return "";
+			return null;
 	    }
 	}
 	/**
@@ -131,7 +131,7 @@
 	 * @param {String} path Path into the current workspace
 	 * @param {int} maxlevel maximum depth to traverse to
 	 * @param {Array} filters filter only these properties
-	 * @return An Object tree of content nodes and properties
+	 * @return An Object tree of content nodes and properties, null if not found
 	 * @type Object
 	 */
 	microjax.getContent = function(path, maxlevels) {
@@ -155,7 +155,29 @@
 		// but in tests IE6 tends to cache too much
 		var passThroughCacheParam = "?clock=" + new Date().getTime();
 	    var res=microjax.httpGet(path + passThroughCacheParam + (maxlevels?"&maxlevels="+maxlevels:""));
-	    return microjax.evalString(res);
+	    
+	    if(res.status == 200) {
+	    	return microjax.evalString(res.responseText);
+	    }
+	    return null; 
+	}
+	
+	/** Remove content by path */
+	microjax.removeContent = function(path) {
+		var httpcon = microjax.getXHR();
+		if (httpcon) {
+			var params = "ujax_delete="+path;
+			httpcon.open('POST', microjax.baseurl + microjax.currentPath, false);
+
+			// Send the proper header information along with the request
+			httpcon.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+			httpcon.setRequestHeader("Content-length", params.length);
+			httpcon.setRequestHeader("Connection", "close");
+			httpcon.send(params);
+			return httpcon;
+		} else {
+			return false;
+		}
 	}
 	
 	/** eval str, accepting various object delimiters */
@@ -173,12 +195,15 @@
 	 
 	/** Get "session info" from repository. Mainly answers the question: "Who am I"
 	 *  and "Which workspace am I logged into.
-	 * @return An Object tree containing the session information
+	 * @return An Object tree containing the session information, null if server status <> 200
 	 * @type Object
 	 */
 	microjax.getSessionInfo = function() {
 	    var res=microjax.httpGet(microjax.baseurl+"/microjax:sessionInfo.json");
-	    return microjax.evalString(res);
+	    if(res.status == 200) {
+	    	return microjax.evalString(res.responseText);
+	    }
+	    return null;
 	}
 	
 	/** Replace extension in a path */

Modified: incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/assert.js
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/assert.js?rev=602113&r1=602112&r2=602113&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/assert.js (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/assert.js Fri Dec  7 06:57:57 2007
@@ -38,3 +38,9 @@
     alert("assertNotNull failed: " + message);
   }
 }
+
+function assertNull(message,o) {
+  if(o!=null) {
+    alert("assertNull failed: " + message);
+  }
+}

Modified: incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/microjax-test.html
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/microjax-test.html?rev=602113&r1=602112&r2=602113&view=diff
==============================================================================
--- incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/microjax-test.html (original)
+++ incubator/sling/trunk/microsling/microsling-core/src/main/webapp/microjax/test/microjax-test.html Fri Dec  7 06:57:57 2007
@@ -102,6 +102,20 @@
 	    assert("session.workspace contains 'default'",session.workspace.indexOf('default') >= 0);
 	  }
 	  
+	  function testRemoveContent() {
+		var deletePath = "/microjax-test/testhtml-nodes/delete-" + now;
+	    var c = microjaxPost(deletePath,"title=hello&created=&dummy=&time=" + now);
+	    assert("Expected 200 status for POST",c.status == 200);
+	    
+	    var data = microjax.getContent(deletePath,1);
+	    assertNotNull("data must be found before removeContent",data);
+	    
+	    var d = microjax.removeContent(deletePath);
+	    assert("Expected 200 status for removeContent, got " + d.status,d.status == 200);
+	    data = microjax.getContent(deletePath,1);
+	    assertNull("data should be gone after deletePath",data);
+	  }
+	  
 	  function runTests() {
 	    var out = document.getElementById("output");
 	    out.innerHTML = "Tests are running...";
@@ -109,6 +123,7 @@
 	    testPost();
 	    verifyPostedElement();
 	    testGetSessionInfo();
+	    testRemoveContent();
 	    out.innerHTML = "<b>Done running tests, at " + new Date() + "</b>";
 	  }
 	</script>