diff --git a/README.md b/README.md
index b5cdc2b..5adbb66 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@ To add the PermissionCheck plugin to your project, you have to add this block of
```groovy
plugins {
- id "com.telefonica.manifestcheck" version "1.1.0"
+ id "com.telefonica.manifestcheck" version "1.1.1"
}
```
@@ -57,7 +57,7 @@ buildscript {
}
}
dependencies {
- classpath "com.telefonica:manifestcheck:1.1.0"
+ classpath "com.telefonica:manifestcheck:1.1.1"
}
}
```
diff --git a/manifestcheck/build.gradle.kts b/manifestcheck/build.gradle.kts
index 25b375f..b4d8571 100644
--- a/manifestcheck/build.gradle.kts
+++ b/manifestcheck/build.gradle.kts
@@ -6,7 +6,7 @@ plugins {
}
group = "com.telefonica"
-version = "1.1.0" // Also update the version in the README
+version = "1.1.1" // Also update the version in the README
val uber: Configuration by configurations.creating
diff --git a/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt
index 8021c7a..10c5e51 100644
--- a/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt
+++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/MultiVariantPermissionCheckIntegrationTest.kt
@@ -33,18 +33,18 @@ class MultiVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -79,18 +79,18 @@ class MultiVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -113,18 +113,18 @@ class MultiVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt
index 5b6725b..0b50a62 100644
--- a/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt
+++ b/manifestcheck/src/test/kotlin/com/telefonica/manifestcheck/SingleVariantPermissionCheckIntegrationTest.kt
@@ -33,11 +33,11 @@ class SingleVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
@@ -72,16 +72,16 @@ class SingleVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
-
-
+
+
@@ -104,11 +104,11 @@ class SingleVariantPermissionCheckIntegrationTest {
-
-
-
-
+
+
+
+
diff --git a/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt
index 3cd1695..a82c66f 100644
--- a/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt
+++ b/plugin-core/src/main/kotlin/com/telefonica/manifestcheck/internal/BaselineHandler.kt
@@ -34,7 +34,7 @@ internal class BaselineHandler(private val baselineFile: File) {
// Create permission entries for a single variant
appendElement("variant") {
setAttribute("name", variantName)
- variantPermissions.forEach { permission ->
+ variantPermissions.sorted().forEach { permission ->
appendChild(permission.toXmlElement(document))
}
}
diff --git a/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt
index be94bee..386323b 100644
--- a/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt
+++ b/plugin-core/src/test/kotlin/com/telefonica/simonschiller/permissioncheck/internal/BaselineHandlerTest.kt
@@ -321,4 +321,34 @@ class BaselineHandlerTest {
""".trimIndent()
assertEquals(expectedBaselineContent, baselineFile.readText().normaliseLineSeparators())
}
+
+ @Test
+ fun `Baseline serializes permissions in sorted order`() {
+ val baselineFile = tempDir.resolve("permission-baseline.xml")
+ // Intentionally unsorted
+ val permissions = setOf(
+ Permission("android.permission.INTERNET"),
+ Permission("android.permission.CAMERA"),
+ Sdk23Permission("android.permission.CAMERA"),
+ Sdk23Permission("android.permission.ACCESS_FINE_LOCATION")
+ )
+ val baselineHandler = BaselineHandler(baselineFile)
+ baselineHandler.serialize(mapOf("debug" to permissions))
+
+ val expectedBaselineContent = """
+
+
+
+
+
+
+
+
+
+ """.trimIndent()
+ assertEquals(
+ expectedBaselineContent.trim(),
+ baselineFile.readText().normaliseLineSeparators().trim()
+ )
+ }
}
diff --git a/sample/app/sample-baseline.xml b/sample/app/sample-baseline.xml
index d404ecc..d57b96c 100644
--- a/sample/app/sample-baseline.xml
+++ b/sample/app/sample-baseline.xml
@@ -1,23 +1,23 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+