michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: 'use strict'; michael@0: michael@0: const { env } = require('sdk/system/environment'); michael@0: const { Cc, Ci } = require('chrome'); michael@0: const { get, set, exists } = Cc['@mozilla.org/process/environment;1']. michael@0: getService(Ci.nsIEnvironment); michael@0: michael@0: exports['test exists'] = function(assert) { michael@0: assert.equal('PATH' in env, exists('PATH'), michael@0: 'PATH environment variable is defined'); michael@0: assert.equal('FOO1' in env, exists('FOO1'), michael@0: 'FOO1 environment variable is not defined'); michael@0: set('FOO1', 'foo'); michael@0: assert.equal('FOO1' in env, true, michael@0: 'FOO1 environment variable was set'); michael@0: set('FOO1', null); michael@0: assert.equal('FOO1' in env, false, michael@0: 'FOO1 environment variable was unset'); michael@0: }; michael@0: michael@0: exports['test get'] = function(assert) { michael@0: assert.equal(env.PATH, get('PATH'), 'PATH env variable matches'); michael@0: assert.equal(env.BAR2, undefined, 'BAR2 env variable is not defined'); michael@0: set('BAR2', 'bar'); michael@0: assert.equal(env.BAR2, 'bar', 'BAR2 env variable was set'); michael@0: set('BAR2', null); michael@0: assert.equal(env.BAR2, undefined, 'BAR2 env variable was unset'); michael@0: }; michael@0: michael@0: exports['test set'] = function(assert) { michael@0: assert.equal(get('BAZ3'), '', 'BAZ3 env variable is not set'); michael@0: assert.equal(env.BAZ3, undefined, 'BAZ3 is not set'); michael@0: env.BAZ3 = 'baz'; michael@0: assert.equal(env.BAZ3, get('BAZ3'), 'BAZ3 env variable is set'); michael@0: assert.equal(get('BAZ3'), 'baz', 'BAZ3 env variable was set to "baz"'); michael@0: }; michael@0: michael@0: exports['test unset'] = function(assert) { michael@0: env.BLA4 = 'bla'; michael@0: assert.equal(env.BLA4, 'bla', 'BLA4 env variable is set'); michael@0: assert.equal(delete env.BLA4, true, 'BLA4 env variable is removed'); michael@0: assert.equal(env.BLA4, undefined, 'BLA4 env variable is unset'); michael@0: assert.equal('BLA4' in env, false, 'BLA4 env variable no longer exists' ); michael@0: }; michael@0: michael@0: require('test').run(exports);