<pre id="test">
<script class="testbody" type="text/javascript">
function checkPromptState(promptState, expectedState) {
// XXX check title? OS X has title in content
// XXX check focused element
// XXX check button labels?
if (promptState.items.length)
is(promptState.selectedIndex, 0, "Checking selected index");
for (let i = 0; i < promptState.items; i++) {
is(promptState.items[i], expectedState.items[i], "Checking list item #" + i);
}
}
let selectVal = {};
let isOK;
function handlePrompt(state, action) {
return new Promise(resolve => {
gChromeScript.addMessageListener("promptHandled", function handled(msg) {
gChromeScript.removeMessageListener("promptHandled", handled);
checkPromptState(msg.promptState, state);
resolve(true);
});
gChromeScript.sendAsyncMessage("handlePrompt", { action, isSelect: true});
});
}
async function runTests(util) {
// Select prompt does not support tab or content prompts yet. See Bug 1622817.
if(util.modalType != Ci.nsIPrompt.MODAL_TYPE_WINDOW) {
info('Skipping modal type for select prompt...');
return;
}
// Empty list
info("Starting test: Select (0 items, ok)");
let state = {
msg: "This is the select text.", title: "TestTitle",
items: [],
};
let action = {
buttonClick: "ok",
};
let promptDone = handlePrompt(state, action);
let items = [];
selectVal.value = null; // outparam, just making sure.
let result = await util.prompt("select", ["TestTitle", "This is the select text.", items, util.useAsync ? false : selectVal]);
is(util.useAsync ? result.ok : result, true, "checked expected retval");
is(util.useAsync ? result.selected : selectVal.value, -1, "checking selected index");
await promptDone;
// ok
info("Starting test: Select (3 items, ok)");
state = {
msg: "This is the select text.", title: "TestTitle",
items: ["one", "two", "three"],
};
action = {
buttonClick: "ok",
};
promptDone = handlePrompt(state, action);
items = ["one", "two", "three"];
selectVal.value = null; // outparam, just making sure.
result = await util.prompt("select", ["TestTitle", "This is the select text.", items, util.useAsync ? false : selectVal]);
is(util.useAsync ? result.ok : result, true, "checked expected retval");
is(util.useAsync ? result.selected : selectVal.value, 0, "checking selected index");
await promptDone;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.