設定まわりの自動テスト
git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@3620 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
parent
3c8ff6525d
commit
387fe2a928
136
tests/unit/treestyletab_prefUtils.test.js
Normal file
136
tests/unit/treestyletab_prefUtils.test.js
Normal file
@ -0,0 +1,136 @@
|
||||
var namespace = {};
|
||||
utils.include('../../content/treestyletab/treestyletab.js', namespace, 'Shift_JIS');
|
||||
|
||||
var sv;
|
||||
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()
|
||||
{
|
||||
sv = {};
|
||||
sv.__proto__ = namespace.TreeStyleTabService;
|
||||
clearTestPrefs();
|
||||
}
|
||||
|
||||
function tearDown()
|
||||
{
|
||||
clearTestPrefs();
|
||||
}
|
||||
|
||||
function test_setAndGetPref()
|
||||
{
|
||||
function assertSetAndGetPref(aPref, aValue)
|
||||
{
|
||||
assert.isNull(utils.getPref(aPref));
|
||||
assert.isNull(sv.getPref(aPref));
|
||||
|
||||
sv.setPref(aPref, aValue);
|
||||
|
||||
assert.isNotNull(utils.getPref(aPref));
|
||||
assert.equals(aValue, utils.getPref(aPref));
|
||||
|
||||
assert.isNotNull(sv.getPref(aPref));
|
||||
assert.equals(aValue, sv.getPref(aPref));
|
||||
|
||||
sv.clearPref(aPref);
|
||||
assert.isNull(utils.getPref(aPref));
|
||||
assert.isNull(sv.getPref(aPref));
|
||||
}
|
||||
|
||||
function assertSetAndGetTreePref(aPref, aValue)
|
||||
{
|
||||
assert.isNull(utils.getPref(root+aPref));
|
||||
assert.isNull(sv.getTreePref(aPref));
|
||||
|
||||
sv.setTreePref(aPref, aValue);
|
||||
|
||||
assert.isNotNull(utils.getPref(root+aPref));
|
||||
assert.equals(aValue, utils.getPref(root+aPref));
|
||||
|
||||
assert.isNotNull(sv.getTreePref(aPref));
|
||||
assert.equals(aValue, sv.getTreePref(aPref));
|
||||
}
|
||||
|
||||
assertSetAndGetPref(random+'.bool', true);
|
||||
assertSetAndGetPref(random+'.int', 29);
|
||||
assertSetAndGetPref(random+'.string', 'string');
|
||||
|
||||
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 : []
|
||||
};
|
||||
|
||||
sv.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 = [];
|
||||
sv.removePrefListener(singleDomainListener);
|
||||
utils.setPref(root+random+'.domain1.pref', true);
|
||||
utils.setPref(root+random+'.domain1.pref', false);
|
||||
assert.equals([], singleDomainListener.messages);
|
||||
|
||||
sv.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 = [];
|
||||
sv.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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user