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 @@ - - - + + + - - + + - - - + + + - - + +