<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Jasmine Spec Runner</title>

    <!-- generate script tags for tests -->
    <% var generateScriptTags = function(allScripts) { allScripts.forEach(function(script){ %>
        <script src="<%= script %>"></script>
    <% }); }; %>

    <!-- generate script tags for tests -->
    <% var toArray = function(scripts) {
        %>[<%
        scripts.forEach(function(scriptUrl, index){
            %>"<%= scriptUrl %>"<%
            if (index !== scripts.length -1) {
                %>,<%
            }
        });
        %>]<%
        }; %>

    <!-- for each test, generate CSS/LESS link tags -->
    <% scripts.src.forEach(function(fullLessName) {
      var pathParts = fullLessName.split('/');
      var fullCssName = fullLessName.replace(/less/g, 'css');
      var lessName = pathParts[pathParts.length - 1];
      var name = lessName.split('.')[0]; %>
      <!-- the tags to be generated -->
      <link id="original-less:test-less-<%= name %>" title="test-less-<%= name %>" rel="stylesheet/less" type="text/css" href="<%= fullLessName %>">
      <link id="expected-less:test-less-<%= name %>" rel="stylesheet" type="text/css" href="<%= fullCssName %>">
    <% }); %>

    <!-- generate grunt-contrib-jasmine link tags -->
    <% css.forEach(function(style){ %>
      <link rel="stylesheet" type="text/css" href="<%= style %>">
    <% }) %>

    <script>

        function loadScript(url,callback){
            var script = document.createElement('script');

            if(document.documentMode === 8){
                script.onreadystatechange = function(){
                    if (script.readyState === 'loaded'){
                        if (callback){callback()};
                    };
                };
            } else {
                script.onload = function(){
                    if (callback){callback()};
                };
            };
            script.src = url;
            document.body.appendChild(script);
        };


        // allow sauce to query for the jasmine report
        // because we have to load the page before starting the test, so the thing
        // sauce queries for might not be setup yet
        window.jasmine = { getJSReport: function() { } };
        setTimeout(function() {
            var jasmine = <% toArray([].concat(scripts.polyfills, scripts.jasmine, scripts.boot)) %>,
                helpers = <% toArray(scripts.helpers) %>,
                vendor = <% toArray(scripts.vendor) %>,
                specs = <% toArray(scripts.specs) %>,
                reporters = <% toArray([].concat(scripts.reporters)) %>,
                allScripts = jasmine.concat(helpers).concat(vendor).concat(specs).concat(reporters);

            function addNextScript() {
                // for sauce, see above. Additional step needed between loading jasmine and loading
                // the js reporter
                if (!jasmine.getJSReport) {
                    jasmine.getJSReport = function() {};
                }
                if (allScripts.length) {
                    var scriptSrc = allScripts.shift();
                    loadScript(scriptSrc, addNextScript);
                } else {
                    window.onload();
                }
            }
            addNextScript();

        },1000);
    </script>
  </head>

  <body>
  <!-- content -->
  </body>
</html>
