Author: hqm
Date: 2008-01-23 10:50:26 -0800 (Wed, 23 Jan 2008)
New Revision: 7872
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzDataset.lzs
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzParam.lzs
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/dhtml/LzHTTPLoader.js
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzHTTPLoader.as
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzLoadQueue.as
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/data/HTTPDataSource.java
openlaszlo/branches/wafflecone/test/lfc/data/alldata.lzx
openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders-solo.lzx
openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders.lzx
Log:
Change 20080123-hqm-4 by [EMAIL PROTECTED] on 2008-01-23 09:36:16 EST
in /cygdrive/c/users/hqm/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: updated: preserve url query string with post data requests
New Features:
Bugs Fixed: LPP-5368
Technical Reviewer: pkang
QA Reviewer: ptw
Doc Reviewer:
Documentation:
The URL which is specified as the 'src' attribute of a dataset, such as
<dataset src="http://foo.bar.com/baz.php?myarg=1" />
will be preserved in POST operations, both SOLO and proxied.
All data which is set via the
setQueryString
setQueryParam
setQueryParams
will be stored in a distinct table, and will only be merged with the src url
in the case of a GET request.
For POST requests, the src full URL with its original query string will be sent,
and all other param data will be sent www-form-encoded in the POST body.
Note: raw post data via the "lzpostbody" arg turns out not to work in SOLO mode,
and has never actually fully worked.
Release Notes:
Details:
Tests:
test/lfc/data/alldata.lzx DHTML/SWF
amazon
calendar proxied/solo DHTML/SWF
Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzDataset.lzs
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzDataset.lzs
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzDataset.lzs
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,6 +1,6 @@
/**
*
- * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @topic LFC
@@ -113,6 +113,8 @@
var postbody = null;
+var src = null;
+
/** When true, the server will accept
* encoded responses for this request.
* Encoded responses require more work for the LPS (encoding the
@@ -453,10 +455,7 @@
/**
* Sets the src attribute of the data request.
- * Calling this method will cause any pre-existing query arguments to be
discarded.
- * If a query string is contained in the src argument, it will be used to
- * set the query arguments of the current request.
- * @param String src: A new src for data request.
+ * @param String src: A new src URL for data request.
Need to handle these cases
http:foo.html
@@ -467,12 +466,8 @@
*/
-
function setSrc( src ) {
- var url = new LzURL(src);
- this.querystring = url.query;
- url.query = null;
- this.src = url.toString();
+ this.src = src;
if ( this.autorequest ){
this.doRequest() ;
}
@@ -591,6 +586,38 @@
}
/**
+ Produce a hash table of key-value pairs.
+ In the case of a duplicated key, creates an array of values.
+*/
+static function queryStringToTable ( query ) {
+ var queries = {};
+ var parameters = query.split('&');
+ for (var i in parameters) {
+ var key = parameters[i];
+ var value = '';
+ var n = key.indexOf('=');
+ if (n > 0) {
+ value = unescape(key.substring(n+1));
+ key = key.substring(0, n);
+ }
+ if (key in queries) {
+ var prev = queries[key];
+ if (prev instanceof Array) {
+ prev.push(value);
+ } else {
+ value = [prev, value];
+ queries[key] = value;
+ }
+ } else {
+ queries[key] = value;
+ }
+ }
+ return queries;
+}
+
+
+
+/**
* Does a request immediately using the current values. If autorequest is
true,
* this method is called automatically when values change.
*/
@@ -610,10 +637,21 @@
dreq.status = dreq.READY;
dreq.method = this.querytype;
- // For back compatibility with 'lzpostbody'
+ // If this.querystring is set, use it as the source of param
+ // values. Note, this is independent of the query portion of the
+ // this.src URL.
+ if (this.querystring) {
+ dreq.queryparams = new LzParam(this);
+ dreq.queryparams.addObject(LzParam.parseQueryString(this.querystring));
+ } else {
+ // otherwise, use the this.params value
+ dreq.queryparams = this.params;
+ }
+
+ // Support for 'lzpostbody'
var lzpostbody = null;
- if (this.params) {
- lzpostbody = this.params.getValue('lzpostbody');
+ if (dreq.queryparams) {
+ lzpostbody = dreq.queryparams.getValue('lzpostbody');
}
if (lzpostbody != null) {
dreq.postbody = lzpostbody;
@@ -623,13 +661,6 @@
// TODO [hqm 2007-08] does this interact with 'multirequests' flag?
dreq.queuerequests = this.queuerequests;
-
- dreq.queryparams = this.params;
-
- // TODO [hqm 2007-08] We didn't put 'querystring' in the dataprovider
spec, should
- // it be merged into queryparams somehow?
- dreq.querystring = this.querystring;
-
dreq.requestheaders = this.headers;
dreq.getresponseheaders = this.getresponseheaders;
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,6 +1,6 @@
/**
*
- * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @access public
@@ -121,69 +121,70 @@
}
var qparams = dreq.queryparams;
- var querystring = dreq.querystring;
- // Append query params and query string into single query string
- //Debug.debug('calling doRequest', this);
+ // Convert queryparams table into a URL-encoded query-style string
var sep = '';
- var q = '?';
+ var q = '';
- var lzpostbody = dreq.postbody;
-
-
- if (qparams != null) {
+ // If an explicit post body content arg wasn't supplied, make
+ // a url-form-encoded string from the queryparams data.
+ var postbody = dreq.postbody;
+ if (postbody == null && qparams != null) {
var names = qparams.getNames();
for ( var i in names ){
var name = names[i];
- // Strip out special case key "lzpostbody", it declares a raw
- // string content to post.
- if (!proxied && name == 'lzpostbody') {
- lzpostbody = qparams.getValue(name);
- } else {
- q += sep + name + '=' +
encodeURIComponent(qparams.getValue(name));
- sep = '&';
- }
+ q += sep + name + '=' +
encodeURIComponent(qparams.getValue(name));
+ sep = '&';
}
+ postbody = q;
}
- if (querystring != null && querystring.length > 0) {
- q += sep + querystring;
- }
-
- var url = dreq.src
- if (q == "?") {
- // don't add empty args list
+ var lzurl = new LzURL(dreq.src);
+
+ // For GET requests, merge in params data with URL query
+ if (dreq.method == "GET") {
+ if (lzurl.query != null) {
+ lzurl.query = lzurl.query + "&" + postbody;
} else {
- // if there are already query args in the url, separate them
with a '&'
- if (url.indexOf('?') >= 0) {
- url = url + "&" + q.substring(1);
- } else {
- url = url + q;
- }
+ lzurl.query = postbody;
}
+ postbody = null;
+ }
+ var cachebreak = "__lzbc__="+(new Date()).getTime();
+ // convert url back to string
+ url = lzurl.toString();
+ var url;
if (proxied) {
// TODO [hqm 2007-08-03] make the API for makeProxiedURL take an
explicit host arg,
// so we can set the proxy from user code
- url = tloader.makeProxiedURL(url, dreq.method, "xmldata" ,
headers);
+ url = tloader.makeProxiedURL(url, dreq.method, "xmldata" ,
headers, postbody);
+ // We need to move the proxy string query data to the
+ // postbody, can't leave it in the URL string, it could be
+ // arbitrarily long.
+ var marker = url.indexOf('?');
+ var uquery = url.substring(marker+1, url.length);
+ var url_noquery = url.substring(0,marker);
+ url = url_noquery + '?' + cachebreak;
+ postbody = uquery;
+ //Debug.write("proxied req url: ", url, ', postbody: ',postbody)
} else {
- // break the browser cache by creating an arg with a unique value
+ // break the browser cache by adding a unique string to the url
if (!dreq.clientcacheable) {
- var cachebreak = "__lzbc__="+(new Date()).getTime();
- if (url.indexOf('?') >= 0) {
- url = url + "&" + cachebreak;
+ if (lzurl.query == null) {
+ lzurl.query = cachebreak;
} else {
- url = url + "?" + cachebreak;
+ lzurl.query += ("&" + cachebreak);
}
}
- }
-
+ url = lzurl.toString();
+ }
dreq.status = "loading";
//Debug.write("calling tloader.open", proxied ? "POST" : dreq.method,
url, "dreq.method=", dreq.method);
tloader.open ( proxied ? "POST" : dreq.method, url, /* username */
null, /* password */ null);
- tloader.send (/* content */ lzpostbody);
+ tloader.send (/* content */ postbody);
}
function loadSuccess ( loader, data ) {
@@ -280,17 +281,8 @@
var multirequest = false;
var queuerequests = false;
- // String value for single valued param.
- // queryParams["aKey"] = "oneValue";
- // Array value for a multi-value param
- // queryParams["aKey"] = [ "value1", "value2", "value3" ]
-
var queryparams = null; // : LzParam object
- // TODO [hqm 2007-08] querystring should be merged with query params by
the caller (lzdataset)
- // I think..
- var querystring = ''; // : String
-
var requestheaders = null; // : LzParam object
var getresponsheaders = false;
Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzParam.lzs
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzParam.lzs
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/data/LzParam.lzs
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,6 +1,6 @@
/**
*
- * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @access public
@@ -59,7 +59,7 @@
* Parse a URL query string, returns an object with key-value pairs
* @return Object
*/
-function parseQueryString ( query ) {
+static function parseQueryString ( query ) {
var parameters = query.split('&');
var queries = {};
for (var i in parameters) {
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/dhtml/LzHTTPLoader.js
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/dhtml/LzHTTPLoader.js
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/dhtml/LzHTTPLoader.js
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,7 +1,7 @@
/**
* LzHTTPLoader.js
*
- * @copyright Copyright 2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2007, 2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @topic Kernel
@@ -136,7 +136,7 @@
// @param String url: url, including query args
// @param String reqtype: 'POST' or 'GET'
// @param Object headers: hash table of HTTP request headers
- LzHTTPLoader.prototype.makeProxiedURL = function ( url, reqtype, lzt,
headers) {
+ LzHTTPLoader.prototype.makeProxiedURL = function ( url, reqtype, lzt,
headers, postbody) {
var proxyurl = LzBrowser.getBaseURL( );
var qargs = {
@@ -151,6 +151,12 @@
ccache: this.options.ccache
};
+ //If a postbody string is supplied, pass it to the proxy server as
'lzpostbody' arg.
+ if (postbody != null) {
+ qargs.lzpostbody = postbody;
+ }
+
+
// Set HTTP headers
var hname;
var headerString = "";
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzHTTPLoader.as
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzHTTPLoader.as
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzHTTPLoader.as
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,7 +1,7 @@
/**
* LzHTTPLoader.as
*
- * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @topic Kernel
@@ -169,7 +169,8 @@
// @param String reqtype: 'POST' or 'GET'
// @param String lzt: LPS server Responder type, default is "xmldata"
// @param Object headers: hash table of HTTP request headers
-LzHTTPLoader.prototype.makeProxiedURL = function ( url, reqtype, lzt,
headers) {
+// @param String postbody: optional, post body content
+LzHTTPLoader.prototype.makeProxiedURL = function ( url, reqtype, lzt,
headers, postbody) {
var proxyurl = LzBrowser.getBaseURL( );
var qargs = {
lzt: (lzt != null) ? lzt : "xmldata",
@@ -182,6 +183,11 @@
cache: this.options.cacheable,
ccache: this.options.ccache
};
+
+ //If a postbody string is supplied, pass it to the proxy server as
'lzpostbody' arg.
+ if (postbody != null) {
+ qargs.lzpostbody = postbody;
+ }
// Set HTTP headers
var hname;
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzLoadQueue.as
===================================================================
--- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzLoadQueue.as
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzLoadQueue.as
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,7 +1,7 @@
/**
* LzLoadQueue.as
*
- * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved.
+ * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved.
* Use is subject to license terms.
*
* @topic Kernel
@@ -426,78 +426,99 @@
//
/*
- We need to reparse the query string out of the url, in order to
- set up a LoadVars object with attributes corresponding to the query args.
+ [1] If request is PROXIED, send the URL as given, with query string
stripped off,
+ parsed, and each arg is set as a property on the LoadVar object.
- If request is proxied, just send everything via POST
+ [2] If request is SOLO:
- if SOLO,
- check if loadobj.rawpostbody exists:
- if yes, send XML POST of raw data as TextNode
- else
- send LoadVars POST or GET request with base url
+ [3] If it is a GET request, send URL as given with query string
stripped off,
+ parsed, and each arg is set as a property on the LoadVar object.
+ [4] If it is a POST request, send to URL as given including query
string.
+ take the rawpostbody property from loadobj, parse it, and set as
properties
+ on the LoadVars object. This is as close as we can get to doing a
POST.
+
+ We can't really post an arbitrary raw data string. The best we
could do would
+ be to use XML sendAndLoad with a single XML child text node, but
that still
+ XML-escapes the text, so it isn't really much use.
+
*/
- // We're loading an XML data object.
- // Look for optional CGI query args string
- // We are going to send the data up using LoadVars.sendAndLoad().
- // We fill in this LoadVars object with any query args.
-
var url = loadobj.url;
+ var url_noquery = url;
var lvar = new LoadVars();
- //Fix up URL: [A] strip and parse out query args, add them as
- //properties to LVAR (the LoadVars object)
+ var solo = !loadobj.proxied;
+
var marker = url.indexOf('?');
var uquery = "";
- if (marker != -1) {
- uquery = url.substring(marker+1, url.length);
- url = url.substring(0,marker);
+ // If it's proxied, or a SOLO GET, strip the query args from URL and set
them as
+ // properties on LoadVars obj
+ if (loadobj.proxied || !dopost) {
+ if (marker != -1) {
+ uquery = url.substring(marker+1, url.length);
+ url_noquery = url.substring(0,marker);
- var uitems = LzParam.prototype.parseQueryString(uquery);
- for ( var key in uitems) {
- lvar[key] = uitems[key];
+ var uitems = LzParam.parseQueryString(uquery);
+ for ( var key in uitems) {
+ lvar[key] = uitems[key];
+ }
}
}
// convert base url to absolute path, otherwise Flash is not happy
- var reqstr = LzBrowser.toAbsoluteURL( url, loadobj.secure );
+ var reqstr;
- // request methodcases:
- // PROXIED: always POST to LPS server
- // SOLO: GET, POST, (and lzpostbody special case of POST with raw content)
+ if (solo && dopost) {
+ // For a SOLO POST, request the complete URL including query args
+ reqstr = LzBrowser.toAbsoluteURL( loadobj.url, loadobj.secure );
+ } else {
+ // otherwise, get the url with the query string trimmed off
+ reqstr = LzBrowser.toAbsoluteURL( url_noquery, loadobj.secure );
+ }
+
if (loadobj.proxied) {
+ // PROXY request: proxy parameters have been stored on
+ // rawpostbody, get them out and attach them to the LoadVars
+ // obj, to POST to LPS proxy server.
+
+ var lzpostbody = loadobj.rawpostbody;
+ // Copy the postbody data onto the LoadVars, it will be POST'ed
+ var pdata = LzParam.parseQueryString(lzpostbody);
+ for ( var key in pdata) {
+ lvar[key] = pdata[key];
+ }
+
lvar.sendAndLoad(reqstr , loadobj, "POST" );
} else {
- // get request headers from loader
+ // SOLO request:
+
+ // Set any specified request headers
var header;
var headers = loadobj.loader.requestheaders;
- // SOLO load
- if (dopost) {
+ if (!dopost) {
+ // For a GET request, all query args have been placed on
+ // the lvar object already.
+ for ( header in headers) {
+ lvar.addRequestHeader(header, headers[header]);
+ }
+ //Debug.write("GET", reqstr);
+ lvar.sendAndLoad(reqstr , loadobj, "GET" );
+ } else {
//Debug.write("POST", reqstr);
- var lzpostbody = loadobj.rawpostbody
- if (lzpostbody != null) {
- var xmlraw = new XML();
- var tnode = xmlraw.createTextNode(lzpostbody);
- xmlraw.appendChild(tnode);
- for ( header in headers) {
- xmlraw.addRequestHeader(header, headers[header]);
- }
- xmlraw.sendAndLoad(reqstr, loadobj);
- } else {
- for ( header in headers) {
- lvar.addRequestHeader(header, headers[header]);
- }
- lvar.sendAndLoad(reqstr , loadobj, "POST" );
+ var lzpostbody = loadobj.rawpostbody;
+ // Copy the postbody data onto the LoadVars, it will be POST'ed
+ var pdata = LzParam.parseQueryString(lzpostbody);
+ for ( var key in pdata) {
+ lvar[key] = pdata[key];
}
- } else {
+
for ( header in headers) {
lvar.addRequestHeader(header, headers[header]);
}
- //Debug.write("GET", reqstr);
- lvar.sendAndLoad(reqstr , loadobj, "GET" );
+ //Debug.write("POST", reqstr);
+ lvar.sendAndLoad(reqstr , loadobj , "POST");
}
}
}
Modified:
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/data/HTTPDataSource.java
===================================================================
---
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/data/HTTPDataSource.java
2008-01-23 16:07:11 UTC (rev 7871)
+++
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/data/HTTPDataSource.java
2008-01-23 18:50:26 UTC (rev 7872)
@@ -3,7 +3,7 @@
*
****************************************************************************/
/* J_LZ_COPYRIGHT_BEGIN *******************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* J_LZ_COPYRIGHT_END *********************************************************/
@@ -423,32 +423,31 @@
boolean hasQuery = (query != null && query.length() > 0);
if (isPost) {
- if (hasQuery) {
- final String postbodyparam = "lzpostbody=";
- if (query.startsWith(postbodyparam)) {
- // Get the unescaped query string
- String v =
uri.getQuery().substring(postbodyparam.length());
- ((EntityEnclosingMethod)request).setRequestBody(v);
- } else {
- StringTokenizer st = new StringTokenizer(query, "&");
- while (st.hasMoreTokens()) {
- String it = st.nextToken();
- int i = it.indexOf("=");
- if (i > 0) {
- String n = it.substring(0, i);
- String v = it.substring(i + 1, it.length());
- // POST encodes values during request
- ((PostMethod)request).addParameter(n,
URLDecoder.decode(v, "UTF-8"));
- } else {
- mLogger.warn(
-/* (non-Javadoc)
- * @i18n.test
- * @org-mes="ignoring bad token (missing '=' char) in query string: " + p[0]
- */
- org.openlaszlo.i18n.LaszloMessages.getMessage(
- HTTPDataSource.class.getName(),"051018-429",
new Object[] {it})
-);
- }
+ String postbody = req.getParameter("lzpostbody");
+ // If there is a lzpostbody arg, use it as the POST request
body,
+ // and copy the query arg from the client-supplied URL to the
proxy request URL
+ if (postbody != null) {
+ ((EntityEnclosingMethod)request).setRequestBody(postbody);
+ request.setQueryString(query);
+ } else if (hasQuery) {
+ StringTokenizer st = new StringTokenizer(query, "&");
+ while (st.hasMoreTokens()) {
+ String it = st.nextToken();
+ int i = it.indexOf("=");
+ if (i > 0) {
+ String n = it.substring(0, i);
+ String v = it.substring(i + 1, it.length());
+ // POST encodes values during request
+ ((PostMethod)request).addParameter(n,
URLDecoder.decode(v, "UTF-8"));
+ } else {
+ mLogger.warn(
+ /* (non-Javadoc)
+ * @i18n.test
+ * @org-mes="ignoring bad token (missing '='
char) in query string: " + p[0]
+ */
+ org.openlaszlo.i18n.LaszloMessages.getMessage(
+
HTTPDataSource.class.getName(),"051018-429", new Object[] {it})
+ );
}
}
}
Modified: openlaszlo/branches/wafflecone/test/lfc/data/alldata.lzx
===================================================================
--- openlaszlo/branches/wafflecone/test/lfc/data/alldata.lzx 2008-01-23
16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/test/lfc/data/alldata.lzx 2008-01-23
18:50:26 UTC (rev 7872)
@@ -20,7 +20,7 @@
<include href="testsetheaders-solo.lzx"/>
<include href="testrawpost.lzx"/>
<include href="testput.lzx"/>
- <include href="testrawpost-solo.lzx"/>
+<!-- <include href="testrawpost-solo.lzx"/> -->
<include href="testheaderresponse.lzx"/>
<include href="testclientcachebreaker.lzx"/>
<include href="sendheaders.lzx"/>
@@ -42,7 +42,10 @@
<TestSetHeadersSOLO/>
<TestRawPost/>
<TestPut/>
+<!--
+ This just can't work in Flash 7/8 - the text will always be XML escaped
<TestRawPostSOLO/>
+-->
<TestResponseHeaders/>
<TestClientCacheBreaker/>
@@ -51,6 +54,6 @@
</TestSuite>
</canvas>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
Modified: openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders-solo.lzx
===================================================================
--- openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders-solo.lzx
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders-solo.lzx
2008-01-23 18:50:26 UTC (rev 7872)
@@ -1,30 +1,31 @@
<library>
<include href="lzunit/lzunit.lzx" />
- <dataset name="edata" src="http:echo.jsp" proxied="false"
- getresponseheaders="true"
- timeout="120000"/>
+ <dataset name="edata_solo" src="http:echo.jsp" proxied="false"
+ getresponseheaders="true"
+ timeout="5000"/>
- <class name="TestSetHeadersSOLO" extends="TestCase">
+ <class name="TestSetHeadersSOLO" extends="TestCase" >
<attribute name="dpready" value="false"/>
<attribute name="t2del" value="false"/>
<attribute name="waitcnt" value="0"/>
- <datapointer xpath="edata:/echo" name="dp"
- oninit="Debug.write('sending edata request');
parent.sendit()" />
+ <datapointer xpath="edata_solo:/echo" name="dp"
+ oninit="Debug.write('sending edata_solo request');
parent.sendit()" />
- <handler reference="edata" name="ondata">
- Debug.write('testcase got edata ondata');
+ <handler reference="edata_solo" name="ondata">
+ Debug.write('testcase got edata_solo ondata');
this.dpready = true;
</handler>
<method name="sendit">
- Debug.write("testsetheaders.lzx sending edata");
- edata.setHeader("content-type", "pink-elephants/xml");
- edata.setHeader("my-personal-header", "vanilla/with-chocolate-syrup");
- edata.setHeader("my-other-personal-header", "milk chocolate with
almonds");
- edata.setQueryType("POST");
- edata.doRequest();
+ Debug.write("testsetheaders.lzx sending edata_solo");
+ edata_solo.setHeader("content-type", "pink-elephants/xml");
+ edata_solo.setHeader("my-personal-header",
"vanilla/with-chocolate-syrup");
+ edata_solo.setHeader("my-other-personal-header", "milk chocolate with
almonds");
+ edata_solo.setQueryParam("flash", "has some bugs");
+ edata_solo.setQueryType("POST");
+ edata_solo.doRequest();
</method>
<method name="test1">
@@ -34,7 +35,7 @@
this.t2del = new LzDelegate( this , 'test1' );
}
- if ( this.waitcnt++ > 1000 ){
+ if ( this.waitcnt++ > 100 ){
fail( "testsetheaders: Didn't get async data" );
} else {
LzIdle.callOnIdle( this.t2del );
@@ -57,7 +58,7 @@
</library>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
Modified: openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders.lzx
===================================================================
--- openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders.lzx
2008-01-23 16:07:11 UTC (rev 7871)
+++ openlaszlo/branches/wafflecone/test/lfc/data/testsetheaders.lzx
2008-01-23 18:50:26 UTC (rev 7872)
@@ -21,6 +21,7 @@
<method name="sendit">
Debug.write("testsetheaders.lzx sending edata");
edata.setHeader("content-type", "pink-elephants/xml");
+ edata.setQueryParam("flash8", "has bugs");
edata.setQueryType("POST");
edata.doRequest();
</method>
@@ -55,7 +56,7 @@
</library>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins