summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/uievents/legacy-domevents-tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/uievents/legacy-domevents-tests
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/uievents/legacy-domevents-tests')
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/Status.html26
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html32
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/dispatchEvent.click.checkbox.html80
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/domnodeinserted.html26
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopImmediatePropagation.effect.html71
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html70
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/approved/support/ProcessingInstruction.DOMCharacterDataModified.xml32
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/CompositionEvent.html69
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrChange.html65
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrName.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.newValue.html65
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.prevValue.html65
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.relatedNode.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMCharacterDataModified.html62
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeInserted.html64
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeRemoved.html62
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMSubtreeModified.html72
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.defaultPrevented.html68
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.eventPhase.html77
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.stopPropagation.html85
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.key.html56
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.location.html74
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.modifiers.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.button.html65
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.image.map.area.html70
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.preventDefault.html94
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.hasFeature.html67
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.initMutationEvent.html72
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.relatedNode.html76
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.fail.html18
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.xml63
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.hasFeature.html60
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.initTextEvent.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.IME.html69
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.drop.html71
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.keyboard.html67
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.paste.html71
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.script.html63
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/UIEvent.load.stylesheet.html59
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.Capture.Bubble.html90
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.ctrlKey.zoom.html93
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.deltaMode.html76
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.hasFeature.html60
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.initWheelEvent.html76
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.preventDefault.scroll.html91
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.img.html74
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.testresult.html30
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/blur.html57
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.data.html66
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.keydown.html76
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.preventDefault.html73
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html77
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/support/ProcessingInstruction.DOMCharacterDataModified.xml32
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/dispatchEvent.click.checkbox.html93
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/error.image.html65
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.html61
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.relatedTarget.html64
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusout.relatedTarget.html64
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.Events.html52
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.feature.string.html80
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/load.image.html82
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.ctrlKey.html64
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.relatedTarget.html69
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseleave.relatedTarget.html69
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/16kb.js140
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/InvalidBitMap.png1
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/iepreview.pngbin0 -> 76515 bytes
-rw-r--r--testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/style01.css3
69 files changed, 4414 insertions, 0 deletions
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/Status.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/Status.html
new file mode 100644
index 0000000000..392f68edc1
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/Status.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html>
+<head>
+ <title>DOM Level 3 Events Test Status</title>
+</head>
+<body>
+
+<h2>DOM Level 3 Events Test Suite Status</h2>
+
+<p>This test suite is part of the
+<a href="http://www.w3.org/2008/webapps/wiki/">Web Application WG's</a>
+Test Repository as described in WebApps'
+<a href="http://www.w3.org/2008/webapps/wiki/Testing">Testing Wiki</a>.
+</p>
+
+<p>The test suite is for the
+<a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">DOM Level 3 Events</a> specification.
+</p>
+
+<ul>
+ <li>Test suite status: all of the tests in the <code>approved</code> directory are Approved by WebApps' testing group</li>
+ <li>Test Facilitator: Alex Kuang</li>
+</ul>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html
new file mode 100644
index 0000000000..2da0a389e2
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/ProcessingInstruction.DOMCharacterDataModified.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> ProcessingInstruction.data and DOMCharacterDataModified event </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<iframe id="helper" style="display: none"></iframe>
+
+<script>
+ var description = "Test Description: " +
+ "DOMCharacterDataModified event fires after ProcessingInstruction.data have been modified, " +
+ "but the node itself has not been inserted or deleted. The proximal event target of this " +
+ "event shall be the ProcessingInstruction node.";
+
+ var t = async_test(description);
+
+ var HELPER = document.getElementById("helper");
+
+ HELPER.onload = t.step_func(function()
+ {
+ assert_true(HELPER.contentWindow.TestResult);
+ t.done();
+ });
+
+ HELPER.src = "./support/ProcessingInstruction.DOMCharacterDataModified.xml";
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/dispatchEvent.click.checkbox.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/dispatchEvent.click.checkbox.html
new file mode 100644
index 0000000000..8cb548f84c
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/dispatchEvent.click.checkbox.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> MouseEvent: Default action and synthetic click event </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<div style="display: none">
+ <input type="checkbox" id="target">
+ <button id="button"> Click Here </button>
+</div>
+
+<script>
+ setup({explicit_done:true});
+ var EVENT = "click";
+ var TARGET = document.getElementById("target");
+ var BUTTON = document.getElementById("button");
+ var state;
+
+ var description = "Test Description: " +
+ "MouseEvent: Default action is performed when a synthetic click event is dispatched on a checkbox element";
+
+ BUTTON.addEventListener(EVENT, TestEvent, true);
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ window.onload = function()
+ {
+ state = TARGET.checked;
+ BUTTON.click();
+ }
+
+ function TestEvent(evt)
+ {
+ if (BUTTON == evt.target)
+ {
+ var e;
+ test(function()
+ {
+ BUTTON.removeEventListener(EVENT, TestEvent, true);
+
+ e = document.createEvent("MouseEvent");
+ e.initMouseEvent(EVENT, /* type */
+ false, /* bubbles */
+ true, /* cancelable */
+ window, /* view */
+ 1, /* detail */
+ 0, /* screenX */
+ 0, /* screenY */
+ 0, /* clientX */
+ 0, /* clientY */
+ false, /* ctrlKey */
+ false, /* altKey */
+ false, /* shiftKey */
+ false, /* metaKey */
+ 0, /* button */
+ null /* relatedTarget */);
+
+ assert_array_equals([TARGET.checked, e.type, e.bubbles], [state, EVENT, false]);
+
+ }, "Checkbox state is unchanged before the synthetic click event is dispatched");
+
+ TARGET.dispatchEvent(e);
+ }
+ else if (TARGET == evt.target)
+ {
+ test(function()
+ {
+ assert_array_equals([TARGET.checked, evt.type, evt.bubbles], [!state, EVENT, false]);
+
+ }, description);
+
+ done();
+ }
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/domnodeinserted.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/domnodeinserted.html
new file mode 100644
index 0000000000..e5064d8d46
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/domnodeinserted.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<title>MutationEvent: DOMNodeInserted Event Type</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+
+<div id="target" style="display: none"></div>
+
+<script>
+var EVENT = "DOMNodeInserted";
+var TARGET;
+var NODE;
+
+var t = async_test("Test Description: DOMNodeInserted event fires when a node has been added as a child of another node.");
+
+TARGET = document.getElementById("target");
+
+TARGET.addEventListener(EVENT, t.step_func(function(evt)
+{
+ assert_equals(evt.type, EVENT);
+ t.done();
+}), true);
+
+NODE = document.createElement("INPUT");
+TARGET.appendChild(NODE);
+</script>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopImmediatePropagation.effect.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopImmediatePropagation.effect.html
new file mode 100644
index 0000000000..a414d60298
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopImmediatePropagation.effect.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> Event.stopImmediatePropagation() immediate effect </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<table id="table" border="1" style="display: none">
+ <tbody id="table-body">
+ <tr id="table-row">
+ <td id="table-cell">Shady Grove</td>
+ <td>Aeolian</td>
+ </tr>
+ <tr id="parent">
+ <td id="target">Over the river, Charlie</td>
+ <td>Dorian</td>
+ </tr>
+ </tbody>
+</table>
+
+<script>
+ var EVENT = "foo";
+ var TARGET = document.getElementById("target");
+ var PARENT = document.getElementById("parent");
+ var TBODY = document.getElementById("table-body");
+ var TABLE = document.getElementById("table");
+ var BODY = document.body;
+ var HTML = document.documentElement;
+ var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
+ var ExpectResult = [window, window, document, document, HTML, HTML, BODY, BODY, TABLE];
+ var ActualResult = [];
+ var ExpectListeners = [0,1,0,1,0,1,0,1,0];
+ var ActualListeners = [];
+
+ var description = "Test Description: " +
+ "stopImmediatePropagation() prevents other event listeners from being triggered and, unlike " +
+ "Event.stopPropagation(), its effect must be immediate. Once it has been called, further calls " +
+ "to this method have no additional effect.";
+
+ test(function()
+ {
+ for (var i=0; i < CurrentTargets.length; i++)
+ {
+ CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 0)}, true);
+ CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 1)}, true);
+ }
+
+ var evt = document.createEvent("Event");
+ evt.initEvent(EVENT, true, true);
+ TARGET.dispatchEvent(evt);
+
+ assert_array_equals(ActualResult, ExpectResult, "ActualResult");
+ assert_array_equals(ActualListeners, ExpectListeners, "ActualListeners");
+
+ }, description);
+
+ function TestEvent(evt, i)
+ {
+ ActualResult.push(evt.currentTarget);
+ ActualListeners.push(i);
+ if ((1 == evt.eventPhase) && (TABLE == evt.currentTarget) && (0 == i))
+ {
+ evt.stopImmediatePropagation();
+ }
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html
new file mode 100644
index 0000000000..93489c63b4
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/stopPropagation.deferred.effect.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> Event.stopPropagation() deferred effect </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<table id="table" border="1" style="display: none">
+ <tbody id="table-body">
+ <tr id="table-row">
+ <td id="table-cell">Shady Grove</td>
+ <td>Aeolian</td>
+ </tr>
+ <tr id="parent">
+ <td id="target">Over the river, Charlie</td>
+ <td>Dorian</td>
+ </tr>
+ </tbody>
+</table>
+
+<script>
+ var EVENT = "foo";
+ var TARGET = document.getElementById("target");
+ var PARENT = document.getElementById("parent");
+ var TBODY = document.getElementById("table-body");
+ var TABLE = document.getElementById("table");
+ var BODY = document.body;
+ var HTML = document.documentElement;
+ var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
+ var ExpectResult = [window, window, document, document, HTML, HTML, BODY, BODY, TABLE, TABLE];
+ var ActualResult = [];
+ var ExpectListeners = [0,1,0,1,0,1,0,1,0,1];
+ var ActualListeners = [];
+
+ var description = "Test Description: " +
+ "stopPropagation() prevents other event listeners from being triggered but its effect must be " +
+ "deferred until all event listeners attached on the Event.currentTarget have been triggered.";
+
+ test(function()
+ {
+ for (var i=0; i < CurrentTargets.length; i++)
+ {
+ CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 0)}, true);
+ CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 1)}, true);
+ }
+
+ var evt = document.createEvent("Event");
+ evt.initEvent(EVENT, true, true);
+ TARGET.dispatchEvent(evt);
+
+ assert_array_equals(ActualResult, ExpectResult, "ActualResult");
+ assert_array_equals(ActualListeners, ExpectListeners, "ActualListeners");
+
+ }, description);
+
+ function TestEvent(evt, i)
+ {
+ ActualResult.push(evt.currentTarget);
+ ActualListeners.push(i);
+ if ((1 == evt.eventPhase) && (TABLE == evt.currentTarget) && (0 == i))
+ {
+ evt.stopPropagation();
+ }
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/support/ProcessingInstruction.DOMCharacterDataModified.xml b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/support/ProcessingInstruction.DOMCharacterDataModified.xml
new file mode 100644
index 0000000000..4c95ae29df
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/approved/support/ProcessingInstruction.DOMCharacterDataModified.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<root>
+ <head xmlns="http://www.w3.org/1999/xhtml">
+ <title> ProcessingInstruction.data and DOMCharacterDataModified event </title>
+ </head>
+ <div id="log" xmlns="http://www.w3.org/1999/xhtml"></div>
+
+ <pi><?foo bar?></pi>
+
+ <script type="text/javascript" xmlns="http://www.w3.org/1999/xhtml">
+ <![CDATA[
+ var EVENT = "DOMCharacterDataModified";
+ var TARGET = document.getElementsByTagName('pi')[0].firstChild;
+ var TestResult = false;
+
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ TARGET.data = "new" + TARGET.data;
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (TARGET == evt.target) && ("newbar" == evt.newValue))
+ {
+ TestResult = true;
+ }
+ else
+ {
+ TestResult = false;
+ }
+ }
+ ]]>
+ </script>
+</root> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/CompositionEvent.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/CompositionEvent.html
new file mode 100644
index 0000000000..0f8242b07d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/CompositionEvent.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> Composition Event Types: compositionstart, compositionupdate, compositionend </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var TARGET;
+ var ExpectResult = ["compositionstart", "compositionupdate", "compositionend"];
+ var ActualResult = [];
+ var count = 0
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener("compositionstart", TestEvent, true);
+ TARGET.addEventListener("compositionupdate", TestEvent, true);
+ TARGET.addEventListener("compositionend", TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.type);
+ TARGET.removeEventListener(evt.type, TestEvent, true);
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: The composition events occur in a set order relative to one another:
+ 1. compositionstart, 2. compositionupdate (multiple events), 3. compositionend.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Open Japanese Microsoft IME and select Hiragana input method
+ 2) Click at the above textbox and then type 'a' using keyboard
+ 3) Press the '{Enter}' key to complete the IME composition
+ 4) <a href="CompositionEvent.html">Click here</a> to test again if not following the steps exactly
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below and nothing is typed to the textbox after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrChange.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrChange.html
new file mode 100644
index 0000000000..12c45fc848
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrChange.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.attrChange for DOMAttrModified Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = [2, 1, 3];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "foo");
+ TARGET.setAttribute(ATTR, "bar");
+ TARGET.removeAttribute(ATTR);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(evt.attrChange);
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent.attrChange indicates the type of change which triggered the DOMAttrModified event.
+ </h4>
+
+ <div id="target"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrName.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrName.html
new file mode 100644
index 0000000000..ca1ad97d24
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.attrName.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.attrName for DOMAttrModified Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = ["name", "foo", "style"];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "wow");
+ TARGET.setAttribute("foo", "bar");
+ TARGET.removeAttribute("style");
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(evt.attrName);
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent.attrName indicates the name of the changed Attr node
+ in a DOMAttrModified event.
+ </h4>
+
+ <div id="target" name="blah" style="border:solid 1px green; width:350px; height:100px;"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.html
new file mode 100644
index 0000000000..c229abe96e
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> Mutation Event Type: DOMAttrModified </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = ["foo", "bar", null];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "foo");
+ TARGET.setAttribute(ATTR, "bar");
+ TARGET.removeAttribute(ATTR);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(TARGET.getAttribute(ATTR));
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMAttrModified event fires after an Attr.value has been
+ modified and after an Attr node has been added to or removed from an Element.
+ </h4>
+
+ <div id="target"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.newValue.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.newValue.html
new file mode 100644
index 0000000000..77b8a41e1a
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.newValue.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.newValue for DOMAttrModified Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = ["foo", "bar", null];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "foo");
+ TARGET.setAttribute(ATTR, "bar");
+ TARGET.removeAttribute(ATTR);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(evt.newValue);
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent.newValue indicates the new value of the Attr node in DOMAttrModified events.
+ </h4>
+
+ <div id="target"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.prevValue.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.prevValue.html
new file mode 100644
index 0000000000..31fbec7764
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.prevValue.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.prevValue for DOMAttrModified Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = [null, "foo", "bar"];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "foo");
+ TARGET.setAttribute(ATTR, "bar");
+ TARGET.removeAttribute(ATTR);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(evt.prevValue);
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent.prevValue indicates the previous value of the Attr node in DOMAttrModified events.
+ </h4>
+
+ <div id="target"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.relatedNode.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.relatedNode.html
new file mode 100644
index 0000000000..5c30dabe22
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMAttrModified.relatedNode.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.relatedNode for DOMAttrModified Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMAttrModified";
+ var ATTR = "name";
+ var TARGET;
+ var ExpectResult = ["name", "foo", "style"];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ TARGET.setAttribute(ATTR, "wow");
+ TARGET.setAttribute("foo", "bar");
+ TARGET.removeAttribute("style");
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ ActualResult.push(evt.relatedNode.nodeName);
+ }
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: In the case of the DOMAttrModified event, MutationEvent.relatedNode
+ indicates the Attr node which was modified, added, or removed.
+ </h4>
+
+ <div id="target" name="blah" style="border:solid 1px green; width:350px; height:100px;"></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMCharacterDataModified.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMCharacterDataModified.html
new file mode 100644
index 0000000000..31d4fbf08f
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMCharacterDataModified.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent: DOMCharacterDataModified Event Type </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMCharacterDataModified";
+ var TARGET;
+ var TEXTNODE;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ TEXTNODE = TARGET.firstChild;
+ TEXTNODE.data += "world";
+
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (EVENT == evt.type)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMCharacterDataModified event fires after CharacterData.data has been modified.
+ </h4>
+
+ <span id="parent">
+ <div id="target" contenteditable style="border:solid 1px green; width:100px; height:100px">Hello </div>
+ </span>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeInserted.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeInserted.html
new file mode 100644
index 0000000000..0e0d26d1aa
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeInserted.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent: DOMNodeInserted Event Type </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMNodeInserted";
+ var TARGET;
+ var NODE;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ NODE = document.createElement("INPUT");
+ TARGET.appendChild(NODE);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (EVENT == evt.type)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMNodeInserted event fires when a node has been added as a child of another node.
+ </h4>
+
+ <span id="parent">
+ <div id="target" style="border:solid 1px green; width:200px; height:50px">
+ </div>
+ </span>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeRemoved.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeRemoved.html
new file mode 100644
index 0000000000..34d7112027
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMNodeRemoved.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent: DOMNodeRemoved Event Type </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "DOMNodeRemoved";
+ var TARGET;
+ var PARENT;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ PARENT.removeChild(TARGET);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (EVENT == evt.type)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMNodeRemoved event fires when a node is being removed from its parent node.
+ </h4>
+
+ <span id="parent">
+ <div id="target" style="border:solid 1px green; width:100px; height:100px">
+ </div>
+ </span>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMSubtreeModified.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMSubtreeModified.html
new file mode 100644
index 0000000000..1819f563da
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/DOMSubtreeModified.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent: DOMSubtreeModified Event Type </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT1 = "DOMSubtreeModified";
+ var EVENT2 = "DOMNodeRemoved";
+ var TARGET;
+ var HELPER;
+ var ActualResult = [];
+ var ExpectResult = [EVENT2, EVENT1];
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT1, TestEvent, true);
+ TARGET.addEventListener(EVENT2, TestEvent, true);
+
+ HELPER = document.getElementById("helper");
+ TARGET.removeChild(HELPER);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.type);
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+
+ if (2 < ActualResult.length)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMSubtreeModified event fires after any other events
+ caused by the mutation(s) have occurred.
+ </h4>
+
+ <span id="parent">
+ <div id="target" style="border:solid 1px green; width:200px; height:50px">
+ <input id="helper">
+ </div>
+ </span>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.defaultPrevented.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.defaultPrevented.html
new file mode 100644
index 0000000000..8acd3cb979
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.defaultPrevented.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event Object Property: defaultPrevented </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "click";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestCapture, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestCapture(evt)
+ {
+ try
+ {
+ evt.preventDefault();
+
+ if ((evt.type == EVENT) && (evt.defaultPrevented == true))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ Event listeners can cancel default actions of cancelable event objects by invoking the Event.preventDefault()
+ method, and determine whether an event has been canceled through the Event.defaultPrevented attribute.
+ </h4>
+
+ Click the hyperlink:
+ <a href="http://samples.msdn.microsoft.com/ietestcenter/" id="target">http://samples.msdn.microsoft.com/ietestcenter</a>
+
+ <p>Test passes if the word "PASS" appears below after clicking the hyperlink and the page does not navigate away.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.eventPhase.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.eventPhase.html
new file mode 100644
index 0000000000..4bd3b51b46
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.eventPhase.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 2 Event Object Property: eventPhase </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "dblclick";
+ var TARGET, PARENT;
+ var ActualResult = [];
+ var ExpectResult = [];
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+
+ ExpectResult = ["[1]" + PARENT, "[2]" + TARGET, "[3]" + document.body];
+
+ PARENT.addEventListener(EVENT, TestEvent, true);
+ PARENT.addEventListener(EVENT, TestEvent, false);
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ document.body.addEventListener(EVENT, TestEvent, false);
+
+ PARENT.removeEventListener(EVENT, TestEvent, false);
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push("[" + evt.eventPhase + "]" + evt.currentTarget);
+
+ if ((evt.eventPhase == 3) && (evt.currentTarget == document.body))
+ {
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ eventPhase is used to indicate which phase of event flow is currently being accomplished.
+ </h4>
+
+ <div id="parent">
+ Double click here: <input id="target" />
+ </div>
+
+ <p>Test passes if the word "PASS" appears below after double clicking the above textbox.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.stopPropagation.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.stopPropagation.html
new file mode 100644
index 0000000000..019143e366
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/Event.stopPropagation.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event Object method: stopPropagation </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "mousedown";
+ var TARGET, PARENT;
+ var ActualResult = [];
+ var ExpectResult = [];
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+
+ ExpectResult = [document.body, PARENT];
+
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ PARENT.addEventListener(EVENT, TestEvent, true);
+ PARENT.addEventListener(EVENT, TestEvent, false);
+ document.body.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.currentTarget);
+
+ if (evt.currentTarget == PARENT)
+ {
+ try
+ {
+ evt.stopPropagation();
+ }
+ catch(ex)
+ {
+ }
+ }
+ }
+
+ function VerifyTest()
+ {
+ if (ActualResult.toString() == ExpectResult.toString())
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ stopPropagation prevents other event listeners from being triggered.
+ </h4>
+
+ <div id="parent">
+ Click the button: <input id="target" type="button" value="Target" onmouseup="VerifyTest()" />
+ </div>
+
+ <p>Test passes if the word "PASS" appears below after clicking the above button using mouse.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.key.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.key.html
new file mode 100644
index 0000000000..ea1adb0751
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.key.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> KeyboardEvent Object Property: key </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "keydown";
+ var TARGET;
+ var ActualResult = "";
+ var result = true;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.type == EVENT) && (evt.key == "a"))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>Test Description: KeyboardEvent Object Property key holds the key value of the key pressed</h4>
+
+ Type 'a' here: <input id="target" value=""/>
+
+ <p>Test passes if the word "PASS" appears below after typing 'a' in the above textbox using keyboard.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.location.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.location.html
new file mode 100644
index 0000000000..63fe460f3d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.location.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> KeyboardEvent.location </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "keydown";
+ var TARGET;
+ var ExpectResult = ["a", 0, "Control", 1, "Shift", 2];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.key, evt.location);
+
+ if ((evt.type == EVENT) && (evt.key == "Shift"))
+ {
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: KeyboardEvent.location attribute contains an indication of the
+ location of the key on the device.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Type 'a' in the above textbox using keyboard
+ 2) Press '{CTRL}' key on the left side of the keyboard
+ 3) Press '{SHIFT}' key on the right side of the keyboard
+ 4) <a href="KeyboardEvent.location.html">Click here</a> to test again if not following the steps exactly
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.modifiers.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.modifiers.html
new file mode 100644
index 0000000000..ee490b47ec
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/KeyboardEvent.modifiers.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> KeyboardEvent.getModifierState() and 'AltGraph' modifier key </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "keydown";
+ var TARGET;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.type == EVENT) && evt.getModifierState("AltGraph"))
+ {
+ PassTest();
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: Some operating systems simulate the 'AltGraph' modifier key
+ with the combination of the 'Alt' and 'Control' modifier keys. Implementations
+ are encouraged to use the 'AltGraph' modifier key.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Click in the above textbox using mouse
+ 2) Press and hold down '{CTRL}' key and then press '{ALT}' key on the keyboard
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.button.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.button.html
new file mode 100644
index 0000000000..605565a781
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.button.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MouseEvent.button for mouseup Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "mouseup";
+ var TARGET;
+ var ExpectResult = [0, 1, 2];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+
+ ActualResult.push(evt.button);
+ TARGET.value = ActualResult;
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description: MouseEvent.button value for mouseup event is based on current button pressed.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Move the mouse pointer to the above textbox
+ 2) Click the mouse button in this order: Left Button, Middle Button, Right Button
+ 3) <a href="MouseEvent.button.html">Click here</a> to test again if not following the steps exactly
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.image.map.area.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.image.map.area.html
new file mode 100644
index 0000000000..17b7dd5cce
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.image.map.area.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MouseEvent event on IMG element with MAP and AREA elements</title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var TARGET;
+ var EVENT = "click";
+
+ function TestEvent(evt)
+ {
+ evt.preventDefault();
+
+ if ((EVENT == evt.type) && (TARGET === evt.target))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function(evt)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ document.addEventListener(EVENT, TestEvent, false);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent event fires on the AREA element when click the MAP AREA on an image
+ </h4>
+
+ <img src="./support/iepreview.png" usemap="#ieMap" />
+
+ <map name="ieMap">
+ <area id="target" href="MouseEvent.image.map.area.html" shape="rect" coords="140 180 250 250" title="Arrow" />
+ </map>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Click at the arrow pointer symbol on the bottom-right corner of the image.
+ </ol>
+ </p>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.preventDefault.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.preventDefault.html
new file mode 100644
index 0000000000..e6cb57806d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MouseEvent.preventDefault.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MouseEvent: mousedown - preventDefault() for text selection </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT1 = "mousedown";
+ var EVENT2 = "mouseup";
+ var TARGET;
+ var DisableSelection = false;
+ var DefaultPrevented = false;
+ var BEFORE = 0;
+ var AFTER = 0;
+
+ function DisableTextSelection()
+ {
+ DisableSelection = true;
+ }
+
+ function TestEvent(evt)
+ {
+ if ((true == DisableSelection) && (EVENT1 == evt.type))
+ {
+ evt.preventDefault();
+ DefaultPrevented = true;
+ BEFORE = evt.clientX;
+ }
+ if ((true == DisableSelection) && (EVENT2 == evt.type))
+ {
+ AFTER = evt.clientX;
+ }
+ }
+
+ function VerifyResult()
+ {
+ var distance = Math.abs(AFTER - BEFORE);
+
+ if ((true == DefaultPrevented) && (10 < distance) && ("" == window.getSelection()))
+ {
+ PassTest()
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT1, TestEvent, false);
+ TARGET.addEventListener(EVENT2, TestEvent, false);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent - Text selection is disabled after cancelling mousedown event.
+ </h4>
+
+ <span id="target" style="border:1px solid green; color:blue">&nbsp; Use mouse to select the whole line here &nbsp;</span>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Make sure text in the above green box can be selected using mouse
+ <li> Dismiss the selection, if any, by clicking at the green box with mouse
+ <li> Now, click the button: <button onclick="DisableTextSelection()">Disable Selection</button>
+ <li> Drag mouse to select the whole line of the text inside the above green box
+ <li> Click the button: <button id="verify" onclick="VerifyResult()">VerifyResult</button>
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.hasFeature.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.hasFeature.html
new file mode 100644
index 0000000000..f550a5366d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.hasFeature.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent: feature detection with hasFeature() </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ var features = ["MutationEvent",
+ "Events.MutationEvent",
+ "Events.DOMSubtreeModified",
+ "Events.DOMNodeInserted",
+ "Events.DOMNodeRemoved",
+ "Events.DOMAttrModified",
+ "Events.DOMCharacterDataModified"];
+
+ var versions = ["3.0", "", null];
+ var TestResult = true;
+ var HasFeature = false;
+
+ for (var i=0; i<features.length; i++)
+ {
+ for (var j=0; j<versions.length; j++)
+ {
+ HasFeature = document.implementation.hasFeature(features[i], versions[j]);
+ TestResult = HasFeature && TestResult;
+ }
+ }
+
+ if (HasFeature && TestResult)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent - feature support detection using DOMImplementation.hasFeature() method
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.initMutationEvent.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.initMutationEvent.html
new file mode 100644
index 0000000000..3b2bceabf4
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.initMutationEvent.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.initMutationEvent() and Event.trusted </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "foo";
+ var TARGET;
+ var ExpectResult = [];
+ var ActualResult = [];
+ var TestResult = true;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ var evt = document.createEvent("MutationEvent");
+ evt.initMutationEvent(EVENT, /* type */
+ true, /* bubbles */
+ true, /* cancelable */
+ null, /* relatedNode */
+ "hello", /* prevValue */
+ "world", /* newValue */
+ "bar", /* attrName */
+ 1 /* attrChange*/ );
+
+ TARGET.dispatchEvent(evt);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+
+ }
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (false == evt.trusted))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: initMutationEvent initializes attributes of a MutationEvent object.
+ </h4>
+
+ <input id="target" type="hidden" />
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.relatedNode.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.relatedNode.html
new file mode 100644
index 0000000000..6b92079ef6
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/MutationEvent.relatedNode.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MutationEvent.relatedNode for DOMNodeInserted and DOMNodeRemoved </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT1 = "DOMNodeInserted";
+ var EVENT2 = "DOMNodeRemoved";
+ var TARGET;
+ var PARENT;
+ var NODE;
+ var ActualResult = [];
+ var ExpectResult = [];
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+ TARGET.addEventListener(EVENT1, TestEvent, true);
+ TARGET.addEventListener(EVENT2, TestEvent, true);
+
+ ExpectResult = [TARGET, PARENT];
+
+ NODE = document.createElement("INPUT");
+ TARGET.appendChild(NODE);
+ PARENT.removeChild(TARGET);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.relatedNode);
+
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+
+ if (2 < ActualResult.length)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MutationEvent.relatedNode is the parent node of the node being removed for DOMNodeRemoved event;
+ and, it is the parent node of the node that has been inserted for DOMNodeInserted event
+ </h4>
+
+ <span id="parent">
+ <div id="target" style="border:solid 1px green; width:200px; height:50px">
+ </div>
+ </span>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.fail.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.fail.html
new file mode 100644
index 0000000000..9b0843c115
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.fail.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> ProcessingInstruction.data and DOMCharacterDataModified event </title>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMCharacterDataModified event fires after ProcessingInstruction.data have been modified,
+ but the node itself has not been inserted or deleted. The proximal event target of this event shall be the
+ ProcessingInstruction node.
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.xml b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.xml
new file mode 100644
index 0000000000..34ad59064f
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/ProcessingInstruction.DOMCharacterDataModified.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<root>
+ <head xmlns="http://www.w3.org/1999/xhtml">
+ <title> ProcessingInstruction.data and DOMCharacterDataModified event </title>
+ </head>
+
+ <p xmlns="http://www.w3.org/1999/xhtml">
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: DOMCharacterDataModified event fires after ProcessingInstruction.data have been modified,
+ but the node itself has not been inserted or deleted. The proximal event target of this event shall be the
+ ProcessingInstruction node.
+ </h4>
+
+ <pi><?foo bar?></pi>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div><testresult>FAIL</testresult></div>
+
+ <script type="text/javascript" xmlns="http://www.w3.org/1999/xhtml">
+ <![CDATA[
+ var PassTest = function()
+ {
+ document.getElementsByTagName("testresult")[0].firstChild.data = "PASS";
+ TestResult = true;
+ }
+
+ var FailTest = function()
+ {
+ document.getElementsByTagName("testresult")[0].firstChild.data = "FAIL";
+ TestResult = false;
+ }
+
+ var EVENT = "DOMCharacterDataModified";
+ var TARGET = document.getElementsByTagName('pi')[0].firstChild;
+ var TestResult = false;
+
+ try
+ {
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ TARGET.data = "new" + TARGET.data;
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (TARGET == evt.target) && ("newbar" == evt.newValue))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ ]]>
+ </script>
+ </p>
+</root> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.hasFeature.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.hasFeature.html
new file mode 100644
index 0000000000..853cc7c435
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.hasFeature.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: feature detection with hasFeature() </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ var features = ["TextEvent", "Events.TextEvent", "Events.textInput"];
+ var versions = ["3.0", "", null];
+ var TestResult = true;
+ var HasFeature = false;
+
+ for (var i=0; i<features.length; i++)
+ {
+ for (var j=0; j<versions.length; j++)
+ {
+ HasFeature = document.implementation.hasFeature(features[i], versions[j]);
+ TestResult = HasFeature && TestResult;
+ }
+ }
+
+ if (HasFeature && TestResult)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent - feature support detection using DOMImplementation.hasFeature() method
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.initTextEvent.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.initTextEvent.html
new file mode 100644
index 0000000000..52eae11aa9
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.initTextEvent.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent.initTextEvent() and Event.trusted </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "foo";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ var evt = document.createEvent("TextEvent");
+ evt.initTextEvent(EVENT, /* type */
+ true, /* bubbles */
+ true, /* cancelable */
+ window, /* view */
+ "domstr", /* data*/
+ 0 /* inputMode */ );
+ TARGET.dispatchEvent(evt);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+
+ }
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (false == evt.trusted))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: initTextEvent initializes attributes of a TextEvent object.
+ </h4>
+
+ <input id="target" type="hidden" />
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.IME.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.IME.html
new file mode 100644
index 0000000000..af5c736242
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.IME.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: inputMode with DOM_INPUT_METHOD_IME </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "textInput";
+ var TARGET;
+
+ function TestEvent(evt)
+ {
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+ if ((0x04 == evt.inputMode) && ("あ" == evt.data))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent.inputMode is DOM_INPUT_METHOD_IME (0x04)
+ when the text string was entered through an Input Method Editor.
+ </h4>
+
+ <span id="parent">
+ <input id="target" type="text" />
+ </span>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Open Japanese Microsoft IME and select Hiragana input method
+ <li> Click at the above textbox and then type 'a' using keyboard
+ <li> Press '{ENTER}' key to complete the IME composition
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.drop.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.drop.html
new file mode 100644
index 0000000000..14ffc19765
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.drop.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: inputMode with DOM_INPUT_METHOD_DROP </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "textInput";
+ var TARGET;
+
+ function TestEvent(evt)
+ {
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+
+ if ((0x03 == evt.inputMode) && ("Hello World" == evt.data))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent.inputMode is DOM_INPUT_METHOD_DROP (0x03)
+ when the text string was inserted as part of a drag-and-drop operation.
+ </h4>
+
+ <span id="parent">
+ <div contenteditable="true" style="border:solid 1px green; width:150px; height:20px">Hello World</div>
+ <br/>
+ <input id="target" type="text" />
+ </span>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select "Hello World" inside the green editbox
+ <li> Drag-and-drop it ("Hello World") to the textbox below the green editbox
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.keyboard.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.keyboard.html
new file mode 100644
index 0000000000..472dd96ddb
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.keyboard.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: inputMode with DOM_INPUT_METHOD_KEYBOARD </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "textInput";
+ var TARGET;
+
+ function TestEvent(evt)
+ {
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+
+ if ((0x01 == evt.inputMode) && ("a" == evt.data))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent.inputMode is DOM_INPUT_METHOD_KEYBOARD (0x01)
+ when the text string was input through a keyboard.
+ </h4>
+
+ <span id="parent">
+ <input id="target" type="text" />
+ </span>
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Type 'a' in the above texbox using keyboard
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.paste.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.paste.html
new file mode 100644
index 0000000000..a93259cd60
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.paste.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: inputMode with DOM_INPUT_METHOD_PASTE </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "textInput";
+ var TARGET;
+
+ function TestEvent(evt)
+ {
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+
+ if ((0x02 == evt.inputMode) && ("Hello World" == evt.data))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent.inputMode is DOM_INPUT_METHOD_PASTE (0x02)
+ when the text string was pasted in from a clipboard.
+ </h4>
+
+ <span id="parent">
+ <div contenteditable="true" style="border:solid 1px green; width:150px; height:20px">Hello World</div>
+ <br/>
+ <input id="target" type="text" />
+ </span>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select and copy "Hello World" inside the green editbox
+ <li> Paste it ("Hello World") to the textbox below the green editbox
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.script.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.script.html
new file mode 100644
index 0000000000..c1327ebae5
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/TextEvent.inputMode.script.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> TextEvent: inputMode with DOM_INPUT_METHOD_SCRIPT </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "textInput";
+ var TARGET;
+
+ function TestEvent(evt)
+ {
+ TARGET.removeEventListener(EVENT, TestEvent, true);
+
+ if ((0x09 == evt.inputMode) && ("Hello World" == evt.data))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ TARGET.firstChild.data = "Hello World";
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: TextEvent.inputMode is DOM_INPUT_METHOD_SCRIPT (0x09)
+ when the text string was inserted via a script operation on the DOM.
+ </h4>
+
+ <span id="parent">
+ <div id="target" contenteditable="true" style="border:solid 1px green; width:200px; height:50px">
+ </div>
+ </span>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/UIEvent.load.stylesheet.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/UIEvent.load.stylesheet.html
new file mode 100644
index 0000000000..a948a2f71a
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/UIEvent.load.stylesheet.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> UIEvent: load event for style sheets </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.type == EVENT) && (evt.currentTarget == TARGET))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ var EVENT = "load";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ TARGET.href = "./support/style01.css";
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: UIEvent - load event fires when the DOM Implementation finishes loading
+ dependent resources, such as style sheets.
+ </h4>
+
+ <LINK id="target" rel="stylesheet" />
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.Capture.Bubble.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.Capture.Bubble.html
new file mode 100644
index 0000000000..4dfe246136
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.Capture.Bubble.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent: wheel Event capturing/bubbling </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function TestBubble(evt)
+ {
+ if (EVENT == evt.type)
+ {
+ ActualResult.push(evt.currentTarget);
+ }
+
+ if ((3 == evt.eventPhase) && (window === evt.currentTarget))
+ {
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+
+ for (var i=0; i < CURRENTTARGETS.length; i++)
+ {
+ CURRENTTARGETS[i].removeEventListener(EVENT, TestBubble, true);
+ CURRENTTARGETS[i].removeEventListener(EVENT, TestBubble, false);
+ }
+ }
+ }
+
+ var EVENT = "wheel";
+ var TARGET, PARENT, CURRENTTARGETS;
+ var ExpectResult = [];
+ var ActualResult = [];
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+ CURRENTTARGETS = [window, document, document.body, PARENT, TARGET];
+ ExpectResult = CURRENTTARGETS + "," + CURRENTTARGETS.reverse();
+
+ for (var i=0; i < CURRENTTARGETS.length; i++)
+ {
+ CURRENTTARGETS[i].addEventListener(EVENT, TestBubble, true);
+ CURRENTTARGETS[i].addEventListener(EVENT, TestBubble, false);
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: WheelEvent - wheel event bubbles.
+ </h4>
+
+ <span id="parent">
+ <textarea id="target" rows="5" cols="30">TOP TOP TOP TOP TOP TOP TOP Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here END END END END END END END </textarea>
+ </span>
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Note: an input device with scroll wheel support (e.g., mouse wheel) is required
+ <li> Move the mouse pointer over the above textarea
+ <li> Scroll down the mouse wheel 1 or more units
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.ctrlKey.zoom.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.ctrlKey.zoom.html
new file mode 100644
index 0000000000..52b17ced96
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.ctrlKey.zoom.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent: wheel - MouseEvent.ctrlKey and Zooming </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function DisableZooming()
+ {
+ BEFORE = HELPER.getBoundingClientRect().width;
+ DisableZoom = true;
+ }
+
+ function VerifyResult()
+ {
+ AFTER = HELPER.getBoundingClientRect().width;
+
+ if ((true == DisableZoom) && (true == TestResult) && (BEFORE == AFTER))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((true == DisableZoom) && (true == evt.ctrlKey) && (EVENT == evt.type))
+ {
+ evt.preventDefault();
+ TestResult = evt.defaultPrevented;
+ }
+ }
+
+ var EVENT = "wheel";
+ var TARGET;
+ var HELPER;
+ var BEFORE;
+ var AFTER;
+ var DisableZoom = false;
+ var TestResult = false;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document;
+ HELPER = document.getElementById("helper");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: The typical default action of the wheel event type, in some cases, is to
+ zoom the document. If this event is canceled, the implementation must not zoom the document.
+ </h4>
+
+ <div id="helper" style="width:100%"></div>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Note: an input device with scroll wheel support (e.g., mouse wheel) is required
+ <li> Make sure the page can be zoomed in/out by holding down '{CTRL}' key + scrolling the mouse wheel on the page
+ <li> Now, click the button: <button id="verify" onclick="DisableZooming()">Disable Zooming</button>
+ <li> Press and hold down '{CTRL}' key on the keyboard
+ <li> Move the mouse pointer to the center of the page
+ <li> Scroll down/up the mouse wheel some units
+ <li> Click the button: <button id="verify" onclick="VerifyResult()">VerifyResult</button>
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.deltaMode.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.deltaMode.html
new file mode 100644
index 0000000000..11761f4083
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.deltaMode.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent: wheel - WheelEvent.deltaMode </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "wheel";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((0x00 == evt.deltaMode) || (0x01 == evt.deltaMode) || (0x02 == evt.deltaMode))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: WheelEvent.deltaMode attribute contains an indication of the units of
+ measurement for the delta values. Its value may be different based on system configuration.
+ </h4>
+
+ <span id="parent">
+ <div id="target" style="border:solid 1px green; width:220px; height:70px; overflow:scroll">
+ TOP TOP TOP TOP TOP TOP TOP
+ Scroll mouse wheel over here
+ Scroll mouse wheel over here
+ Scroll mouse wheel over here
+ Scroll mouse wheel over here
+ Scroll mouse wheel over here
+ Scroll mouse wheel over here
+ END END END END END END END
+ </div>
+ </span>
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Note: an input device with scroll wheel support (e.g., mouse wheel) is required
+ <li> Move the mouse pointer over the above green box
+ <li> Scroll down the mouse wheel 1 or more units
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.hasFeature.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.hasFeature.html
new file mode 100644
index 0000000000..8bd224fa98
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.hasFeature.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent: feature detection with hasFeature() </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ var features = ["WheelEvent", "Events.WheelEvent", "Events.wheel"];
+ var versions = ["3.0", "", null];
+ var TestResult = true;
+ var HasFeature = false;
+
+ for (var i=0; i<features.length; i++)
+ {
+ for (var j=0; j<versions.length; j++)
+ {
+ HasFeature = document.implementation.hasFeature(features[i], versions[j]);
+ TestResult = HasFeature && TestResult;
+ }
+ }
+
+ if (HasFeature && TestResult)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: WheelEvent - feature support detection using DOMImplementation.hasFeature() method
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.initWheelEvent.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.initWheelEvent.html
new file mode 100644
index 0000000000..cd8c192e41
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.initWheelEvent.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent.initWheelEvent() and Event.trusted </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "foo";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+
+ var evt = document.createEvent("WheelEvent");
+ evt.initWheelEvent(EVENT, /* type */
+ true, /* bubbles */
+ true, /* cancelable */
+ window, /* view */
+ 0, /* detail */
+ 1, /* screenX */
+ 2, /* screenY */
+ 3, /* clientX */
+ 4, /* clientY */
+ 5, /* button */
+ null, /* relatedTarget */
+ "", /* modifiers */
+ 6, /* deltaX*/
+ 7, /* deltaY */
+ 8, /* deltaZ*/
+ 9 /* deltaMode */ );
+ TARGET.dispatchEvent(evt);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+
+ }
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (false == evt.trusted))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: initWheelEvent initializes attributes of a WheelEvent object.
+ </h4>
+
+ <input id="target" type="hidden" />
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.preventDefault.scroll.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.preventDefault.scroll.html
new file mode 100644
index 0000000000..6cb55a071f
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/WheelEvent.preventDefault.scroll.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> WheelEvent: wheel - preventDefault() for Scrolling </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function DisableScrolling()
+ {
+ TARGET.scrollTop = 0;
+ BEFORE = TARGET.scrollTop;
+ DisableScroll = true;
+ }
+
+ function VerifyResult()
+ {
+ AFTER = TARGET.scrollTop;
+
+ if ((true == DisableScroll) && (true == TestResult) && (BEFORE == AFTER))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((true == DisableScroll) && (EVENT == evt.type))
+ {
+ evt.preventDefault();
+ TestResult = evt.defaultPrevented;
+ }
+ }
+
+ var EVENT = "wheel";
+ var BEFORE;
+ var AFTER;
+ var DisableScroll = false;
+ var TestResult = false;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: The typical default action of the wheel event type is to scroll the document/element
+ by the indicated amount. If this event is canceled, the implementation must not scroll document/element.
+ </h4>
+
+ <span id="parent">
+ <textarea id="target" rows="5" cols="30">TOP TOP TOP TOP TOP TOP TOP Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here Scroll mouse wheel over here END END END END END END END </textarea>
+ </span>
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Note: an input device with scroll wheel support (e.g., mouse wheel) is required
+ <li> Make sure the above textarea can be scrolled by scrolling the mouse wheel over it
+ <li> Now, click the button: <button onclick="DisableScrolling()">Disable Scrolling</button>
+ <li> Move the mouse pointer over the above textarea
+ <li> Scroll down the mouse wheel 1 or more units
+ <li> Click the button: <button id="verify" onclick="VerifyResult()">VerifyResult</button>
+ </ol>
+ </p>
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.img.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.img.html
new file mode 100644
index 0000000000..c0fb1eaf97
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.img.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event: abort </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ window.localStorage.TestResult = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ window.localStorage.TestResult = "FAIL";
+ }
+
+ function TestCapture(evt)
+ {
+ if ((evt.currentTarget == TARGET) && (evt.type == EVENT))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ function ReloadPage()
+ {
+ var LINK = document.getElementById("link");
+ LINK.href = "abort.img.html";
+ LINK.firstChild.data = "Click here to reload the page and test again.";
+ PARENT.firstChild.data = "Image loaded below. The above link should be clicked before image loads."
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ The abort event fires when the loading of a resource has been aborted.
+ </h4>
+
+ <h3><a id="link" href="abort.testresult.html">Before image is loaded below, click here.</a></h3>
+
+ <div id="parent">Loading...<br></div>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+
+ <script type="text/javascript">
+ try
+ {
+ window.localStorage.clear();
+
+ var EVENT = "abort";
+ var PARENT = document.getElementById("parent");
+ var TARGET = document.createElement("img");
+ TARGET.width = "400";
+ TARGET.height = "400";
+ TARGET.src = "./support/iepreview10mb.png?" + (new Date()).valueOf();
+ PARENT.appendChild(TARGET);
+ TARGET.onload = ReloadPage;
+ TARGET.addEventListener(EVENT, TestCapture, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.testresult.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.testresult.html
new file mode 100644
index 0000000000..e0f6243b8a
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/abort.testresult.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <body>
+ <h4>
+ Test Description:
+ The abort event fires when the loading of a resource has been aborted.
+ </h4>
+
+ <h3><a id="link" href="abort.img.html">Click here to go back to the test page</a></h3>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>
+ <script>
+ try
+ {
+ var result = window.localStorage.getItem("TestResult");
+ }
+ catch(ex)
+ {
+ }
+ if ("PASS" != result)
+ {
+ result = "FAIL";
+ }
+ document.write(result);
+ </script>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/blur.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/blur.html
new file mode 100644
index 0000000000..cef282bfe5
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/blur.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event: blur </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "blur";
+ var TARGET;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestCapture, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestCapture(evt)
+ {
+ if ((evt.type == EVENT) && (evt.currentTarget == TARGET))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>Test Description: blur event fires when an event target loses focus.</h4>
+
+ <div id="parent">
+ Click the textbox and then the button: <br />
+ <input id="target" /> <button id="helper">Button</button>
+ </div>
+
+ <p>Test passes if the word "PASS" appears below after clicking the above textbox and then the button.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.data.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.data.html
new file mode 100644
index 0000000000..177c37e8d7
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.data.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> CompositionEvent.data for compositionstart Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "compositionstart";
+ var TARGET;
+ var ExpectResult = [];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.type == EVENT) && (evt.data == ""))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: The value of the data attribute of the compositionstart event
+ shall be null for new IME input.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Open Japanese Microsoft IME and select Hiragana input method
+ 2) Click at the above textbox and then type 'a' using keyboard
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.keydown.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.keydown.html
new file mode 100644
index 0000000000..7316d1a8a3
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.keydown.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> compositionstart Event and keydown Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var TARGET;
+ var ExpectResult = ["keydown", "compositionstart", "keyup"];
+ var ActualResult = [];
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener("compositionstart", TestEvent, true);
+ TARGET.addEventListener("keydown", TestEvent, true);
+ TARGET.addEventListener("keyup", TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.type);
+
+ if (evt.type == "keyup")
+ {
+ if (ExpectResult.toString() == ActualResult.toString())
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ TARGET.removeEventListener("compositionstart", TestEvent, true);
+ TARGET.removeEventListener("keydown", TestEvent, true);
+ TARGET.removeEventListener("keyup", TestEvent, true);
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: When a keyboard is used to feed an input method editor,
+ compositionstart event type is generated after a keydown event.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Open Japanese Microsoft IME and select Hiragana input method
+ 2) Type 'a' in the above textbox using keyboard
+ 3) <a href="compositionstart.keydown.html">Click here</a> to test again if not following the steps exactly
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.preventDefault.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.preventDefault.html
new file mode 100644
index 0000000000..74fc52b579
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/compositionstart.preventDefault.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> Cancelling compositionstart Event via Event.preventDefault() </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "compositionstart";
+ var TARGET;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ TARGET.addEventListener("keyup", TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT)
+ {
+ evt.preventDefault();
+ }
+
+ if (evt.type == "keyup")
+ {
+ if (TARGET.value == "")
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: The default action of compositionstart event is to launch the appropriate text
+ composition system. If this event is canceled, the text composition system must not be launched.
+ </h4>
+
+ <pre>
+ <input id="target" value=""/>
+
+ Steps:
+ 1) Open Japanese Microsoft IME and select Hiragana input method
+ 2) Click at the above textbox and then type 'a' using keyboard
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below and nothing is typed to the textbox after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html
new file mode 100644
index 0000000000..e0ab7e0d3e
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/EventListener.dispatch.new.event.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> Dispatch additional events inside an event listener </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id=log></div>
+
+<table id="table" border="1" style="display: none">
+ <tbody id="table-body">
+ <tr id="table-row">
+ <td id="table-cell">Shady Grove</td>
+ <td>Aeolian</td>
+ </tr>
+ <tr id="parent">
+ <td id="target">Over the river, Charlie</td>
+ <td>Dorian</td>
+ </tr>
+ </tbody>
+</table>
+
+<script>
+
+ var EVENT = "foo";
+ var TARGET = document.getElementById("target");
+ var PARENT = document.getElementById("parent");
+ var TBODY = document.getElementById("table-body");
+ var TABLE = document.getElementById("table");
+ var BODY = document.body;
+ var HTML = document.documentElement;
+ var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
+ var ExpectResult = [window, document, HTML, BODY, TABLE, TARGET, PARENT, TBODY,
+ TABLE, BODY, HTML, document, window, TBODY, PARENT, TARGET];
+ var ActualResult = [];
+ var ExpectTypes = "foo,foo,foo,foo,foo,bar,bar,bar,bar,bar,bar,bar,bar,foo,foo,foo,";
+ var ActualTypes = "";
+
+ var description = "Test Description: " +
+ "Implementations of the DOM event model must be reentrant. Event listeners may perform actions that " +
+ "cause additional events to be dispatched. Such events are handled in a synchronous manner, the event " +
+ "propagation that causes the event listener to be triggered must resume only after the event dispatch " +
+ "of the new event is completed.";
+
+ test(function()
+ {
+ for (var i=0; i < CurrentTargets.length; i++)
+ {
+ CurrentTargets[i].addEventListener(EVENT, TestEvent, true);
+ CurrentTargets[i].addEventListener("bar", TestEvent, false);
+ }
+
+ var evt = document.createEvent("Event");
+ evt.initEvent(EVENT, false, true);
+ TARGET.dispatchEvent(evt);
+
+ assert_array_equals(ActualResult, ExpectResult, "ActualResult");
+ assert_equals(ActualTypes, ExpectTypes, "ActualTypes");
+
+ }, description);
+
+ function TestEvent(evt)
+ {
+ ActualResult.push(evt.currentTarget);
+ ActualTypes += evt.type + ",";
+
+ if (TABLE == evt.currentTarget && EVENT == evt.type)
+ {
+ var e = document.createEvent("Event");
+ e.initEvent("bar", true, true);
+ TARGET.dispatchEvent(e);
+ }
+ }
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/support/ProcessingInstruction.DOMCharacterDataModified.xml b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/support/ProcessingInstruction.DOMCharacterDataModified.xml
new file mode 100644
index 0000000000..4c95ae29df
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/converted/support/ProcessingInstruction.DOMCharacterDataModified.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<root>
+ <head xmlns="http://www.w3.org/1999/xhtml">
+ <title> ProcessingInstruction.data and DOMCharacterDataModified event </title>
+ </head>
+ <div id="log" xmlns="http://www.w3.org/1999/xhtml"></div>
+
+ <pi><?foo bar?></pi>
+
+ <script type="text/javascript" xmlns="http://www.w3.org/1999/xhtml">
+ <![CDATA[
+ var EVENT = "DOMCharacterDataModified";
+ var TARGET = document.getElementsByTagName('pi')[0].firstChild;
+ var TestResult = false;
+
+ TARGET.addEventListener(EVENT, TestEvent, false);
+ TARGET.data = "new" + TARGET.data;
+
+ function TestEvent(evt)
+ {
+ if ((EVENT == evt.type) && (TARGET == evt.target) && ("newbar" == evt.newValue))
+ {
+ TestResult = true;
+ }
+ else
+ {
+ TestResult = false;
+ }
+ }
+ ]]>
+ </script>
+</root> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/dispatchEvent.click.checkbox.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/dispatchEvent.click.checkbox.html
new file mode 100644
index 0000000000..757bb12646
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/dispatchEvent.click.checkbox.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title id='desc'> MouseEvent: Default action and synthetic click event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "click";
+ var TARGET;
+ var HELPER;
+
+ function TestEvent(evt)
+ {
+ if (HELPER == evt.target)
+ {
+ HELPER.removeEventListener(EVENT, TestEvent, true);
+ var e = document.createEvent("MouseEvent");
+ e.initMouseEvent(EVENT, /* type */
+ false, /* bubbles */
+ true, /* cancelable */
+ window, /* view */
+ 1, /* detail */
+ 0, /* screenX */
+ 0, /* screenY */
+ 0, /* clientX */
+ 0, /* clientY */
+ false, /* ctrlKey */
+ false, /* altKey */
+ false, /* shiftKey */
+ false, /* metaKey */
+ 0, /* button */
+ null /* relatedTarget */ );
+
+ TARGET.dispatchEvent(e);
+ }
+ else if (TARGET == evt.target)
+ {
+ if ((true == TARGET.checked) && (false == evt.bubbles))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ HELPER = document.getElementById("helper");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ HELPER.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent: Default action is performed when a synthetic click event is dispatched on a checkbox element
+ </h4>
+
+ <input type="checkbox" id="target">
+ <button id="helper">Click Here</button>
+
+ <p id="manualsteps">
+ Steps:
+ <ol>
+ <li> Click the button "Click Here"
+ </ol>
+ </p>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/error.image.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/error.image.html
new file mode 100644
index 0000000000..a629652d4f
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/error.image.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event: error </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function TestCapture(evt)
+ {
+ TARGET = document.getElementById("target");
+
+ if ((evt.type == EVENT) && (evt.currentTarget == window) && (evt.target == TARGET))
+ {
+ TestResult = true;
+ }
+ else
+ {
+ TestResult = false;
+ }
+ }
+
+ var EVENT = "error";
+ var TARGET;
+ var TestResult = false;
+
+ try
+ {
+ window.addEventListener(EVENT, TestCapture, true);
+ }
+ catch(ex)
+ {
+ TestResult = false;
+ }
+
+ window.onload = function()
+ {
+ if (true == TestResult)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>Test Description: error event fires when an IMG resource failed to load.</h4>
+
+ <img id="target" src="./support/InvalidBitMap.png" alt="ERROR">
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.html
new file mode 100644
index 0000000000..a6eb1b6638
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event: focusin </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "focusin";
+ var TARGET, PARENT;
+
+ window.onload = function()
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+
+ PARENT.addEventListener(EVENT, TestBubble, false);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestBubble(evt)
+ {
+ if ((evt.type == EVENT) && (evt.currentTarget == PARENT) && (evt.target == TARGET))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ focusin event fires when an event target is about to receive focus.
+ </h4>
+
+ <div id="parent">
+ Click here: <input id="target" />
+ </div>
+
+ <p>Test passes if the word "PASS" appears below after clicking the above textbox using mouse.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.relatedTarget.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.relatedTarget.html
new file mode 100644
index 0000000000..a36d254666
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusin.relatedTarget.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> FocusEvent.relatedTarget for focusin Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "focusin";
+ var TARGET, HELPER;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ HELPER = document.getElementById("helper");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.target == TARGET) && (evt.relatedTarget == HELPER))
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: FocusEvent.relatedTarget for focusin event is the event target losing focus.
+ </h4>
+
+ <pre>
+ <input id="helper" value="" /> <button id="target">BUTTON</button>
+
+ Steps:
+ 1) Click in the above textbox using mouse
+ 2) Then click the above button using mouse
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusout.relatedTarget.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusout.relatedTarget.html
new file mode 100644
index 0000000000..bc02267ed7
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/focusout.relatedTarget.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> FocusEvent.relatedTarget for focusout Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "focusout";
+ var TARGET, HELPER;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ HELPER = document.getElementById("helper");
+ TARGET.addEventListener("focusout", TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT && evt.relatedTarget == HELPER)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: FocusEvent.relatedTarget for focusout event is the event target receiving focus.
+ </h4>
+
+ <pre>
+ <input id="target" value="" /> <button id="helper">BUTTON</button>
+
+ Steps:
+ 1) Click in the above textbox using mouse
+ 2) Then click the above button using mouse
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.Events.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.Events.html
new file mode 100644
index 0000000000..e0c9ba18d8
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.Events.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> DOMImplementation.hasFeature() with Events, 3.0 and 2.0</title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ window.onload = function()
+ {
+ try
+ {
+ var SupportEvents3 = document.implementation.hasFeature("Events", "3.0");
+ SupportEvents3 = SupportEvents3 && document.implementation.hasFeature("Events", "");
+ var SupportEvents2 = document.implementation.hasFeature("Events", "2.0");
+
+ if (SupportEvents3 && SupportEvents2)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: Since DOM Level 3 Events is built on top of DOM Level 2 Events, an
+ implementation that returns true for "Events" and "3.0" shall also return true for the
+ parameters "Events" and "2.0".
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.feature.string.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.feature.string.html
new file mode 100644
index 0000000000..e96c39c855
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/hasFeature.feature.string.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> DOMImplementation.hasFeature() and Extended Feature String </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var szFeatures = ["Event", "UIEvent","FocusEvent","MouseEvent","WheelEvent","TextEvent",
+ "KeyboardEvent","CompositionEvent","MutationEvent","CustomEvent"];
+
+ var ExpectResult = [];
+ var ActualResult = [];
+ var supported = false;
+
+ window.onload = function()
+ {
+ try
+ {
+ supported = document.implementation.hasFeature("Events", "3.0");
+
+ for (var i=0; i<szFeatures.length; i++)
+ {
+ var szFeature = szFeatures[i];
+
+ supported = document.implementation.hasFeature(szFeature, "3.0") && supported;
+ supported = document.implementation.hasFeature(szFeature, "") && supported;
+ if (!supported)
+ {
+ break;
+ }
+ }
+
+ for (var i=0; i<szFeatures.length; i++)
+ {
+ var szFeature = "Events." + szFeatures[i];
+
+ supported = document.implementation.hasFeature(szFeature, "3.0") && supported;
+ supported = document.implementation.hasFeature(szFeature, "") && supported;
+ if (!supported)
+ {
+ break;
+ }
+ }
+
+ if (supported)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: each interface defined in DOM Level 3 Events has a feature string,
+ which may act as a base feature string or as an extended feature string.
+ </h4>
+
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/load.image.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/load.image.html
new file mode 100644
index 0000000000..19414eaf02
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/load.image.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title> W3C DOM Level 3 Event: load </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ function TestCapture(evt)
+ {
+ if (evt.target.tagName == "IMG")
+ {
+ TARGET = document.getElementById("target");
+
+ if ((evt.type == EVENT) && (evt.currentTarget == document) && (evt.target == TARGET))
+ {
+ TestResult = true;
+ }
+ else
+ {
+ TestResult = false;
+ }
+ }
+ }
+
+ var EVENT = "load";
+ var TARGET;
+ var TestResult = false;
+
+ try
+ {
+ document.addEventListener(EVENT, TestCapture, true);
+ }
+ catch(ex)
+ {
+ TestResult = false;
+ }
+
+ window.onload = function()
+ {
+ if (true == TestResult)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+
+ function ReloadPage()
+ {
+ var LINK = document.getElementById("link");
+ LINK.href = "load.image.html";
+ LINK.appendChild(document.createTextNode("Image loading error. Click here to test again."));
+ }
+ </script>
+ </head>
+ <body>
+ <h4>
+ Test Description:
+ load event fires when the DOM implementation finishes loading the resource (such as the document)
+ and any dependent resources (such as images, style sheets, or scripts).
+ </h4>
+
+ <p><a id="link" href=""></a></p>
+
+ <img id="target" src="./support/iepreview.png" width="300" height="300" onerror="ReloadPage()">
+
+ <p>Test passes if the word "PASS" appears below after the above image is loaded.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.ctrlKey.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.ctrlKey.html
new file mode 100644
index 0000000000..dac16046cf
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.ctrlKey.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MouseEvent.ctrlKey for mouseenter Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "mouseenter";
+ var TARGET;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if ((evt.type == EVENT) && (evt.ctrlKey == true))
+ {
+ TARGET.style.border = "solid 1px green";
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent.ctrlKey returns true if 'Control' key is depressed, otherwise false.
+ </h4>
+
+ <pre>
+ <img id="target" src="./support/iepreview.png" width="256" height="256" style="border:solid 1px red" />
+
+ Steps:
+ 1) Press and hold down the '{CTRL}' key
+ 2) Move the mouse pointer into the image
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.relatedTarget.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.relatedTarget.html
new file mode 100644
index 0000000000..f2d449dae8
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseenter.relatedTarget.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MouseEvent.relatedTarget for mouseenter Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "mouseenter";
+ var TARGET, PARENT;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT && evt.relatedTarget == PARENT)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent.relatedTarget for mouseenter event indicates
+ the event target a pointing device is exiting, if any.
+ </h4>
+
+ <pre>
+ <div id="parent" style="border:solid 1px green; width:350px; height:100px;">
+
+ <button id="target">BUTTON</button>
+
+ </div>
+
+ Steps:
+ 1) Move the mouse pointer into the above green rectangle
+ 2) Then move the mouse pointer onto the button
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseleave.relatedTarget.html b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseleave.relatedTarget.html
new file mode 100644
index 0000000000..37ca719750
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/mouseleave.relatedTarget.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id='desc'> MouseEvent.relatedTarget for mouseleave Event </title>
+ <script type="text/javascript">
+ var PassTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+
+ var FailTest = function()
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+
+ var EVENT = "mouseleave";
+ var TARGET, PARENT;
+
+ window.onload = function(e)
+ {
+ try
+ {
+ TARGET = document.getElementById("target");
+ PARENT = document.getElementById("parent");
+ TARGET.addEventListener(EVENT, TestEvent, true);
+ }
+ catch(ex)
+ {
+ FailTest();
+ }
+ }
+
+ function TestEvent(evt)
+ {
+ if (evt.type == EVENT && evt.relatedTarget == PARENT)
+ {
+ PassTest();
+ }
+ else
+ {
+ FailTest();
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <h3>DOM Events</h3>
+ <h4>
+ Test Description: MouseEvent.relatedTarget for mouseleave event indicates
+ the event target a pointing device is entering, if any.
+ </h4>
+
+ <pre>
+ <div id="parent" style="border:solid 1px green; width:350px; height:100px;">
+
+ <button id="target">BUTTON</button>
+
+ </div>
+
+ Steps:
+ 1) Move the mouse pointer onto the above button
+ 2) Then move the mouse pointer out of it
+ </pre>
+
+ <p>Test passes if the word "PASS" appears below after following the above steps.</p>
+ <div>Test result: </div>
+ <div id='testresult'>FAIL</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/16kb.js b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/16kb.js
new file mode 100644
index 0000000000..fb3c0d64b1
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/16kb.js
@@ -0,0 +1,140 @@
+var text =
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " +
+"This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! This is a test! " ;
+ActualResult.push("SCRIPT:loaded");
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/InvalidBitMap.png b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/InvalidBitMap.png
new file mode 100644
index 0000000000..0a15a8e10d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/InvalidBitMap.png
@@ -0,0 +1 @@
+Invalid BitMap \ No newline at end of file
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/iepreview.png b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/iepreview.png
new file mode 100644
index 0000000000..63959a0562
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/iepreview.png
Binary files differ
diff --git a/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/style01.css b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/style01.css
new file mode 100644
index 0000000000..961757bf3d
--- /dev/null
+++ b/testing/web-platform/tests/uievents/legacy-domevents-tests/submissions/Microsoft/support/style01.css
@@ -0,0 +1,3 @@
+BODY {
+ PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #eef0eb; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
+}