112 lines
3.4 KiB
JavaScript
112 lines
3.4 KiB
JavaScript
utils.import('../../modules/utils.js');
|
|
assert.isDefined(TreeStyleTabUtils);
|
|
|
|
var random = parseInt(Math.random() * 65000);
|
|
var root = 'extensions.treestyletab.';
|
|
|
|
function clearTestPrefs()
|
|
{
|
|
utils.clearPref(random+'.bool');
|
|
utils.clearPref(random+'.int');
|
|
utils.clearPref(random+'.string');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.bool');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.int');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.string');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.domain1.pref');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.domain2.pref');
|
|
utils.clearPref('extensions.treestyletab.'+random+'.domain3.pref');
|
|
}
|
|
|
|
function setUp()
|
|
{
|
|
clearTestPrefs();
|
|
}
|
|
|
|
function tearDown()
|
|
{
|
|
clearTestPrefs();
|
|
}
|
|
|
|
function test_setAndGetPref()
|
|
{
|
|
function assertSetAndGetTreePref(aPref, aValue)
|
|
{
|
|
assert.isNull(utils.getPref(root+aPref));
|
|
assert.isNull(TreeStyleTabUtils.getTreePref(aPref));
|
|
|
|
TreeStyleTabUtils.setTreePref(aPref, aValue);
|
|
|
|
assert.isNotNull(utils.getPref(root+aPref));
|
|
assert.equals(aValue, utils.getPref(root+aPref));
|
|
|
|
assert.isNotNull(TreeStyleTabUtils.getTreePref(aPref));
|
|
assert.equals(aValue, TreeStyleTabUtils.getTreePref(aPref));
|
|
}
|
|
|
|
assertSetAndGetTreePref(random+'.bool', true);
|
|
assertSetAndGetTreePref(random+'.int', 29);
|
|
assertSetAndGetTreePref(random+'.string', 'string');
|
|
}
|
|
|
|
function test_listeners()
|
|
{
|
|
var singleDomainListener = {
|
|
domain : root+random+'.domain1',
|
|
observe : function(aSubject, aTopic, aData)
|
|
{
|
|
this.messages.push([aTopic, aData]);
|
|
},
|
|
messages : []
|
|
};
|
|
|
|
var multipleDomainsListener = {
|
|
domains : [
|
|
root+random+'.domain2',
|
|
root+random+'.domain3'
|
|
],
|
|
observe : function(aSubject, aTopic, aData)
|
|
{
|
|
this.messages.push([aTopic, aData]);
|
|
},
|
|
messages : []
|
|
};
|
|
|
|
TreeStyleTabUtils.prefs.addPrefListener(singleDomainListener);
|
|
utils.setPref(root+random+'.domain1.pref', true);
|
|
utils.setPref(root+random+'.domain1.pref', false);
|
|
assert.equals(
|
|
[
|
|
['nsPref:changed', root+random+'.domain1.pref'],
|
|
['nsPref:changed', root+random+'.domain1.pref']
|
|
],
|
|
singleDomainListener.messages
|
|
);
|
|
singleDomainListener.messages = [];
|
|
TreeStyleTabUtils.prefs.removePrefListener(singleDomainListener);
|
|
utils.setPref(root+random+'.domain1.pref', true);
|
|
utils.setPref(root+random+'.domain1.pref', false);
|
|
assert.equals([], singleDomainListener.messages);
|
|
|
|
TreeStyleTabUtils.prefs.addPrefListener(multipleDomainsListener);
|
|
utils.setPref(root+random+'.domain2.pref', true);
|
|
utils.setPref(root+random+'.domain3.pref', true);
|
|
utils.setPref(root+random+'.domain2.pref', false);
|
|
utils.setPref(root+random+'.domain3.pref', false);
|
|
assert.equals(
|
|
[
|
|
['nsPref:changed', root+random+'.domain2.pref'],
|
|
['nsPref:changed', root+random+'.domain3.pref'],
|
|
['nsPref:changed', root+random+'.domain2.pref'],
|
|
['nsPref:changed', root+random+'.domain3.pref']
|
|
],
|
|
multipleDomainsListener.messages
|
|
);
|
|
multipleDomainsListener.messages = [];
|
|
TreeStyleTabUtils.prefs.removePrefListener(multipleDomainsListener);
|
|
utils.setPref(root+random+'.domain2.pref', true);
|
|
utils.setPref(root+random+'.domain3.pref', true);
|
|
utils.setPref(root+random+'.domain2.pref', false);
|
|
utils.setPref(root+random+'.domain3.pref', false);
|
|
assert.equals([], multipleDomainsListener.messages);
|
|
}
|