<?xml version="1.0" encoding="UTF-8"?>
<!--
    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.
-->

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    xmlns:rim="http://www.blackberry.com/ns/widgets"
    xmlns:android="http://schemas.android.com/apk/res/android"
    id="cordova-plugin-test-framework"
    version="2.0.0-dev">
    <name>Test Framework</name>
    <description>Cordova Test Framework Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,test</keywords>

    <!-- <dependency id="org.apache.cordova.appsettings" /> -->

    <js-module src="www/tests.js" name="cdvtests" />
    <js-module src="www/jasmine_helpers.js" name="jasmine_helpers" />
    <js-module src="www/medic.js" name="medic" />
    <js-module src="www/main.js" name="main" />

    <asset src="www/assets" target="cdvtests" />

    <platform name="ios">
        <config-file target="config.xml" parent="/*">
            <preference name="scheme" value="app" />
            <preference name="hostname" value="localhost" />
        </config-file>
    </platform>
</plugin>
