| <!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> |