<!doctype html>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->
<html>
  <head>
    <!--
      Inject CSP

      If not hosted in mobilespec, the injection script will likely not
      exist.  It would be up to the hosting app to provide the named
      script to setup CSP as desired.
    -->
    <script type="text/javascript" src="../csp-incl.js"></script>

    <title>Cordova tests</title>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />

    <link rel="stylesheet" type="text/css" href="topcoat-0.7.5/css/topcoat-mobile-light.min.css">
    <link rel="stylesheet" type="text/css" href="jasmine-2.4.1/jasmine.css" media="screen">
    <link rel="stylesheet" type="text/css" href="main.css" media="screen">

    <script type="text/javascript" src="jasmine-2.4.1/jasmine.js"></script>
    <script type="text/javascript" src="jasmine-2.4.1/jasmine-html.js"></script>
    <script type="text/javascript" src="jasmine-medic.js"></script>

    <script type="text/javascript" src="../cordova.js"></script>

    <!-- App scripts -->
    <script type="text/javascript" src="main-bootstrap.js"></script>
  </head>

  <body>
    <div id='title'></div>
    <div id='middle'>
      <div id='buttons'></div>
      <div id='content'></div>
    </div>
    <div id='log'>
      <div id='log--title'>Log</div>
      <div id='log--content'></div>
    </div>
  </body>
</html>
