gecko-dev/testing/web-platform/tests/web-share/resources/manual-helper.js
James Graham a1b638d149 Bug 1381842 - Update web-platform-tests to revision 85ae24e3dc80ee63b6dc2ed78a922cff68c6e819, a=testonly
MozReview-Commit-ID: DfvN9mAFYhI


--HG--
rename : testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-novalid.html => testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-novalid.html => testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html
rename : testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers => testing/web-platform/tests/content-security-policy/nonce-hiding/script-nonces-hidden.tentative.html.headers
rename : testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers => testing/web-platform/tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative.html.headers
rename : testing/web-platform/tests/html/semantics/interactive-elements/context-menus/contextmenu-event-manual.htm => testing/web-platform/tests/html/webappapis/scripting/events/contextmenu-event-manual.htm
2017-07-20 13:05:25 +01:00

78 lines
2.4 KiB
JavaScript

// Internal function. Returns [instruction, list] DOM elements.
function setupManualShareTestCommon() {
const div = document.createElement('div');
document.body.appendChild(div);
const instruction = document.createElement('div');
instruction.id = 'instruction';
div.appendChild(instruction);
const shareButton = document.createElement('input');
shareButton.id = 'share_button';
shareButton.value = 'Share button';
shareButton.type = 'button';
div.appendChild(shareButton);
let heading = document.createElement('h2');
heading.innerText = 'Instructions:';
instruction.appendChild(heading);
let list = document.createElement('ol');
instruction.appendChild(list);
let item = document.createElement('li');
list.appendChild(item);
item.innerText = 'Click the Share button.';
return [instruction, list];
}
// Sets up the page for running manual tests. Automatically creates the
// instructions (based on the parameters) and the share button.
function setupManualShareTest(expected_share_data) {
const {title, text, url} = expected_share_data;
let [instruction, list] = setupManualShareTestCommon();
let item = document.createElement('li');
list.appendChild(item);
item.innerText = 'Choose a valid share target.';
heading = document.createElement('h2');
heading.innerText = 'Pass the test iff the target app received:';
instruction.appendChild(heading);
list = document.createElement('ul');
instruction.appendChild(list);
item = document.createElement('li');
list.appendChild(item);
item.innerText = `title = "${title}"`;
item = document.createElement('li');
list.appendChild(item);
item.innerText = `text = "${text}"`;
item = document.createElement('li');
list.appendChild(item);
item.innerText = `url = "${url}"`;
}
function setupManualShareTestRequiringCancellation() {
const [instruction, list] = setupManualShareTestCommon();
const item = document.createElement('li');
list.appendChild(item);
item.innerText = 'Cancel the share dialog.';
}
// Returns a promise. When the user clicks the button, calls
// |click_handler| and resolves the promise with the result.
function callWhenButtonClicked(click_handler) {
return new Promise((resolve, reject) => {
document.querySelector('#share_button').onclick = () => {
try {
resolve(click_handler());
} catch (e) {
reject(e);
}
};
});
}
function getAbsoluteUrl(url) {
return new URL(url, document.baseURI).toString();
}