Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
```

Expand All @@ -57,7 +57,7 @@ buildscript {
}
}
dependencies {
classpath "com.telefonica:manifestcheck:1.1.0"
classpath "com.telefonica:manifestcheck:1.1.1"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion manifestcheck/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,18 @@ class MultiVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
<variant name="release">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand Down Expand Up @@ -79,18 +79,18 @@ class MultiVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
<variant name="release">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand All @@ -113,18 +113,18 @@ class MultiVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
<variant name="release">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ class SingleVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand Down Expand Up @@ -72,16 +72,16 @@ class SingleVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
<variant name="release">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand All @@ -104,11 +104,11 @@ class SingleVariantPermissionCheckIntegrationTest {
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.INTERNET"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission maxSdkVersion="26" name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 ->

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fix

appendChild(permission.toXmlElement(document))
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 = """
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission-sdk-23 name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission name="android.permission.CAMERA"/>
<uses-permission-sdk-23 name="android.permission.CAMERA"/>
<uses-permission name="android.permission.INTERNET"/>
</variant>
</baseline>
""".trimIndent()
assertEquals(
expectedBaselineContent.trim(),
baselineFile.readText().normaliseLineSeparators().trim()
)
}
}
20 changes: 10 additions & 10 deletions sample/app/sample-baseline.xml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<baseline>
<variant name="debug">
<uses-permission name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission maxSdkVersion="27" name="android.permission.INTERNET"/>
<uses-permission name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission maxSdkVersion="26" name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission maxSdkVersion="26" name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-permission maxSdkVersion="27" name="android.permission.INTERNET"/>
<uses-permission name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</variant>
<variant name="release">
<uses-permission name="android.permission.CAMERA"/>
<uses-permission maxSdkVersion="27" name="android.permission.INTERNET"/>
<uses-permission name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-permission maxSdkVersion="26" name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission maxSdkVersion="26" name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission-sdk-23 name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-feature name="android.hardware.camera.autofocus" required="false"/>
<uses-feature glEsVersion="0x00020000" required="true"/>
<uses-permission name="android.permission.CAMERA"/>
<uses-permission maxSdkVersion="27" name="android.permission.INTERNET"/>
</variant>
</baseline>