language: objective-c
# xcode 6 still "Invalid Device State"
osx_image: xcode7
node_js:
  - "0.10"
before_install:
  - xcrun simctl list
  - instruments -s devices
#  - export EMU_TARGET=$(cordova emulate ios --list | grep iPhone-5s | cut -f 2 | head -n 1)
#  - export ANDROID_HOME=$PWD/android-sdk-macosx
#  - export ANDROID_SDK=$ANDROID_HOME
#  - export PATH=$(pwd)/node_modules/.bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${PATH}
  - export PATH=$(pwd)/node_modules/.bin:${PATH}
  - export NODE_PATH=$(pwd)/node_modules:$(pwd)/node_modules/cordova/node_modules:$NODE_PATH
# TODO: install android sdk
install:
  - (if [ ! -d node_modules ] ; then npm install ; fi)
# xcode version 0.8.0 is not compatible with node 4.x and later
#  - find node_modules -type d -name xcode
#  - find node_modules -type d -name xcode | grep node_modules/xcode | xargs rm -rf
#  - npm install xcode
#  - (if [ ! -d cordova-lib/cordova-lib ] ; then git clone https://github.com/apla/cordova-lib -b patch-1 ; fi)
#  - npm install ./cordova-lib/cordova-lib
#  - rm -rf node_modules/cordova/node_modules/cordova-lib
  - (if [ -d app-preferences-app ] ; then rm -rf app-preferences-app ; fi)
#  - pwd
#  - ls -la
#  - ls -la node_modules
#  - ls -la node_modules/.bin
  - cordova create app-preferences-app
script:
# testing basic functionality of preference generator
  - echo running jasmine test
  - cd bin
  - pwd
  - jasmine
  - cd ..
# let's create cordova app, add and remove plugin a few times
  - echo test plugin within cordova app
  - cd app-preferences-app
  - cordova platform add ios@3.9.2 android
  - cordova plugin add cordova-plugin-device
  - cordova plugin add https://github.com/apla/me.apla.cordova.app-preferences
  - (if [ ! -f app-settings.json ]; then exit 0; fi)
  - cp plugins/cordova-plugin-app-preferences/src/test.js www/js/apppreferences-test.js
  - patch -p0 -i plugins/cordova-plugin-app-preferences/src/test.patch
  - cordova prepare
  - (cordova build --emulator ios > /dev/null)
  - node ../bin/test-server.js ios
  - echo plugin must be ok without platforms installed
  - cordova platform rm android
  - cordova prepare
  - cordova platform rm ios
  - cordova -d platform add android
  - echo check for UIWebView
  - cordova platform add ios
  - cordova prepare
  - (cordova build --emulator ios > /dev/null)
  - node ../bin/test-server.js ios
  - (android list avd && cordova build --emulator android > /dev/null || exit 0)
  - (android list avd && node ../bin/test-server.js android circleci-android22 || exit 0)
  - cordova platform add browser
  - cordova prepare
  - cordova build --emulator browser
  - node ../bin/test-server.js browser
  - echo plugin can be uninstalled
  - cordova plugin rm cordova-plugin-app-preferences
  - cordova plugin add https://github.com/apla/me.apla.cordova.app-preferences
  - cordova prepare
  - echo plugin must not rewrite existing Settings.bundle generated by external tool
  - rm platforms/ios/Settings.bundle/.me.apla.apppreferences
  - (! cordova prepare)
  - touch platforms/ios/Settings.bundle/.me.apla.apppreferences
  - cordova prepare
  - echo plugin must cleanup after remove
  - cordova plugin rm cordova-plugin-app-preferences
  - (if [ ! -d platforms/ios/Settings.bundle ]; then exit 0 ; fi)
  - cordova plugin add https://github.com/apla/me.apla.cordova.app-preferences
  - cordova prepare
  - echo plugin must not rewrite existing Settings.bundle generated by external tool
  - rm platforms/ios/Settings.bundle/.me.apla.apppreferences
  - cordova plugin rm cordova-plugin-app-preferences
  - (if [ -f platforms/ios/Settings.bundle/Root.plist ]; then exit 0 ; fi)
  - cordova plugin add https://github.com/apla/me.apla.cordova.app-preferences
  - cordova plugin add cordova-plugin-console
  - touch platforms/ios/Settings.bundle/.me.apla.apppreferences
# prepare and launch ios simulator to test preferences access on ios
  - cordova -d prepare
after_script:
  - cd ..
  - echo rm -rf node_modules
  - echo rm -rf app-preferences-app


