<!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>