diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /browser/base/content/test/general/browser_remoteWebNavigation_postdata.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'browser/base/content/test/general/browser_remoteWebNavigation_postdata.js')
-rw-r--r-- | browser/base/content/test/general/browser_remoteWebNavigation_postdata.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_remoteWebNavigation_postdata.js b/browser/base/content/test/general/browser_remoteWebNavigation_postdata.js new file mode 100644 index 000000000..451323f50 --- /dev/null +++ b/browser/base/content/test/general/browser_remoteWebNavigation_postdata.js @@ -0,0 +1,50 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +Cu.import("resource://gre/modules/BrowserUtils.jsm"); +Cu.import("resource://gre/modules/Promise.jsm"); + +function makeInputStream(aString) { + let stream = Cc["@mozilla.org/io/string-input-stream;1"] + .createInstance(Ci.nsIStringInputStream); + stream.data = aString; + return stream; // XPConnect will QI this to nsIInputStream for us. +} + +add_task(function* test_remoteWebNavigation_postdata() { + let obj = {}; + Cu.import("resource://testing-common/httpd.js", obj); + Cu.import("resource://services-common/utils.js", obj); + + let server = new obj.HttpServer(); + server.start(-1); + + let loadDeferred = Promise.defer(); + + server.registerPathHandler("/test", (request, response) => { + let body = obj.CommonUtils.readBytesFromInputStream(request.bodyInputStream); + is(body, "success", "request body is correct"); + is(request.method, "POST", "request was a post"); + response.write("Received from POST: " + body); + loadDeferred.resolve(); + }); + + let i = server.identity; + let path = i.primaryScheme + "://" + i.primaryHost + ":" + i.primaryPort + "/test"; + + let postdata = + "Content-Length: 7\r\n" + + "Content-Type: application/x-www-form-urlencoded\r\n" + + "\r\n" + + "success"; + + openUILinkIn(path, "tab", null, makeInputStream(postdata)); + + yield loadDeferred.promise; + yield BrowserTestUtils.removeTab(gBrowser.selectedTab); + + let serverStoppedDeferred = Promise.defer(); + server.stop(function() { serverStoppedDeferred.resolve(); }); + yield serverStoppedDeferred.promise; +}); |