summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_bug580508.js
blob: a17f59b33454d5d6baf1a6f8c32fe42c487dc935 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"use strict";

var ioService = Services.io;
var resProt = ioService
  .getProtocolHandler("resource")
  .QueryInterface(Ci.nsIResProtocolHandler);

function run_test() {
  // Define a resource:// alias that points to another resource:// URI.
  let greModulesURI = ioService.newURI("resource://gre/modules/");
  resProt.setSubstitution("my-gre-modules", greModulesURI);

  // When we ask for the alias, we should not get the resource://
  // URI that we registered it for but the original file URI.
  let greFileSpec = ioService.newURI(
    "modules/",
    null,
    resProt.getSubstitution("gre")
  ).spec;
  let aliasURI = resProt.getSubstitution("my-gre-modules");
  Assert.equal(aliasURI.spec, greFileSpec);

  // Resolving URIs using the original resource path and the alias
  // should yield the same result.
  let greNetUtilURI = ioService.newURI("resource://gre/modules/NetUtil.jsm");
  let myNetUtilURI = ioService.newURI("resource://my-gre-modules/NetUtil.jsm");
  Assert.equal(
    resProt.resolveURI(greNetUtilURI),
    resProt.resolveURI(myNetUtilURI)
  );
}