<html>
<head>
  <title>version-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="/res/common/js/common.js"></script>
  <script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <link rel=import href="version-sk.html">
  <script type="text/javascript" charset="utf-8">
    // Mock out sk.get() to return fake version info.
    var version = "cdd4d5c94e3908e8d73f81f0dd03ecbc9c9bb474";
    var nextVersion = "540901a02a6d73955e956a7b1bfca66b09a1b7f1";

    function getVersion() {
      return version;
    }

    sk.get = function(url) {
      return new Promise(function (resolve, reject) {
        resolve('{"commit":"' + getVersion() + '","date":"2015-09-28T10:15:48-04:00"}');
      });
    };

    setTimeout(function() {
      version = nextVersion;
    }, 1000);
  </script>
</head>
<body>
  <h1>version-sk demo</h1>
  <version-sk></version-sk>
</body>
</html>
