53 lines
2.0 KiB
HTML
53 lines
2.0 KiB
HTML
<!DOCTYPE html> <!-- webkit-test-runner [ ContactPickerAPIEnabled=true ] -->
|
|
<html>
|
|
<head>
|
|
<script src="../resources/js-test.js"></script>
|
|
<script src="../resources/ui-helper.js"></script>
|
|
</head>
|
|
<script>
|
|
jsTestIsAsync = true;
|
|
finishedSubtest = false;
|
|
|
|
async function testContactsSelectWithPropertiesAndOptions(properties, options = {})
|
|
{
|
|
finishedSubtest = false;
|
|
debug("Calling navigator.contacts.select().");
|
|
|
|
const contactsButton = document.getElementById("contacts");
|
|
contactsButton.addEventListener("click", async () => {
|
|
try {
|
|
await navigator.contacts.select(properties, options);
|
|
testFailed("navigator.contacts.select succeeded with invalid properties and/or options.");
|
|
} catch (exception) {
|
|
window.exception = exception;
|
|
testPassed("Invalid properties and/or options specified.");
|
|
shouldBeEqualToString("exception.name", "TypeError");
|
|
}
|
|
|
|
finishedSubtest = true;
|
|
}, { once: true });
|
|
|
|
await UIHelper.activateElement(contactsButton);
|
|
await new Promise(resolve => shouldBecomeEqual("finishedSubtest", "true", resolve));
|
|
|
|
debug("");
|
|
}
|
|
|
|
async function runTest()
|
|
{
|
|
description("This test verifies that navigator.contacts.select fails if invalid properties or options are specified.\n");
|
|
|
|
await testContactsSelectWithPropertiesAndOptions([]);
|
|
await testContactsSelectWithPropertiesAndOptions(["Invalid"]);
|
|
await testContactsSelectWithPropertiesAndOptions("String");
|
|
await testContactsSelectWithPropertiesAndOptions([23]);
|
|
await testContactsSelectWithPropertiesAndOptions(["name", "email"], 50);
|
|
|
|
finishJSTest();
|
|
}
|
|
</script>
|
|
<body onload=runTest()>
|
|
<button id="contacts">Show contacts</button>
|
|
</body>
|
|
</html>
|