gecko-dev/netwerk/test/unit/test_header_Server_Timing.js
Ehsan Akhgari 868c13b5e5 Bug 1547397 - Part 2: Move some xpcshell tests for cookies out of extensions/cookies; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D29115

--HG--
rename : extensions/cookie/test/unit/head_cookies.js => netwerk/test/unit/head_cookies.js
rename : extensions/cookie/test/unit/test_bug526789.js => netwerk/test/unit/test_bug526789.js
rename : extensions/cookie/test/unit/test_bug650522.js => netwerk/test/unit/test_bug650522.js
rename : extensions/cookie/test/unit/test_bug667087.js => netwerk/test/unit/test_bug667087.js
rename : extensions/cookie/test/unit/test_cookies_async_failure.js => netwerk/test/unit/test_cookies_async_failure.js
rename : extensions/cookie/test/unit/test_cookies_persistence.js => netwerk/test/unit/test_cookies_persistence.js
rename : extensions/cookie/test/unit/test_cookies_privatebrowsing.js => netwerk/test/unit/test_cookies_privatebrowsing.js
rename : extensions/cookie/test/unit/test_cookies_profile_close.js => netwerk/test/unit/test_cookies_profile_close.js
rename : extensions/cookie/test/unit/test_cookies_read.js => netwerk/test/unit/test_cookies_read.js
rename : extensions/cookie/test/unit/test_cookies_sync_failure.js => netwerk/test/unit/test_cookies_sync_failure.js
rename : extensions/cookie/test/unit/test_cookies_thirdparty.js => netwerk/test/unit/test_cookies_thirdparty.js
rename : extensions/cookie/test/unit/test_cookies_thirdparty_nonsecure_session.js => netwerk/test/unit/test_cookies_thirdparty_nonsecure_session.js
rename : extensions/cookie/test/unit/test_cookies_thirdparty_session.js => netwerk/test/unit/test_cookies_thirdparty_session.js
rename : extensions/cookie/test/unit/test_domain_eviction.js => netwerk/test/unit/test_domain_eviction.js
rename : extensions/cookie/test/unit/test_eviction.js => netwerk/test/unit/test_eviction.js
rename : extensions/cookie/test/unit/test_schema_2_migration.js => netwerk/test/unit/test_schema_2_migration.js
rename : extensions/cookie/test/unit/test_schema_3_migration.js => netwerk/test/unit/test_schema_3_migration.js
extra : moz-landing-system : lando
2019-04-30 14:06:27 +00:00

58 lines
2.2 KiB
JavaScript

/* 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/. */
//
// HTTP Server-Timing header test
//
function make_and_open_channel(url, callback) {
let chan = NetUtil.newChannel({uri: url, loadUsingSystemPrincipal: true});
chan.asyncOpen(new ChannelListener(callback, null, CL_ALLOW_UNKNOWN_CL));
}
var responseServerTiming = [{metric:"metric", duration:"123.4", description:"description"},
{metric:"metric2", duration:"456.78", description:"description1"}];
var trailerServerTiming = [{metric:"metric3", duration:"789.11", description:"description2"},
{metric:"metric4", duration:"1112.13", description:"description3"}];
function run_test()
{
do_test_pending();
// Set up to allow the cert presented by the server
do_get_profile();
let certdb = Cc["@mozilla.org/security/x509certdb;1"]
.getService(Ci.nsIX509CertDB);
addCertFromFile(certdb, "http2-ca.pem", "CTu,u,u");
Services.prefs.setCharPref("network.dns.localDomains", "foo.example.com");
registerCleanupFunction(() => {
Services.prefs.clearUserPref("network.dns.localDomains");
});
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var serverPort = env.get("MOZHTTP2_PORT");
make_and_open_channel("https://foo.example.com:" + serverPort + "/server-timing", readServerContent);
}
function checkServerTimingContent(headers) {
var expectedResult = responseServerTiming.concat(trailerServerTiming);
Assert.equal(headers.length, expectedResult.length);
for (var i = 0; i < expectedResult.length; i++) {
let header = headers.queryElementAt(i, Ci.nsIServerTiming);
Assert.equal(header.name, expectedResult[i].metric);
Assert.equal(header.description, expectedResult[i].description);
Assert.equal(header.duration, parseFloat(expectedResult[i].duration));
}
}
function readServerContent(request, buffer)
{
let channel = request.QueryInterface(Ci.nsITimedChannel);
let headers = channel.serverTiming.QueryInterface(Ci.nsIArray);
checkServerTimingContent(headers);
do_test_finished();
}