<html>
<head>
  <title>list-page-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="../../node_modules/native-promise-only/npo.js"></script>
  <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="bower_components/page/page.js"></script>
  <script src="bower_components/d3/d3.js"></script>
  <script src="../common/js/common.js"></script>
  <script src="../js/gold.js"></script>
  <script src="bower_components/sinonjs/sinon.js"></script>
  <script src="testdata.js"></script>
  <script>
    var server = sinon.fakeServer.create();
    server.autoRespond = true;
    server.autoRespondAfter = 1000;

    server.respondWith("GET", /\/json\/list*/, function(request) {
      request.respond(200, {"Content-Type":"application/json"},
        JSON.stringify(testdata.listTestsResult));
    });

    server.respondWith("GET", "/json/paramset", function(request) {
      request.respond(200, {"Content-Type":"application/json"},
        JSON.stringify(testdata.paramSet));
    });

  </script>

  <link rel="import" href="list-page-sk.html">

</head>
<body>
  <list-page-sk></list-page-sk>
  <script type="text/javascript" charset="utf-8">
      $$$('list-page-sk').pageSelected(new page.Context(window.location.pathname));
  </script>
</body>
</html>
