UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

129 lines (95 loc) 3.11 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.transport.XmlHttp", { extend : qx.dev.unit.TestCase, members : { setUp : function() { this.request = new qx.io.remote.transport.XmlHttp(); this.request.addListener("aborted", this.responseError, this); this.request.addListener("failed", this.responseError, this); this.request.addListener("timeout", this.responseError, this); this.resourceBase = qx.util.AliasManager.getInstance().resolve("qx/test/"); }, tearDown : function() { this.request.dispose(); }, responseError : function(e) { var request = e.getTarget(); var type = e.getType(); qx.event.Timer.once(function() { this.resume(function() { this.fail( "Response error: " + type + " " + request.getStatusCode() + " " + request.getStatusText() ); }, this); }, this); }, getUrl : function(path) { return qx.util.ResourceManager.getInstance().toUri(path); }, isLocal : function() { return window.location.protocol == "file:"; }, needsPHPWarning : function() { this.warn("This test can only be run from a web server with PHP support."); }, testSetHeader : function() { if (this.isLocal()) { this.needsPHPWarning(); return; } this.request.setUrl(this.getUrl("qx/test/xmlhttp/echo_header.php")); this.request.getRequestHeaders()["foo"] = "bar"; this.request.setRequestHeader("juhu", "kinners"); this.request.addListener("completed", function(e) { this.resume(function() { var response = qx.lang.Json.parse(this.request.getResponseText().toLowerCase()); this.assertEquals("kinners", response["juhu"]); this.assertEquals("bar", response["foo"]); }, this); }, this); var that = this; window.setTimeout(function() { that.request.send(); }, 250); this.wait(7500); }, testGetResponseHeader : function() { if (this.isLocal()) { this.needsPHPWarning(); return; } this.request.setUrl(this.getUrl("qx/test/xmlhttp/send_known_header.php")); this.request.addListener("completed", function(e) { this.resume(function() { var juhu = this.request.getResponseHeader("juhu") || this.request.getResponseHeader("Juhu"); this.assertEquals("kinners", juhu); }, this); }, this); var that = this; window.setTimeout(function() { that.request.send(); }, 250); this.wait(7500); } } });