UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

100 lines (80 loc) 2.58 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2007-2008 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Fabian Jakobs (fjakobs) ************************************************************************ */ /* */ /** * * @asset(qx/test/*) */ qx.Class.define("qx.test.io.remote.RequestIframe", { extend : qx.test.io.remote.AbstractRequest, members : { // Overridden _createRequest : function() { var url = this.getUrl("qx/test/xmlhttp/echo_form_request.php"); return new qx.io.remote.Request(url, "GET", "text/plain").set({ fileUpload: true }); }, testAsynchronous : function() { if (this.isLocal()) { this.needsPHPWarning(); return; } var completedCount = 0; for (var i = 0; i < this._requests.length; i++) { var request = this._requests[i], emptyContent; request.setParameter("test", "test" + i); request.addListener("completed", function(e) { completedCount++; // Skip test when response is empty. Occuring seemingly randomly // in IE when many requests are made. // // May be due to timing issue showing under rare and obscure // circumstances (clean cache, build variant, fresh browser window). if (qx.core.Environment.get("engine.name") === "mshtml" && e.getContent() === "" && !emptyContent) { this.warn("Skipping test due to empty content in one of the request's response"); emptyContent = true; return; } if (!emptyContent) { var response = qx.lang.Json.parse(e.getContent()); request = e.getTarget(); this.assertEquals(request.getParameter("test"), response["test"]); } }, this); request.send(); } var that = this; this.wait(5000, function() { that.assertEquals(i, completedCount); }); }, testAsynchronousSingle: function() { var request = this._requests[0]; request.setParameter("test", "affe"); request.addListener("completed", function(e) { var response = qx.lang.Json.parse(e.getContent()); this.assertEquals("affe", response["test"]); }, this); request.send(); } } });