зеркало из https://github.com/mozilla/gecko-dev.git
77 строки
1.8 KiB
JavaScript
77 строки
1.8 KiB
JavaScript
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// only finish() when correct number of tests are done
|
|
const expected = 3;
|
|
var count = 0;
|
|
var lastUniqueName = null;
|
|
|
|
function done()
|
|
{
|
|
if (++count == expected) {
|
|
finish();
|
|
}
|
|
}
|
|
|
|
function test()
|
|
{
|
|
waitForExplicitFinish();
|
|
testOpen();
|
|
testOpenWithState();
|
|
testOpenInvalidState();
|
|
}
|
|
|
|
function testUniqueName(name)
|
|
{
|
|
ok(name, "Scratchpad has a uniqueName");
|
|
|
|
if (lastUniqueName === null) {
|
|
lastUniqueName = name;
|
|
return;
|
|
}
|
|
|
|
ok(name !== lastUniqueName,
|
|
"Unique name for this instance differs from the last one.");
|
|
}
|
|
|
|
function testOpen()
|
|
{
|
|
openScratchpad(function(win) {
|
|
is(win.Scratchpad.filename, undefined, "Default filename is undefined");
|
|
isnot(win.Scratchpad.getText(), null, "Default text should not be null");
|
|
is(win.Scratchpad.executionContext, win.SCRATCHPAD_CONTEXT_CONTENT,
|
|
"Default execution context is content");
|
|
testUniqueName(win.Scratchpad.uniqueName);
|
|
|
|
win.close();
|
|
done();
|
|
}, {noFocus: true});
|
|
}
|
|
|
|
function testOpenWithState()
|
|
{
|
|
let state = {
|
|
filename: "testfile",
|
|
executionContext: 2,
|
|
text: "test text"
|
|
};
|
|
|
|
openScratchpad(function(win) {
|
|
is(win.Scratchpad.filename, state.filename, "Filename loaded from state");
|
|
is(win.Scratchpad.executionContext, state.executionContext, "Execution context loaded from state");
|
|
is(win.Scratchpad.getText(), state.text, "Content loaded from state");
|
|
testUniqueName(win.Scratchpad.uniqueName);
|
|
|
|
win.close();
|
|
done();
|
|
}, {state: state, noFocus: true});
|
|
}
|
|
|
|
function testOpenInvalidState()
|
|
{
|
|
let win = openScratchpad(null, {state: 7});
|
|
ok(!win, "no scratchpad opened if state is not an object");
|
|
done();
|
|
}
|