diff options
Diffstat (limited to 'scripts/manifest_fixer_test.py')
-rwxr-xr-x | scripts/manifest_fixer_test.py | 121 |
1 files changed, 93 insertions, 28 deletions
diff --git a/scripts/manifest_fixer_test.py b/scripts/manifest_fixer_test.py index 54a3784a9..590899719 100755 --- a/scripts/manifest_fixer_test.py +++ b/scripts/manifest_fixer_test.py @@ -54,9 +54,9 @@ class CompareVersionGtTest(unittest.TestCase): class RaiseMinSdkVersionTest(unittest.TestCase): """Unit tests for raise_min_sdk_version function.""" - def raise_min_sdk_version_test(self, input_manifest, min_sdk_version): + def raise_min_sdk_version_test(self, input_manifest, min_sdk_version, library): doc = minidom.parseString(input_manifest) - manifest_fixer.raise_min_sdk_version(doc, min_sdk_version) + manifest_fixer.raise_min_sdk_version(doc, min_sdk_version, library) output = StringIO.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() @@ -67,67 +67,130 @@ class RaiseMinSdkVersionTest(unittest.TestCase): '%s' '</manifest>\n') - def uses_sdk(self, v, extra=''): + # pylint: disable=redefined-builtin + def uses_sdk(self, min=None, target=None, extra=''): + attrs = "" + if min: + attrs += ' android:minSdkVersion="%s"' % (min) + if target: + attrs += ' android:targetSdkVersion="%s"' % (target) if extra: - extra = ' ' + extra - return ' <uses-sdk android:minSdkVersion="%s"%s/>\n' % (v, extra) + attrs += ' ' + extra + return ' <uses-sdk%s/>\n' % (attrs) def test_no_uses_sdk(self): """Tests inserting a uses-sdk element into a manifest.""" manifest_input = self.manifest_tmpl % '' - expected = self.manifest_tmpl % self.uses_sdk('28') - output = self.raise_min_sdk_version_test(manifest_input, '28') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) def test_no_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" manifest_input = self.manifest_tmpl % ' <uses-sdk extra="foo"/>\n' - expected = self.manifest_tmpl % self.uses_sdk('28', 'extra="foo"') - output = self.raise_min_sdk_version_test(manifest_input, '28') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28', + extra='extra="foo"') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) def test_raise_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" - manifest_input = self.manifest_tmpl % self.uses_sdk('27') - expected = self.manifest_tmpl % self.uses_sdk('28') - output = self.raise_min_sdk_version_test(manifest_input, '28') + manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) def test_raise(self): """Tests raising a minSdkVersion attribute.""" - manifest_input = self.manifest_tmpl % self.uses_sdk('27') - expected = self.manifest_tmpl % self.uses_sdk('28') - output = self.raise_min_sdk_version_test(manifest_input, '28') + manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) def test_no_raise_min(self): """Tests a minSdkVersion that doesn't need raising.""" - manifest_input = self.manifest_tmpl % self.uses_sdk('28') - expected = manifest_input - output = self.raise_min_sdk_version_test(manifest_input, '27') + manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') + output = self.raise_min_sdk_version_test(manifest_input, '27', False) self.assertEqual(output, expected) def test_raise_codename(self): """Tests raising a minSdkVersion attribute to a codename.""" - manifest_input = self.manifest_tmpl % self.uses_sdk('28') - expected = self.manifest_tmpl % self.uses_sdk('P') - output = self.raise_min_sdk_version_test(manifest_input, 'P') + manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') + expected = self.manifest_tmpl % self.uses_sdk(min='P', target='28') + output = self.raise_min_sdk_version_test(manifest_input, 'P', False) self.assertEqual(output, expected) def test_no_raise_codename(self): """Tests a minSdkVersion codename that doesn't need raising.""" - manifest_input = self.manifest_tmpl % self.uses_sdk('P') - expected = manifest_input - output = self.raise_min_sdk_version_test(manifest_input, '28') + manifest_input = self.manifest_tmpl % self.uses_sdk(min='P') + expected = self.manifest_tmpl % self.uses_sdk(min='P', target='P') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) + self.assertEqual(output, expected) + + def test_target(self): + """Tests an existing targetSdkVersion is preserved.""" + + manifest_input = self.manifest_tmpl % self.uses_sdk(min='26', target='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) + self.assertEqual(output, expected) + + def test_no_target(self): + """Tests inserting targetSdkVersion when minSdkVersion exists.""" + + manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) + self.assertEqual(output, expected) + + def test_target_no_min(self): + """Tests inserting targetSdkVersion when minSdkVersion exists.""" + + manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) + self.assertEqual(output, expected) + + def test_no_target_no_min(self): + """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" + + manifest_input = self.manifest_tmpl % '' + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) + def test_library_no_target(self): + """Tests inserting targetSdkVersion when minSdkVersion exists.""" + + manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', True) + self.assertEqual(output, expected) + + def test_library_target_no_min(self): + """Tests inserting targetSdkVersion when minSdkVersion exists.""" + + manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') + output = self.raise_min_sdk_version_test(manifest_input, '28', True) + self.assertEqual(output, expected) + + def test_library_no_target_no_min(self): + """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" + + manifest_input = self.manifest_tmpl % '' + expected = self.manifest_tmpl % self.uses_sdk(min='28', target='1') + output = self.raise_min_sdk_version_test(manifest_input, '28', True) + self.assertEqual(output, expected) + def test_extra(self): """Tests that extra attributes and elements are maintained.""" @@ -136,12 +199,13 @@ class RaiseMinSdkVersionTest(unittest.TestCase): ' <uses-sdk android:minSdkVersion="27" extra="foo"/>\n' ' <application/>\n') + # pylint: disable=line-too-long expected = self.manifest_tmpl % ( ' <!-- comment -->\n' - ' <uses-sdk android:minSdkVersion="28" extra="foo"/>\n' + ' <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="27" extra="foo"/>\n' ' <application/>\n') - output = self.raise_min_sdk_version_test(manifest_input, '28') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) @@ -150,11 +214,12 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % ' <!-- comment -->\n' + # pylint: disable=line-too-long expected = self.manifest_tmpl % ( - ' <uses-sdk android:minSdkVersion="28"/>\n' + ' <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28"/>\n' ' <!-- comment -->\n') - output = self.raise_min_sdk_version_test(manifest_input, '28') + output = self.raise_min_sdk_version_test(manifest_input, '28', False) self.assertEqual(output, expected) |