Beispiel #1
0
 def testMergeToCreateValidManifest(self):
     self.maxDiff = None
     merger = merge_manifests.MergeManifests(
         (INVALID_MERGER_MANIFEST, 'INVALID_MANIFEST'),
         [(SECOND_MANIFEST, 'SECOND_MANIFEST')], ['all'])
     result = merger.Merge()
     expected = xml.dom.minidom.parseString(VALID_MANIFEST).toprettyxml()
     self.assertEquals(Reformat(expected), Reformat(result))
Beispiel #2
0
 def testExcludeAllPermissions(self):
     merger = merge_manifests.MergeManifests(
         (FIRST_MANIFEST, 'FIRST_MANIFEST'),
         [(SECOND_MANIFEST, 'SECOND_MANIFEST'),
          (THIRD_MANIFEST, 'THIRD_MANIFEST')], ['all'])
     result = merger.Merge()
     self.assertFalse('android.permission.READ_LOGS' in result)
     self.assertFalse('android.permission.INTERNET' in result)
     self.assertTrue('android.permission.ACCESS_COARSE_LOCATION' in result)
 def testMerge(self):
   self.maxDiff = None
   merger = merge_manifests.MergeManifests(
       (FIRST_MANIFEST, 'FIRST_MANIFEST'),
       [(SECOND_MANIFEST, 'SECOND_MANIFEST'),
        (THIRD_MANIFEST, 'THIRD_MANIFEST')],
       ['android.permission.READ_LOGS'])
   result = merger.Merge()
   expected = xml.dom.minidom.parseString(MANUALLY_MERGED).toprettyxml()
   self.assertEquals(Reformat(expected), Reformat(result))
 def testActivityAliasesAreAlwaysLast(self):
   merger = merge_manifests.MergeManifests(
       (FIRST_MANIFEST, 'FIRST_MANIFEST'),
       [(SECOND_MANIFEST, 'SECOND_MANIFEST'),
        (ALIAS_MANIFEST, 'THIRD_MANIFEST')],
       ['all'])
   result = merger.Merge()
   last_occurence_of_activity = result.rfind('<activity ')
   first_occurence_of_alias = result.find('<activity-alias ')
   self.assertLess(last_occurence_of_activity, first_occurence_of_alias,
                   msg='First activity-alias is not after the last activity!')
Beispiel #5
0
 def testMergeConflictingNamespaces(self):
     self.maxDiff = None
     merger = merge_manifests.MergeManifests(
         (MANIFEST_WITH_CONFLICTING_NAMESPACE,
          'MANIFEST_WITH_CONFLICTING_NAMESPACE'),
         [(MANIFEST_WITH_EXTRA_NAMESPACE, 'MANIFEST_WITH_EXTRA_NAMESPACE')],
         ['all'])
     with self.assertRaisesRegexp(
             merge_manifests.MalformedManifestException,
             'different values for namespace xmlns:tools'):
         merger.Merge()
 def testUndefinedArgumentPlaceholder(self):
   bad_manifest = SECOND_MANIFEST.replace(
       '${packageName}', '${unknownPlaceHolder}')
   merger = merge_manifests.MergeManifests(
       (FIRST_MANIFEST, 'FIRST_MANIFEST'),
       [(bad_manifest, 'invalidManifest'),
        (THIRD_MANIFEST, 'THIRD_MANIFEST')])
   try:
     merger.Merge()
     self.fail('merging manifests with unknown placeholders didn\'t fail')
   except merge_manifests.UndefinedPlaceholderException:
     pass
Beispiel #7
0
 def testMergeWithNamespaces(self):
     self.maxDiff = None
     merger = merge_manifests.MergeManifests(
         (MANIFEST_WITHOUT_EXTRA_NAMESPACE,
          'MANIFEST_WITHOUT_EXTRA_NAMESPACE'),
         [(MANIFEST_WITH_EXTRA_NAMESPACE, 'MANIFEST_WITH_EXTRA_NAMESPACE')],
         ['all'])
     result = merger.Merge()
     expected = xml.dom.minidom.parseString(
         MERGED_MANIFEST_WITH_EXTRA_NAMESPACE).toprettyxml()
     # Make sure the result is valid xml (not missing xmlns declarations)
     result_reparsed = xml.dom.minidom.parseString(result).toprettyxml()
     self.assertEquals(Reformat(expected), Reformat(result_reparsed))
 def testMergeWithNoApplication(self):
   merger = merge_manifests.MergeManifests(
       (INVALID_MERGER_MANIFEST, 'INVALID_MERGER_MANIFEST'),
       [(INVALID_MERGEE_MANIFEST, 'INVALID_MERGEE_MANIFEST')],
       ['all'])
   merger.Merge()