<!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>
    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <!-- Inject CSP -->
    <script type="text/javascript" src="csp-incl.js"></script>

    <title>Cordova Mobile Spec</title>
	  <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8">
	  <script type="text/javascript" charset="utf-8" src="cordova-incl.js"></script>
	  <script type="text/javascript" charset="utf-8" src="main.js"></script>
          <script type="text/javascript" charset="utf-8" src="doesnotexist/notcordova.js"></script><!-- CB-6764 -->

  </head>
  <body id="stage" class="theme">
    <h1>Apache Cordova Tests</h1>
<div id="info">cordova.version: <span id="cordova"> </span>
Platform: <span id="platform">  </span>
Version: <span id="version"> </span>
UUID: <span id="uuid">  </span>
Model: <span id="model"> </span>
Width: <span id="width">  </span>,   Height: <span id="height"></span>, Color Depth: <span id="colorDepth"></span>
User-Agent: <span id="user-agent"> </span></div>
    <a href="cdvtests/index.html#?showBack" class="btn large">Plugin Tests (Automatic and Manual)</a>
    <a href="battery/index.html" class="btn large">Battery</a>
    <a href="benchmarks/index.html" class="btn large">Benchmarks</a>
    <a href="events/index.html" class="btn large">Events</a>
    <a href="keyboard/index.html" class="btn large">Keyboard</a>
    <a href="lazyloadjs/index.html" class="btn large">Lazy Loading of cordova-incl.js</a>
    <a href="misc/index.html" class="btn large">Misc Content</a>
    <a href="sql/index.html" class="btn large">Web SQL</a>
    <a href="storage/index.html" class="btn large">Local Storage</a>
  </body>
</html>
