Moved MS test to github #426
diff --git a/tests/submission/Microsoft/ResourceTiming/test_resource_timing.htm b/tests/submission/Microsoft/ResourceTiming/test_resource_timing.htm
deleted file mode 100644
index cb77d7a..0000000
--- a/tests/submission/Microsoft/ResourceTiming/test_resource_timing.htm
+++ /dev/null
@@ -1,357 +0,0 @@
-<!DOCTYPE html>

-<html>

-    <head>

-        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

-        <title>window.performance Resource Timing Entries exist</title>

-        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />

-        <link rel="help" href="http://w3c-test.org/webperf/specs/ResourceTiming/"/>

-        

-        <script src="/resources/testharness.js"></script>

-        <script src="/resources/testharnessreport.js"></script>

-        <script src="/webperf/tests/resources/webperftestharness.js"></script>

-        <link rel="stylesheet" href="/resources/testharness.css" />

-        

-        <script type="text/javascript">

-        var URL_PREFIX = "http://w3c-test.org/webperf/tests/resources/";

-        var TEST_TIMEOUT = 30 * 1000;   //Test will timeout in 30 seconds

-        var TEST_ALLOWED_TIMING_DELTA = 20;

-

-        var waitTimer;

-        var expectedEntries = new Array();

-

-        var initiatorTypes = ["iframe", "img", "link", "script", "xmlhttprequest"];

-        

-        setup({timeout:TEST_TIMEOUT + 1000, explicit_done: true});

-        

-        test_namespace();

-

-        /*=====================================================================

-        // Object entry

-        // Object representing an expected entry on the page. 

-        =====================================================================*/

-        function entry(name, startTime, initiatorType)

-        {

-            this.name = name;

-            this.startTime = startTime;

-            this.initiatorType = initiatorType;

-        };

-

-        /*=====================================================================

-        // function get_now()

-        // Returns a (high-res if possible) timestamp as a delta from 

-        // navigationStart

-        =====================================================================*/

-        function get_now()

-        {

-            if (window.performance.now !== undefined)

-            {

-                return window.performance.now();

-            }

-            else

-            {

-                return (new Date() - window.performance.timing.navigationStart);

-            }

-        }

-

-        /*=====================================================================

-        // function onload_test

-        // Main entry point to test.  This will add all of the test resources

-        // to the page.  For resources which will not fire an onload event,

-        // an entry object is created here. 

-        =====================================================================*/

-        function onload_test()

-        {

-            // check that the Performance Timeline API exists

-            test_true(window.performance.getEntriesByName !== undefined, 

-                      "window.performance.getEntriesByName() is defined");

-            test_true(window.performance.getEntriesByType !== undefined, 

-                      "window.performance.getEntriesByType() is defined");

-            test_true(window.performance.getEntries !== undefined, 

-                      "window.performance.getEntries() is defined");

-            

-            //Early bail out if Performance Timeline APIs do not exist

-            if (window.performance.getEntriesByName == undefined || 

-                window.performance.getEntriesByType == undefined ||

-                window.performance.getEntries == undefined)

-            {

-                VerifyTest();

-            }

-            else

-            {

-                // initialize expected entries array

-                expectedEntries = new Array();

-

-                // add elements to the page.  We do this here so that we can

-                // control the start time for validation later

-                for (var type in initiatorTypes)

-                {

-                    var startTime = get_now();

-                    var element = document.createElement(initiatorTypes[type]);

-

-                    switch (initiatorTypes[type])

-                    {

-                        case "iframe":

-                            element.src = URL_PREFIX + "resource_timing_test0.htm";

-                            break;

-                        case "img":

-                            element.src = URL_PREFIX + "resource_timing_test0.png";

-                            break;

-                        case "link":

-                            element.rel = "Stylesheet";

-                            element.type = "text/css";

-                            element.href = URL_PREFIX + "resource_timing_test0.css";

-                            break;

-                        case "script":

-                            element.type = "text/javascript";

-                            element.src = URL_PREFIX + "resource_timing_test0.js";

-                            break;

-                        case "xmlhttprequest":

-                            element = document.createElement("div");

-                            element.innerHTML = "";

-                            var xmlhttp = new XMLHttpRequest();

-                            xmlhttp.open('GET', URL_PREFIX + "resource_timing_test0.xml", false);

-                            xmlhttp.send();

-                            element.innerText = xmlhttp.responseText;

-                            expectedEntries.push(new entry(URL_PREFIX + "resource_timing_test0.xml",

-                                                 startTime, 

-                                                 "xmlhttprequest"));

-                            document.getElementById("xmlhttprequest").appendChild(element);

-                            break;

-                    }

-

-                    element.setAttribute("onload", "resource_load(event, " + startTime + ")");

-                    document.getElementById(initiatorTypes[type]).appendChild(element);

-                }

-            }

-        }

-

-        /*=====================================================================

-        // function resource_load()

-        // Onload event handler for added test resources.

-        // This will create a new entry object for validation.

-        =====================================================================*/

-        function resource_load(event, startTime)

-        {

-            var x = event.target || event.srcElement;

-            var type;

-            switch (x.localName)

-            {

-                case "css":

-                    type = "link";

-                    break;

-                case "iframe":

-                    type = "subdocument";

-                    break;

-                default:

-                    type = x.localName

-            }

-            expectedEntries.push(new entry((x.href || x.src), 

-                                (startTime == undefined ? 0 : startTime), //use earliest possible time if not defined

-                                 type));

-

-            //Check if we have loaded all of our defined initiators.

-            //Validate the test if they are all present, otherwise set the

-            //test timeout timer.

-            if (expectedEntries.length == initiatorTypes.length)

-            {

-                clearTimeout(waitTimer);

-                validate();

-                done();

-            }

-            else

-            {

-                clearTimeout(waitTimer);

-                waitTimer = setTimeout(timeout_test, TEST_TIMEOUT);

-            }

-        }

-

-        /*=====================================================================

-        // function timeout_test()

-        // If TEST_TIMEOUT time has elapsed since the last onload event handler

-        // has fired, then we will fail the rest of the test to avoid appearing

-        // hung.

-        =====================================================================*/

-        function timeout_test()

-        {

-            test_true(false, "All expected resources did not load within a " +

-                             "test timeout of " + TEST_TIMEOUT + "ms" +

-                             "Only a subset of the tests will execute.");

-            done();

-        }

-

-        /*=====================================================================

-        // function validate()

-        // Verifies that each of the expected entry objects are discoverable

-        // in the Performance Timeline via getEntriesByName('name') and

-        // getEntriesByName('name', 'resource') and that their data is correct.

-        =====================================================================*/

-        function validate()

-        {

-            for (var i in expectedEntries)

-            {

-                var name = expectedEntries[i].name;

-                var entriesByName = window.performance.getEntriesByName(name);

-                test_equals(entriesByName.length, 1,

-                            "window.performance.getEntriesByName(\"" + 

-                            name.replace(URL_PREFIX, "http://.../") + "\") " +

-                            "returns a PerformanceEntry object");

-                

-                if (entriesByName.length == 1)

-                {

-                    test_entry(expectedEntries[i], entriesByName[0]);

-

-                    var entriesByNameWithType = window.performance.getEntriesByName(name, "resource");

-                    test_true(is_same_object(entriesByName[0], entriesByNameWithType[0]),

-                              "PerformanceEntry object is the same when calling via getEntriesByName(\"" + 

-                              name.replace(URL_PREFIX, "http://.../") + "\") and getEntriesByName(\"" + 

-                              name.replace(URL_PREFIX, "http://.../") + "\", 'resource')");

-                }

-            }

-        }

-

-        /*=====================================================================

-        // function is_same_object()

-        // Validates whether obj1 has the same property values as obj2.

-        =====================================================================*/

-        function is_same_object(obj1, obj2)

-        {

-             for (var prop in obj1)

-             {

-                 if (obj1[prop] != obj2[prop])

-                 {

-                     return false;

-                 }

-             }

-             return true;

-        }

-

-        /*=====================================================================

-        // function test_entry

-        // Validates an expected entry object against a recorded Performance 

-        // Entry object; This checks that the name and initiatorType match, 

-        // that the entryType is "resource", the startTime is within 

-        // TEST_ALLOWED_TIMING_DELTA of the expected startTime, the duration

-        // is calculated from responseEnd to startTime, invalid timing 

-        // properties are either 0 or undefined, and the timing attributes are

-        // in the correct order.

-        =====================================================================*/

-        function test_entry(expectedEntry, actualEntry)

-        {

-            var entryDetails =  "Name: Expected= '" + expectedEntry.name +

-                                "' | Actual= '" + actualEntry.name + "'<br/>" +

-                                "InitiatorType: Expected= '" + expectedEntry.initiatorType +

-                                "' | Actual= '" + actualEntry.initiatorType + "'<br/>" +

-                                "EntryType: Expected= 'resource'" +

-                                "' | Actual= '" + actualEntry.entryType + "'<br/>" +

-                                "StartTime: Expected= " + expectedEntry.startTime +

-                                " | Actual= " + actualEntry.startTime + "<br/>" +

-                                "Duration: Expected= " + (actualEntry.responseEnd - actualEntry.startTime) +

-                                " | Actual= " + actualEntry.duration + "<br/>";

-

-            var pass =  (expectedEntry.name == actualEntry.name) &&

-                        (expectedEntry.initiatorType == actualEntry.initiatorType) &&

-                        (actualEntry.entryType == "resource") &&

-                        (Math.abs(actualEntry.startTime - expectedEntry.startTime) < TEST_ALLOWED_TIMING_DELTA) &&

-                        (actualEntry.duration == (actualEntry.responseEnd - actualEntry.startTime));

-                      

-            (pass) ? test_true(true, 

-                               "PerformanceEntry returned by window.performance.getEntriesByName(\"" + 

-                               actualEntry.name.replace(URL_PREFIX, "http://.../") + "\") has correct name, " + 

-                               "initiatorType, startTime, and duration.")

-                     :

-                     test_true(false,

-                               "PerformanceEntry returned by window.performance.getEntriesByName(\"" + 

-                               actualEntry.name.replace(URL_PREFIX, "http://.../") + "\") has correct name, " + 

-                               "initiatorType, startTime, and duration.<br/>" +

-                               entryDetails);

-                               

-            // validate timeline

-            var timelineDetails =   "domainLookupStart >= fetchStart: " + 

-                                    actualEntry.domainLookupStart + " >= " + actualEntry.fetchStart + "<br/>" +

-                                    "domainLookupEnd >= domainLookupStart: " +

-                                    actualEntry.domainLookupEnd + " >= " + actualEntry.domainLookupStart + "<br/>" +

-                                    "connectStart >= domainLookupEnd: " +

-                                    actualEntry.connectStart + " >= " + actualEntry.domainLookupEnd + "<br/>" +

-                                    "connectEnd >= connectStart: " +

-                                    actualEntry.connectEnd + " >= " + actualEntry.connectStart + "<br/>" +

-                                    "requestStart >= connectEnd: " +

-                                    actualEntry.requestStart + " >= " + actualEntry.connectEnd + "<br/>" +

-                                    "responseStart >= requestStart: " +

-                                    actualEntry.responseStart + " >= " + actualEntry.requestStart + "<br/>" +

-                                    "responseEnd >= responseStart: " +

-                                    actualEntry.responseEnd + " >= " + actualEntry.responseStart + "<br/>";

-                               

-            pass =  (actualEntry.redirectStart == 0) &&

-                    (actualEntry.redirectEnd == 0) &&

-                    (actualEntry.secureConnectionStart == undefined) &&

-                    validate_timeline(actualEntry);

-                    

-            (pass) ? test_true(true, 

-                               "PerformanceEntry returned by window.performance.getEntriesByName(\"" + 

-                               actualEntry.name.replace(URL_PREFIX, "http://.../") + "\") has correct order of " + 

-                               "timing attributes.")

-                     :

-                     test_true(false,

-                               "PerformanceEntry has correct name, initiatorType, " +

-                               actualEntry.name.replace(URL_PREFIX, "http://.../") + "\") has correct order of " + 

-                               "timing attributes.<br/>" +

-                               timelineDetails);

-        }

-

-        /*=====================================================================

-        // function validate_timeline

-        // Verifies that the timing attributes of the test entry are in the

-        // correct order.

-        =====================================================================*/

-        function validate_timeline(entry)

-        {

-            return ((entry.domainLookupStart >= entry.fetchStart) &&

-                    (entry.domainLookupEnd >= entry.domainLookupStart) &&

-                    (entry.connectStart >= entry.domainLookupEnd) &&

-                    (entry.connectEnd >= entry.connectStart) &&

-                    (entry.requestStart >= entry.connectEnd) &&

-                    (entry.responseStart >= entry.requestStart) &&

-                    (entry.responseEnd >= entry.responseStart));

-        }

-    </script>

-

-    </head>

-    <body onload="onload_test();">

-        <h1>Description</h1>

-        <p>This test validates that Resource Timing entries for resources 

-           loaded on a page exist in the Performance Timeline.  

-           <br />

-           Resources for the following initiators are used: iframe, img, link, script, xml.

-           <br />

-           NOTE: Due to caching behavior in the browser, it is possible that when revisiting this page, some resources 

-           may not have to be fetched from the network.  As a result, the performance timeline will not contain entries 

-           for these resources. This test will fail if any entries are missing to ensure that all resources are fetched 

-           from the network and entries for these resources exist in the Performance Timeline.  If revisiting this page,

-           please either perform a full reload of the page or clear the cache between visits.  In Internet Explorer 10, 

-           a full reload is performed via the keyboard shortcut: ctrl + F5.

-        </p>

-

-        <div id="log"></div>

-        

-        <div style="visibility:hidden">

-        <table id="resources">

-            <thead>

-                <tr>

-                    <th>iframe</th>

-                    <th>img</th>

-                    <th>link</th>

-                    <th>script</th>

-                    <th>XMLHttpRequest</th>

-                </tr>

-            </thead>

-            <tr>

-                <td id="iframe"></td>

-                <td id="img"></td>

-                <td id="link"><div id="resource_link_css">div with test css</div></td>

-                <td id="script"></td>

-                <td id="xmlhttprequest"></td>

-            </tr>

-        </table>

-        </div>

-    </body>

-</html>