// META: title=`Origin.from(HyperlinkElementUtils)` // META: script=resources/serializations.js test(t => { const invalid = document.createElement("a"); assert_throws_js(TypeError, _ => Origin.from(invalid)); }, `Origin.from() throws.`); test(t => { const invalid = document.createElement("area"); assert_throws_js(TypeError, _ => Origin.from(invalid)); }, `Origin.from() throws.`); test(t => { const invalid = document.createElementNS('http://www.w3.org/2000/svg', 'a'); assert_throws_js(TypeError, _ => Origin.from(invalid)); }, `Origin.from(SVG ) throws.`); test(t => { const invalid = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'a'); assert_throws_js(TypeError, _ => Origin.from(invalid)); }, `Origin.from(MathML ) throws.`); for (const opaque of urls.opaque) { // test(t => { const a = document.createElement("a"); a.href = opaque; const origin = Origin.from(a); assert_true(!!origin); assert_true(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_false(origin.isSameOrigin(Origin.from(a))); }, `Origin.from() returns an opaque origin.`); // test(t => { const area = document.createElement("area"); area.href = opaque; const origin = Origin.from(area); assert_true(!!origin); assert_true(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_false(origin.isSameOrigin(Origin.from(area))); }, `Origin.from() returns an opaque origin.`); // SVG test(t => { const a = document.createElementNS('http://www.w3.org/2000/svg', 'a'); a.href.baseVal = opaque; const origin = Origin.from(a); assert_true(!!origin); assert_true(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_false(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(SVG ) returns an opaque origin.`); test(t => { const a = document.createElementNS('http://www.w3.org/2000/svg', 'a'); a.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', opaque); const origin = Origin.from(a); assert_true(!!origin); assert_true(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_false(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(SVG ) returns an opaque origin.`); // MathML test(t => { const a = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'a'); a.href = opaque; const origin = Origin.from(a); assert_true(!!origin); assert_true(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_false(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(MathML ) returns an opaque origin.`); } for (const tuple of urls.tuple) { // test(t => { const a = document.createElement("a"); a.href = tuple; const origin = Origin.from(a); assert_true(!!origin); assert_false(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_true(origin.isSameOrigin(Origin.from(a))); }, `Origin.from() returns a tuple origin.`); // test(t => { const area = document.createElement("area"); area.href = tuple; const origin = Origin.from(area); assert_true(!!origin); assert_false(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_true(origin.isSameOrigin(Origin.from(area))); }, `Origin.from() returns a tuple origin.`); // SVG test(t => { const a = document.createElementNS('http://www.w3.org/2000/svg', 'a'); a.href.baseVal = tuple; const origin = Origin.from(a); assert_true(!!origin); assert_false(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_true(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(SVG ) returns a tuple origin.`); test(t => { const a = document.createElementNS('http://www.w3.org/2000/svg', 'a'); a.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', tuple); const origin = Origin.from(a); assert_true(!!origin); assert_false(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_true(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(SVG ) returns a tuple origin.`); // MathML test(t => { const a = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'a'); a.href = tuple; const origin = Origin.from(a); assert_true(!!origin); assert_false(origin.opaque); assert_true(origin.isSameOrigin(origin)); assert_true(origin.isSameOrigin(Origin.from(a))); }, `Origin.from(MathML ) returns a tuple origin.`); }