mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-22 00:32:55 +08:00
Merge branch 'master' into StudioProjectCompat, fixing conflicts, need
to re-add previous PR fix on the branch
This commit is contained in:
commit
6cf6e20d2e
1
.eslintignore
Normal file
1
.eslintignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
bin/templates/project/assets/www/cordova.js
|
6
bin/templates/cordova/lib/emulator.js
vendored
6
bin/templates/cordova/lib/emulator.js
vendored
@ -207,11 +207,11 @@ module.exports.best_image = function () {
|
|||||||
|
|
||||||
var closest = 9999;
|
var closest = 9999;
|
||||||
var best = images[0];
|
var best = images[0];
|
||||||
var project_target = check_reqs.get_target().replace('android-', '');
|
var project_target = parseInt(check_reqs.get_target().replace('android-', ''));
|
||||||
for (var i in images) {
|
for (var i in images) {
|
||||||
var target = images[i].target;
|
var target = images[i].target;
|
||||||
if (target) {
|
if (target && target.indexOf('API level') > -1) {
|
||||||
var num = target.split('(API level ')[1].replace(')', '');
|
var num = parseInt(target.split('(API level ')[1].replace(')', ''));
|
||||||
if (num === project_target) {
|
if (num === project_target) {
|
||||||
return images[i];
|
return images[i];
|
||||||
} else if (project_target - num < closest && project_target > num) {
|
} else if (project_target - num < closest && project_target > num) {
|
||||||
|
@ -41,12 +41,12 @@ allprojects {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//This replaces project.properties
|
//This replaces project.properties w.r.t. build settings
|
||||||
project.ext {
|
project.ext {
|
||||||
defaultBuildToolsVersion="25.0.2" //String
|
defaultBuildToolsVersion="25.0.2" //String
|
||||||
defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
|
defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
|
||||||
defaultTargetSdkVersion=25 //Integer - We ALWAYS target the latest by default
|
defaultTargetSdkVersion=26 //Integer - We ALWAYS target the latest by default
|
||||||
defaultCompileSdkVersion=25 //Integer - We ALWAYS compile with the latest by default
|
defaultCompileSdkVersion=26 //Integer - We ALWAYS compile with the latest by default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
"author": "Apache Software Foundation",
|
"author": "Apache Software Foundation",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"android-versions": "^1.2.0",
|
"android-versions": "^1.2.1",
|
||||||
"cordova-common": "^2.1.0",
|
"cordova-common": "^2.1.0",
|
||||||
"elementtree": "0.1.6",
|
"elementtree": "0.1.6",
|
||||||
"nopt": "^3.0.1",
|
"nopt": "^3.0.1",
|
||||||
@ -38,6 +38,7 @@
|
|||||||
"shelljs": "^0.5.3"
|
"shelljs": "^0.5.3"
|
||||||
},
|
},
|
||||||
"bundledDependencies": [
|
"bundledDependencies": [
|
||||||
|
"android-versions",
|
||||||
"cordova-common",
|
"cordova-common",
|
||||||
"elementtree",
|
"elementtree",
|
||||||
"nopt",
|
"nopt",
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var emu = require('../../bin/templates/cordova/lib/emulator');
|
var emu = require('../../bin/templates/cordova/lib/emulator');
|
||||||
|
var check_reqs = require('../../bin/templates/cordova/lib/check_reqs');
|
||||||
var superspawn = require('cordova-common').superspawn;
|
var superspawn = require('cordova-common').superspawn;
|
||||||
var Q = require('q');
|
var Q = require('q');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
@ -156,4 +157,68 @@ describe('emulator', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe('best_image', function () {
|
||||||
|
var avds_promise;
|
||||||
|
var target_mock;
|
||||||
|
beforeEach(function () {
|
||||||
|
avds_promise = Q.defer();
|
||||||
|
spyOn(emu, 'list_images').and.returnValue(avds_promise.promise);
|
||||||
|
target_mock = spyOn(check_reqs, 'get_target').and.returnValue('android-26');
|
||||||
|
});
|
||||||
|
it('should return undefined if there are no defined AVDs', function (done) {
|
||||||
|
avds_promise.resolve([]);
|
||||||
|
emu.best_image().then(function (best_avd) {
|
||||||
|
expect(best_avd).toBeUndefined();
|
||||||
|
}).fail(function (err) {
|
||||||
|
expect(err).toBeUndefined();
|
||||||
|
}).fin(done);
|
||||||
|
});
|
||||||
|
it('should return the first available image if there is no available target information for existing AVDs', function (done) {
|
||||||
|
var fake_avd = { name: 'MyFakeAVD' };
|
||||||
|
var second_fake_avd = { name: 'AnotherAVD' };
|
||||||
|
avds_promise.resolve([fake_avd, second_fake_avd]);
|
||||||
|
emu.best_image().then(function (best_avd) {
|
||||||
|
expect(best_avd).toBe(fake_avd);
|
||||||
|
}).fail(function (err) {
|
||||||
|
expect(err).toBeUndefined();
|
||||||
|
}).fin(done);
|
||||||
|
});
|
||||||
|
it('should return the first AVD for the API level that matches the project target', function (done) {
|
||||||
|
target_mock.and.returnValue('android-25');
|
||||||
|
var fake_avd = { name: 'MyFakeAVD', target: 'Android 7.0 (API level 24)' };
|
||||||
|
var second_fake_avd = { name: 'AnotherAVD', target: 'Android 7.1 (API level 25)' };
|
||||||
|
var third_fake_avd = { name: 'AVDThree', target: 'Android 8.0 (API level 26)' };
|
||||||
|
avds_promise.resolve([fake_avd, second_fake_avd, third_fake_avd]);
|
||||||
|
emu.best_image().then(function (best_avd) {
|
||||||
|
expect(best_avd).toBe(second_fake_avd);
|
||||||
|
}).fail(function (err) {
|
||||||
|
expect(err).toBeUndefined();
|
||||||
|
}).fin(done);
|
||||||
|
});
|
||||||
|
it('should return the AVD with API level that is closest to the project target API level, without going over', function (done) {
|
||||||
|
target_mock.and.returnValue('android-26');
|
||||||
|
var fake_avd = { name: 'MyFakeAVD', target: 'Android 7.0 (API level 24)' };
|
||||||
|
var second_fake_avd = { name: 'AnotherAVD', target: 'Android 7.1 (API level 25)' };
|
||||||
|
var third_fake_avd = { name: 'AVDThree', target: 'Android 99.0 (API level 134)' };
|
||||||
|
avds_promise.resolve([fake_avd, second_fake_avd, third_fake_avd]);
|
||||||
|
emu.best_image().then(function (best_avd) {
|
||||||
|
expect(best_avd).toBe(second_fake_avd);
|
||||||
|
}).fail(function (err) {
|
||||||
|
expect(err).toBeUndefined();
|
||||||
|
}).fin(done);
|
||||||
|
});
|
||||||
|
it('should not try to compare API levels when an AVD definition is missing API level info', function (done) {
|
||||||
|
avds_promise.resolve([ { name: 'Samsung_S8_API_26',
|
||||||
|
device: 'Samsung S8+ (User)',
|
||||||
|
path: '/Users/daviesd/.android/avd/Samsung_S8_API_26.avd',
|
||||||
|
abi: 'google_apis/x86',
|
||||||
|
target: 'Android 8.0'
|
||||||
|
}]);
|
||||||
|
emu.best_image().then(function (best_avd) {
|
||||||
|
expect(best_avd).toBeDefined();
|
||||||
|
}).fail(function (err) {
|
||||||
|
expect(err).toBeUndefined();
|
||||||
|
}).fin(done);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user