chiark / gitweb /
added test case
authortobiasKaminsky <tobias@kaminsky.me>
Thu, 30 Nov 2017 10:12:18 +0000 (11:12 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Thu, 30 Nov 2017 10:12:18 +0000 (11:12 +0100)
fdroidserver/common.py
tests/common.TestCase
tests/source-files/fdroid/fdroidclient/build.gradle

index a2068e10c420843866d95a5da946a7b3efc7f878..b2e918bafcb1d087d24631641c05c19ba48ff82b 100644 (file)
@@ -1299,7 +1299,9 @@ def parse_androidmanifests(paths, app):
         vercode = None
         package = None
 
-        flavour = app.builds[-1].gradle[-1]
+        flavour = ""
+        if app.builds and 'gradle' in app.builds[-1] and app.builds[-1].gradle:
+                flavour = app.builds[-1].gradle[-1]
 
         if has_extension(path, 'gradle'):
             # first try to get version name and code from correct flavour
index a5d52f75eccf6a77b4387b0cfa4796b92030bdf3..68b84ff330fd5d8c235712ce7031d55c622bf921 100755 (executable)
@@ -492,6 +492,35 @@ class CommonTest(unittest.TestCase):
         self.assertEqual('b30bb971af0d134866e158ec748fcd553df97c150f58b0a963190bbafbeb0868', sig)
 
 
+    def test_parse_androidmanifests(self):
+        source_files_dir = os.path.join(os.path.dirname(__file__), 'source-files')
+        app = fdroidserver.metadata.App()
+        app.id = 'org.fdroid.fdroid'
+        paths = [
+            os.path.join(source_files_dir, 'fdroid', 'fdroidclient', 'AndroidManifest.xml'),
+            os.path.join(source_files_dir, 'fdroid', 'fdroidclient', 'build.gradle'),
+        ]
+        for path in paths:
+            self.assertTrue(os.path.isfile(path))
+        self.assertEqual(('0.94-test', '940', 'org.fdroid.fdroid'), 
+                         fdroidserver.common.parse_androidmanifests(paths, app))
+
+    def test_parse_androidmanifests_with_flavor(self):
+        source_files_dir = os.path.join(os.path.dirname(__file__), 'source-files')
+        app = fdroidserver.metadata.App()
+        build = fdroidserver.metadata.Build()
+        build.gradle = ['devVersion']
+        app.builds = [build]
+        app.id = 'org.fdroid.fdroid.dev'
+        paths = [
+            os.path.join(source_files_dir, 'fdroid', 'fdroidclient', 'AndroidManifest.xml'),
+            os.path.join(source_files_dir, 'fdroid', 'fdroidclient', 'build.gradle'),
+        ]
+        for path in paths:
+            self.assertTrue(os.path.isfile(path))
+        self.assertEqual(('0.95-dev', '949', 'org.fdroid.fdroid.dev'),
+                         fdroidserver.common.parse_androidmanifests(paths, app))
+
 if __name__ == "__main__":
     parser = optparse.OptionParser()
     parser.add_option("-v", "--verbose", action="store_true", default=False,
index 1d994dc8556b25422499b25084da9816161220c7..c81ff357828b84f7c5547baa45dfdbcd60fb912b 100644 (file)
@@ -128,6 +128,21 @@ task binaryDeps(type: Copy, dependsOn: ':F-Droid:prepareReleaseDependencies') {
 android {
     compileSdkVersion 21
     buildToolsVersion '22.0.1'
+    
+    defaultConfig {
+    
+        flavorDimensions "default"
+                
+        productFlavors {
+            devVersion {
+                applicationId "org.fdroid.fdroid.dev"
+                dimension "default"
+                versionCode 949
+                versionName "0.95-dev"
+            }
+        }
+    
+    }
 
     sourceSets {
         main {