blob: bbc711140b3d4028034593a5c5078e38a0fc55ac [file] [log] [blame]
var dependencies = require('../../src/util/dependencies'),
xml_helpers = require('../../src/util/xml-helpers'),
path = require('path'),
config = require('../../src/util/config-changes');
describe('dependency module', function() {
describe('generate_dependency_info method', function() {
it('should return a list of top-level plugins based on what is inside a platform.json file', function() {
var tlps = {
"hello":"",
"isitme":"",
"yourelookingfor":""
};
spyOn(xml_helpers, 'parseElementtreeSync').andReturn({findall:function(){}});
var spy = spyOn(config, 'get_platform_json').andReturn({
installed_plugins:tlps,
dependent_plugins:[]
});
var obj = dependencies.generate_dependency_info('some dir');
expect(obj.top_level_plugins).toEqual(Object.keys(tlps));
});
it('should return a dependency graph for the plugins', function() {
var tlps = {
"A":"",
"B":""
};
var deps = {
"C":"",
"D":"",
"E":""
};
var spy = spyOn(config, 'get_platform_json').andReturn({
installed_plugins:tlps,
dependent_plugins:[]
});
var obj = dependencies.generate_dependency_info(path.join(__dirname, '..', 'plugins', 'dependencies'), 'android');
expect(obj.graph.getChain('A')).toEqual(['C','D']);
expect(obj.graph.getChain('B')).toEqual(['D', 'E']);
});
});
});