2016-02-17 21:37:58 +08:00
|
|
|
/**
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
|
2022-04-18 09:39:54 +08:00
|
|
|
const os = require('os');
|
|
|
|
const path = require('path');
|
|
|
|
const common = require('cordova-common');
|
2020-10-19 16:38:37 +08:00
|
|
|
const EventEmitter = require('events');
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2022-04-18 09:39:54 +08:00
|
|
|
const Api = require('../../lib/Api');
|
|
|
|
const AndroidProject = require('../../lib/AndroidProject');
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2022-04-18 09:39:54 +08:00
|
|
|
const PluginInfo = common.PluginInfo;
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2022-04-18 09:39:54 +08:00
|
|
|
const FIXTURES = path.join(__dirname, '../e2e/fixtures');
|
|
|
|
const FAKE_PROJECT_DIR = path.join(os.tmpdir(), 'plugin-test-project');
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2020-10-18 05:20:37 +08:00
|
|
|
describe('Api', () => {
|
|
|
|
describe('addPlugin method', function () {
|
2022-04-18 09:39:54 +08:00
|
|
|
let api;
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2020-10-18 05:20:37 +08:00
|
|
|
beforeEach(function () {
|
2022-04-18 09:39:54 +08:00
|
|
|
const pluginManager = jasmine.createSpyObj('pluginManager', ['addPlugin']);
|
2020-10-18 05:20:37 +08:00
|
|
|
pluginManager.addPlugin.and.resolveTo();
|
|
|
|
spyOn(common.PluginManager, 'get').and.returnValue(pluginManager);
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2022-04-18 09:39:54 +08:00
|
|
|
const projectSpy = jasmine.createSpyObj('AndroidProject', ['getPackageName', 'write', 'isClean']);
|
2020-10-18 05:20:37 +08:00
|
|
|
spyOn(AndroidProject, 'getProjectFile').and.returnValue(projectSpy);
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2020-10-19 16:38:37 +08:00
|
|
|
api = new Api('android', FAKE_PROJECT_DIR, new EventEmitter());
|
2020-10-18 05:20:37 +08:00
|
|
|
spyOn(api._builder, 'prepBuildFiles');
|
|
|
|
});
|
2016-02-17 21:37:58 +08:00
|
|
|
|
2020-10-18 05:20:37 +08:00
|
|
|
const getPluginFixture = name => new PluginInfo(path.join(FIXTURES, name));
|
2019-07-17 20:56:36 +08:00
|
|
|
|
2020-10-18 05:20:37 +08:00
|
|
|
it('Test#001 : should call gradleBuilder.prepBuildFiles for every plugin with frameworks', () => {
|
|
|
|
return api.addPlugin(getPluginFixture('cordova-plugin-fake')).then(() => {
|
|
|
|
expect(api._builder.prepBuildFiles).toHaveBeenCalled();
|
|
|
|
});
|
2016-02-17 21:37:58 +08:00
|
|
|
});
|
|
|
|
|
2020-10-18 05:20:37 +08:00
|
|
|
it('Test#002 : shouldn\'t trigger gradleBuilder.prepBuildFiles for plugins without android frameworks', () => {
|
|
|
|
return api.addPlugin(getPluginFixture('cordova-plugin-fake-ios-frameworks')).then(() => {
|
|
|
|
expect(api._builder.prepBuildFiles).not.toHaveBeenCalled();
|
|
|
|
});
|
2016-02-17 21:37:58 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|