blob: 9833f8b89cf81d8f3a5659817a91d7a136252108 [file] [log] [blame]
<!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;
const addressBook = [
{
"name": ["Person A"],
"email": ["person.a@webkit.org"],
"tel": ["555-5555"]
},
];
async function runTest()
{
description("This test verifies that navigator.contacts.select fails when a contact picker is already being displayed.\n");
const contactsButton = document.getElementById("contacts");
contactsButton.addEventListener("click", async () => {
let promise1 = navigator.contacts.select(['name']).catch((error) => { throw error.message; });
let promise2 = new Promise((resolve, reject) => {
navigator.contacts.select(['name']).then(contacts => reject("Expected failure."))
.catch((error) => resolve(error.name));
});
await UIHelper.waitForContactPickerToShow();
UIHelper.dismissContactPickerWithContacts(addressBook);
await UIHelper.waitForContactPickerToHide();
results = await Promise.all([promise1, promise2]);
contacts = results[0];
shouldBeEqualToNumber("contacts.length", 1);
contact = contacts[0];
shouldBeEqualToString("contact.name[0]", "Person A");
shouldBeEqualToString("results[1]", "InvalidStateError");
finishJSTest();
}, { once: true });
await UIHelper.activateElement(contactsButton);
}
</script>
<body onload=runTest()>
<button id="contacts">Show contacts</button>
</body>
</html>