it('Test 033 : should merge platform tags with the correct platform', function () { const testXml = et.XML('<widget><platform name="bar"><testElement testAttrib="value">testTEXT</testElement></platform></widget>'); const origCfg = et.tostring(dstXml); xml_helpers.mergeXml(testXml, dstXml, 'bar', true); expect(et.tostring(dstXml)).not.toEqual(origCfg); const testElement = dstXml.find('testElement'); expect(testElement).toBeDefined(); expect(testElement.attrib.testAttrib).toEqual('value'); expect(testElement.text).toEqual('testTEXT'); });
describe("UUID utility", () => { it("uuid() should generate random UUIDs", () => { const uuid1 = uuid(); const uuid2 = uuid(); expect(uuid1).toEqual(jasmine.any(String)); expect(uuid1.length).toEqual(32); expect(uuid1).not.toEqual(uuid2); }); });
describe('of binary plist config files', function () { it('should merge dictionaries and arrays, removing duplicates', function () { fs.copySync(ios_config_xml, temp); install_plugin(bplistplugin); const platformJson = PlatformJson.load(plugins_dir, 'ios'); platformJson.addInstalledPluginToPrepareQueue('org.apache.bplist', {}); configChanges.process(plugins_dir, temp, 'ios', platformJson, pluginInfoProvider); const edited_plist = fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-binary.plist'), 'utf-8'); expect(edited_plist).toMatch(/<key>UINewsstandIcon<\/key>[\s\S]*<key>CFBundlePrimaryIcon<\/key>/); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-binary.plist'), 'utf-8')).toMatch(/<string>schema-b<\/string>/); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-binary.plist'), 'utf-8')).not.toMatch(/(<string>schema-a<\/string>[^]*){2,}/); }); });
describe('of plist config files', function () { it('Test 023 : should write empty string nodes with no whitespace', function () { fs.copySync(ios_config_xml, temp); install_plugin(varplugin); const platformJson = PlatformJson.load(plugins_dir, 'ios'); platformJson.addInstalledPluginToPrepareQueue('com.adobe.vars', {}); configChanges.process(plugins_dir, temp, 'ios', platformJson, pluginInfoProvider); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).toMatch(/<key>APluginNode<\/key>\n\t<string\/>/m); }); it('Test 024 : should merge dictionaries and arrays, removing duplicates', function () { fs.copySync(ios_config_xml, temp); install_plugin(plistplugin); const platformJson = PlatformJson.load(plugins_dir, 'ios'); platformJson.addInstalledPluginToPrepareQueue('org.apache.plist', {}); configChanges.process(plugins_dir, temp, 'ios', platformJson, pluginInfoProvider); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).toMatch(/<key>UINewsstandIcon<\/key>[\s\S]*<key>CFBundlePrimaryIcon<\/key>/); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).toMatch(/<string>schema-b<\/string>/); expect(fs.readFileSync(path.join(temp, 'SampleApp', 'SampleApp-Info.plist'), 'utf-8')).not.toMatch(/(<string>schema-a<\/string>[^]*){2,}/); }); });