mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
160 lines
4.5 KiB
JavaScript
160 lines
4.5 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/. */
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
|
|
Cu.import('resource://gre/modules/CSPUtils.jsm');
|
|
|
|
var ioService = Cc["@mozilla.org/network/io-service;1"]
|
|
.getService(Ci.nsIIOService);
|
|
var self = ioService.newURI("http://test1.example.com:80", null, null);
|
|
|
|
function testValidSRCsHostSourceWithSchemeAndPath() {
|
|
var csps = [
|
|
"http://test1.example.com",
|
|
"http://test1.example.com/",
|
|
"http://test1.example.com/path-1",
|
|
"http://test1.example.com/path-1/",
|
|
"http://test1.example.com/path-1/path_2/",
|
|
"http://test1.example.com/path-1/path_2/file.js",
|
|
"http://test1.example.com/path-1/path_2/file_1.js",
|
|
"http://test1.example.com/path-1/path_2/file-2.js",
|
|
"http://test1.example.com/path-1/path_2/f.js",
|
|
"http://test1.example.com/path-1/path_2/f.oo.js"
|
|
]
|
|
|
|
var obj;
|
|
var expected = "http://test1.example.com:80";
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
dump("expected: " + expected + "\n");
|
|
dump("got: " + obj._sources[0] + "\n");
|
|
do_check_eq(1, obj._sources.length);
|
|
do_check_eq(obj._sources[0], expected);
|
|
}
|
|
}
|
|
|
|
function testValidSRCsRegularHost() {
|
|
var csps = [
|
|
"test1.example.com",
|
|
"test1.example.com/",
|
|
"test1.example.com/path-1",
|
|
"test1.example.com/path-1/",
|
|
"test1.example.com/path-1/path_2/",
|
|
"test1.example.com/path-1/path_2/file.js",
|
|
"test1.example.com/path-1/path_2/file_1.js",
|
|
"test1.example.com/path-1/path_2/file-2.js",
|
|
"test1.example.com/path-1/path_2/f.js",
|
|
"test1.example.com/path-1/path_2/f.oo.js"
|
|
]
|
|
|
|
var obj;
|
|
var expected = "http://test1.example.com:80";
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
do_check_eq(1, obj._sources.length);
|
|
do_check_eq(obj._sources[0], expected);
|
|
}
|
|
}
|
|
|
|
function testValidSRCsWildCardHost() {
|
|
var csps = [
|
|
"*.example.com",
|
|
"*.example.com/",
|
|
"*.example.com/path-1",
|
|
"*.example.com/path-1/",
|
|
"*.example.com/path-1/path_2/",
|
|
"*.example.com/path-1/path_2/file.js",
|
|
"*.example.com/path-1/path_2/file_1.js",
|
|
"*.example.com/path-1/path_2/file-2.js",
|
|
"*.example.com/path-1/path_2/f.js",
|
|
"*.example.com/path-1/path_2/f.oo.js"
|
|
]
|
|
|
|
var obj;
|
|
var expected = "http://*.example.com:80";
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
do_check_eq(1, obj._sources.length);
|
|
do_check_eq(obj._sources[0], expected);
|
|
}
|
|
}
|
|
|
|
function testValidSRCsRegularPort() {
|
|
var csps = [
|
|
"test1.example.com:80",
|
|
"test1.example.com:80/",
|
|
"test1.example.com:80/path-1",
|
|
"test1.example.com:80/path-1/",
|
|
"test1.example.com:80/path-1/path_2",
|
|
"test1.example.com:80/path-1/path_2/",
|
|
"test1.example.com:80/path-1/path_2/file.js",
|
|
"test1.example.com:80/path-1/path_2/f.ile.js"
|
|
]
|
|
|
|
var obj;
|
|
var expected = "http://test1.example.com:80";
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
do_check_eq(1, obj._sources.length);
|
|
do_check_eq(obj._sources[0], expected);
|
|
}
|
|
}
|
|
|
|
function testValidSRCsWildCardPort() {
|
|
var csps = [
|
|
"test1.example.com:*",
|
|
"test1.example.com:*/",
|
|
"test1.example.com:*/path-1",
|
|
"test1.example.com:*/path-1/",
|
|
"test1.example.com:*/path-1/path_2",
|
|
"test1.example.com:*/path-1/path_2/",
|
|
"test1.example.com:*/path-1/path_2/file.js",
|
|
"test1.example.com:*/path-1/path_2/f.ile.js"
|
|
]
|
|
|
|
var obj;
|
|
var expected = "http://test1.example.com:*";
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
do_check_eq(1, obj._sources.length);
|
|
do_check_eq(obj._sources[0], expected);
|
|
}
|
|
}
|
|
|
|
|
|
function testInvalidSRCs() {
|
|
var csps = [
|
|
"test1.example.com:88path-1/",
|
|
"test1.example.com:80.js",
|
|
"test1.example.com:*.js",
|
|
"test1.example.com:*."
|
|
]
|
|
|
|
var obj;
|
|
var expected = [];
|
|
for (let i in csps) {
|
|
var src = csps[i];
|
|
obj = CSPSourceList.fromString(src, undefined, self);
|
|
do_check_eq(0, obj._sources.length);
|
|
}
|
|
}
|
|
|
|
function run_test() {
|
|
testValidSRCsHostSourceWithSchemeAndPath();
|
|
testValidSRCsRegularHost();
|
|
testValidSRCsWildCardHost();
|
|
testValidSRCsRegularPort();
|
|
testValidSRCsWildCardPort();
|
|
testInvalidSRCs();
|
|
do_test_finished();
|
|
}
|