diff --git a/.gitignore b/.gitignore index ae640387..3be9ebd9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,21 @@ .DS_Store +.gradle +.metadata +Thumbs.db +Desktop.ini +*.tmp +*.bak +*.swp +*.class +*.jar default.properties gen assets/www/cordova.js local.properties proguard.cfg -proguard.cfg proguard-project.txt +example +/coverage /framework/lib /framework/build /framework/bin @@ -15,30 +25,23 @@ proguard-project.txt /framework/libs /framework/javadoc-public /framework/javadoc-private -/test/libs -example -/test/bin -/test/assets/www/.tmp* -/test/assets/www/cordova.js +/test/.externalNativeBuild +/test/build.gradle /test/gradle /test/gradlew /test/gradlew.bat +/test/assets/www/.tmp* +/test/assets/www/cordova.js +/test/bin /test/build -.gradle +/test/captures +/test/libs tmp/** -.metadata tmp/**/* -Thumbs.db -Desktop.ini -*.tmp -*.bak -*.swp -*.class -*.jar !/spec/fixtures/org.test.plugins.dummyplugin/src/android/TestLib.jar # IntelliJ IDEA files +**/.idea/**/* *.iml -.idea npm-debug.log node_modules/jshint node_modules/promise-matchers @@ -130,4 +133,3 @@ node_modules/wordwrap/ node_modules/yargs/ node_modules/jasmine-core/ node_modules/fs.realpath/ -/coverage diff --git a/.travis.yml b/.travis.yml index 7ad8eeae..f4734d14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,14 +9,12 @@ before_install: install: - npm install - npm install -g codecov - - echo y | android update sdk -u --filter android-22,android-23,android-24,android-25 + - echo y | android --silent update sdk --no-ui --all --filter platform-tools,tools,build-tools-26.0.0,android-26,android-25,extra-google-m2repository,extra-android-m2repository android: components: - tools - - tools script: - - npm run eslint + - npm test - npm run cover - - npm run test-build after_script: - codecov diff --git a/appveyor.yml b/appveyor.yml index 24ea88a7..f8bef7ed 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,11 +1,29 @@ environment: + ANDROID_HOME: "C:\\android" matrix: - nodejs_version: "4" - nodejs_version: "6" +init: + - mkdir "%ANDROID_HOME% + - cd "%ANDROID_HOME%" + - appveyor DownloadFile "https://dl.google.com/android/repository/tools_r25.2.3-windows.zip" + - 7z x "tools_r25.2.3-windows.zip" > nul + - cd "C:\projects\cordova-android" + install: -# - cinst android-sdk -# - echo y | android update sdk -u --filter android-22,android-23 + - choco install gradle -version 3.4.1 + - gradle -version + - echo y | "%ANDROID_HOME%\tools\android.bat" --silent update sdk --no-ui --all --filter platform-tools,tools,build-tools-26.0.0,android-26,android-25,extra-google-m2repository,extra-android-m2repository + # on windows we need to accept sublicenses for the new tooling, wee. 30 is an arbitrary number, + # but should be the maximum number of licenses we explicitly need to type "Y ENTER" for. + # also, the sdkmanager in all its glory leaks a bit of output to stderr, and powershell + # and appveyor interpret that as errors, and blows up. so, when piping in our "Y ENTER" + # responses, we invoke cmd so we can redirect stderr to stdout, and tell it to --update itself. + - ps: for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | cmd /c 'C:\android\tools\bin\sdkmanager.bat 2>&1' --update + - cd test + - gradle :wrapper -b build.gradle + - cd .. - ps: Install-Product node $env:nodejs_version - npm install @@ -14,5 +32,4 @@ build: off test_script: - node --version - npm --version - - npm run test -# - npm run test-build + - npm test diff --git a/package.json b/package.json index 5b78eb7e..574de80c 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,10 @@ "apache" ], "scripts": { - "test": "npm run eslint && jasmine", - "cover": "istanbul cover --root bin/templates/cordova --print detail jasmine", - "test-build": "jasmine --captureExceptions --color spec/e2e/*.spec.js", + "test": "npm run eslint && npm run unit-tests && npm run e2e-tests", + "unit-tests": "jasmine --config=spec/unit/jasmine.json", + "cover": "istanbul cover --root bin/templates/cordova --print detail jasmine -- --config=spec/unit/jasmine.json", + "e2e-tests": "jasmine --config=spec/e2e/jasmine.json", "eslint": "eslint bin && eslint spec" }, "author": "Apache Software Foundation", @@ -51,7 +52,7 @@ "eslint-plugin-promise": "^3.5.0", "eslint-plugin-standard": "^3.0.1", "istanbul": "^0.4.2", - "jasmine": "^2.5.2", + "jasmine": "~2.6.0", "promise-matchers": "~0", "rewire": "^2.1.3" }, diff --git a/spec/e2e/jasmine.json b/spec/e2e/jasmine.json new file mode 100644 index 00000000..49c40b2c --- /dev/null +++ b/spec/e2e/jasmine.json @@ -0,0 +1,8 @@ +{ + "spec_dir": "spec", + "spec_files": [ + "e2e/**/*[sS]pec.js" + ], + "stopSpecOnExpectationFailure": false, + "random": false +} diff --git a/spec/support/jasmine.json b/spec/unit/jasmine.json similarity index 86% rename from spec/support/jasmine.json rename to spec/unit/jasmine.json index e04f8140..4fe01a65 100644 --- a/spec/support/jasmine.json +++ b/spec/unit/jasmine.json @@ -4,5 +4,5 @@ "unit/**/*[sS]pec.js" ], "stopSpecOnExpectationFailure": false, - "random": false + "random": true } diff --git a/test/.gitignore b/test/.gitignore deleted file mode 100644 index 39fb081a..00000000 --- a/test/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/workspace.xml -/.idea/libraries -.DS_Store -/build -/captures -.externalNativeBuild