<!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, maximum-scale=1.0" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
    
    <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.js"></script>
	<script type="text/javascript" charset="utf-8" src="main.js"></script>
  </head>
  
  <body onload="init();" id="stage" class="theme">
    <h1>Apache Cordova Tests</h1>
    <div id="info">
        <h4>Platform: <span id="platform">  </span></h4>
        <h4>Version: <span id="version"> </span></h4>
        <h4>UUID: <span id="uuid">  </span></h4>
        <h4>Name: <span id="name"> </span></h4>
        <h4>Model: <span id="model"> </span></h4>
        <h4>Width: <span id="width">  </span>,   Height: <span id="height"> 
                   </span>, Color Depth: <span id="colorDepth"></span></h4>
        <h4>User-Agent: <span id="user-agent"> </span></h4>
    </div>
    <a href="autotest/index.html" class="btn large">Automatic Test</a>
    <a href="accelerometer/index.html" class="btn large">Accelerometer</a>
    <a href="audio/index.html" class="btn large">Audio Play/Record</a>
    <a href="battery/index.html" class="btn large">Battery</a>
    <a href="camera/index.html" class="btn large">Camera</a>
    <a href="compass/index.html" class="btn large">Compass</a>
    <a href="contacts/index.html" class="btn large">Contacts</a>
    <a href="events/index.html" class="btn large">Events</a>
    <a href="location/index.html" class="btn large">Location</a>
    <a href="lazyloadjs/index.html" class="btn large">Lazy Loading of cordova.js</a>
    <a href="misc/index.html" class="btn large">Misc Content</a>
    <a href="network/index.html" class="btn large">Network</a>
    <a href="notification/index.html" class="btn large">Notification</a>
    <a href="splashscreen/index.html" class="btn large">Splashscreen</a>
    <a href="sql/index.html" class="btn large">Web SQL</a>
    <a href="storage/index.html" class="btn large">Local Storage</a>
    <a href="benchmarks/index.html" class="btn large">Benchmarks</a>
    <a href="inappbrowser/index.html" class="btn large">In App Browser</a>
  </body>
</html>
