################################################################################
##
##  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.
##
################################################################################
################################################################################
# Notes: 
#  - Rename this file to local.properties and then set the relevant properties.
#    Alternatively you can invoke ./mini_sh.sh with -addAntArg=-Dprop=value
#
#  - The default SDK location is the parent directory of the mustella subdirectory.
#
#  - If you have your AIR_HOME, PLAYERGLOBAL_HOME and FLASHPLAYER_DEBUGGER
#    environment variables set either in your environment or in ../env.properties you
#    do not need to set any of these properties for the standard player test run.
#
#  - Some properties are rarely needed, so they have been left out.  e.g.
#        apollo_transform
#        apollo_transform_prefix
#        apollo_transform_prefix2
#        apollo_transform_template
#        browser_prefix
#        frameworks
#        htmlDir
#        mxmlc.exe
#        player.version
#        sdk.bin.dir
################################################################################

################################################################################
# General properties
################################################################################

#------------------------------------------------------------------------------
# This points to the Flex SDK.  It is needed if the SDK is not in the default
# location.
# It is the directory which contains bin, frameworks, lib, runtimes, etc...
#------------------------------------------------------------------------------
# sdk.dir=/Users/rv/builds/4.y/4.5.1.21307/flex_sdk_4

#------------------------------------------------------------------------------
# If you are using Windows and Mustella cannot find your Cygwin shell, set
# this.
#------------------------------------------------------------------------------
# shell=c:/myNonStandardCygwinDir/bin/sh.exe

#------------------------------------------------------------------------------
# Whether to get results from the log.  Typically leave this alone.
#------------------------------------------------------------------------------
# get_results_from_log=true

#------------------------------------------------------------------------------
# How long to wait before a test step times out.  Typically leave this alone
# unless working with mobile tests, then set to a high number such as 500000
#------------------------------------------------------------------------------
# step_timeout=999999

################################################################################
# Properties for standalone Flash Player runs
################################################################################

#------------------------------------------------------------------------------
# This is the Flash Player's directory.
# It is needed if the environment variable FLASHPLAYER_DEBUGGER is not set.
#------------------------------------------------------------------------------
# player.dir=${sdk.dir}/runtimes/player/10.2/mac/Flash Player Debugger.app/Contents/MacOS/

#------------------------------------------------------------------------------
# This is the Flash Player file.
#------------------------------------------------------------------------------
# player=${player.dir}/Flash Player Debugger

################################################################################
# Properties for browser runs
################################################################################

#------------------------------------------------------------------------------
# This indicates that it is a browser run.
#------------------------------------------------------------------------------
# use_browser=true

#------------------------------------------------------------------------------
# This is the browser to use.
#------------------------------------------------------------------------------
browser=/Applications/Firefox.app/Contents/MacOS/firefox-bin

################################################################################
# Properties for AIR runs (including AIR mobile)
################################################################################

#------------------------------------------------------------------------------
# This indicates that it is an AIR run.  AIR was originally called Apollo.
#------------------------------------------------------------------------------
# use_apollo=true

#------------------------------------------------------------------------------
# This is used to find adl, which is the desktop AIR runtime.  
# It is needed if the environment variable AIR_HOME is not set.
#------------------------------------------------------------------------------
# apollo_location=${sdk.dir}

#------------------------------------------------------------------------------
# Set this to true if you want to keep the app.xml files generated by Mustella.
#------------------------------------------------------------------------------
# keep_air=true

################################################################################
# Properties for AIR mobile runs
################################################################################

#------------------------------------------------------------------------------
# This indicates that the tests in the "mobile" directory may be run.
#------------------------------------------------------------------------------
# run_mobile_tests=true

#------------------------------------------------------------------------------
# This is used to find the packaging files for AIR iOS runs.  At the moment,
# these files are not included in the Flex SDK.
#------------------------------------------------------------------------------
# air.sdk.dir=/Users/rv/builds/AIR/2.7_wasabi/20110527_apqt1991

#------------------------------------------------------------------------------
# This is the location of the Android SDK.  At the moment, it is available
# at http://developer.android.com/sdk/index.html.  Be sure to follow the
# instructions in their Readme.txt file so that you get the adb tool.
#------------------------------------------------------------------------------
# android_sdk=/Users/rv/source/android/android-sdk-mac_86

#------------------------------------------------------------------------------
# This is the location of the AIR runtime for Android.
#------------------------------------------------------------------------------
# runtimeApk=/Users/rv/builds/AIR_Android/20110526_apwsb1947/Runtime.apk

#------------------------------------------------------------------------------
# When device_name is mac or win (ie, an emulator), this is the device
# being emulated. It matches the os property of <ConditionalValue> elements. Valid
# values include android, win, mac, and ios.
#------------------------------------------------------------------------------
#target_os_name=ios

#------------------------------------------------------------------------------
# This is the name of the device.  Currently, all Android devices are treated
# the same way, and all iOS devices are treated the same way.  This is used
# to determine the mobile OS.  It also appears in the email from a server
# run.  To get the latest list of values, see qa/src/utils/MobileUtil.java.
# Note that using "mac" or "win" will allow running mobile tests on the desktop.
#------------------------------------------------------------------------------
# device_name=mac
# device_name=win
# device_name=Android
# device_name=android
# device_name=playbook
# device_name=desire
# device_name=droid
# device_name=droid2
# device_name=droidx
# device_name=droidPro
# device_name=nexusOne
# device_name=evo
# device_name=incredible
# device_name=xoom
# device_name=iPad
# device_name=iPad2
# device_name=iPodTouch3GS
# device_name=iPodTouch4G

#------------------------------------------------------------------------------
# These are parameters passed to adl to mimic mobile devices when running
# mobile tests on the desktop. The XscreenDPI value will match to the 
# deviceDensity attribute of <ConditionalValue> statements.
#------------------------------------------------------------------------------
# adl_extras=-screensize 320x455:320x480 -profile mobileDevice -XscreenDPI 160
# adl_extras=-screensize 640x960:640x960 -profile mobileDevice -XscreenDPI 240
# adl_extras=-screensize 640x960:640x960 -profile mobileDevice -XscreenDPI 320
# adl_extras=-screensize 640x960:640x960 -profile mobileDevice -XscreenDPI 480

#------------------------------------------------------------------------------
# These are iOS packaging options.  The default is ipa-debug.
#------------------------------------------------------------------------------
# adt_target=ipa-test
# adt_target=ipa-debug
# adt_target=ipa-ad-hoc
# adt_target=ipa-app-store
# adt_target=ipa-test-interpreter
# adt_target=ipa-debug-interpreter

#------------------------------------------------------------------------------
# This will make iOS packaging use the interpreter.
#------------------------------------------------------------------------------
# adt_interpreter=true

#------------------------------------------------------------------------------
# On Android, this is whether to install the AIR Runtime (Runtime.apk).
# On iOS, this is whether to remove existing apps before installing.
# This defaults to true, and it is highly advised to leave it alone.
#------------------------------------------------------------------------------
# clean_devices=true

#------------------------------------------------------------------------------
# This is the IP address of your QNX (Playbook) device.  Mustella gets this
# for you on Windows.
#------------------------------------------------------------------------------
# qnx_device_ip=169.254.0.1

#------------------------------------------------------------------------------
# These are various user and password settings for your QNX device.
#------------------------------------------------------------------------------
# qnx_device_password=root
# qnx_cmdline_user=root
# qnx_cmdline_password=root

#------------------------------------------------------------------------------
# This is the QNX SDK directory.
#------------------------------------------------------------------------------
# qnx_sdk_dir=/Users/rv/QNXStuff/blackberry-tablet-sdk-1.0.1-toolsOnly.201103232011/qnxtools

################################################################################
# Properties for server runs
################################################################################

#------------------------------------------------------------------------------
# This is the account used for ftp.
#------------------------------------------------------------------------------
#realUser=

#------------------------------------------------------------------------------
# This is the sdkbuild account's password.  It is not listed because it changes
# every 90 days.
#------------------------------------------------------------------------------
#realPwd=

#------------------------------------------------------------------------------
# On iOS, this is how many threads to use for packaging.  Defaults to 1.
#------------------------------------------------------------------------------
# concurrent_packagers=4

#------------------------------------------------------------------------------
# This is an arbitrary string which can be inserted at the beginning of the
# email message.
#------------------------------------------------------------------------------
# subtitle=Using AIR 20110605_apqt1999, interpreter used
