diff options
Diffstat (limited to 'addon-sdk/source/test/test-uri-resource.js')
-rw-r--r-- | addon-sdk/source/test/test-uri-resource.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/addon-sdk/source/test/test-uri-resource.js b/addon-sdk/source/test/test-uri-resource.js new file mode 100644 index 000000000..547090561 --- /dev/null +++ b/addon-sdk/source/test/test-uri-resource.js @@ -0,0 +1,43 @@ +/* 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/. */ +"use strict"; + +const {mount, unmount, resolve} = require("sdk/uri/resource"); +const {tmpdir} = require("node/os"); +const {fromFilename} = require("sdk/url"); + +const mountURI = fromFilename(tmpdir()); + +exports.testAPI = assert => { + const domain = Math.random().toString(16).substr(2) + + assert.equal(resolve(`resource://${domain}`), + null, + "domain isn't mounted"); + + mount(domain, mountURI); + + assert.equal(resolve(`resource://${domain}`), + mountURI, + "domain was mounted"); + + + assert.equal(resolve(`resource://${domain}/foo.js`), + `${mountURI}foo.js`, + "uri resolves to a file in mounted location"); + + unmount(domain); + + assert.equal(resolve(`resource://${domain}`), + null, + "domain is no longer mounted"); + + + assert.equal(resolve(`resource://${domain}/foo.js`), + null, + "uris under unmounted domain resolve to null"); + +}; + +require("sdk/test").run(exports); |