summaryrefslogtreecommitdiff
path: root/scripts/manifest_fixer_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/manifest_fixer_test.py')
-rwxr-xr-xscripts/manifest_fixer_test.py121
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)