Skip to content

Commit dc45ab7

Browse files
committed
Initial Commit
Change-Id: I9b712f3df3e1a164867f69abb9e7f3270f48195f
1 parent 98353a7 commit dc45ab7

File tree

12 files changed

+76
-26
lines changed

12 files changed

+76
-26
lines changed

firestore/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ dependencies {
2424

2525
compileOnly(Config.Libs.Arch.paging)
2626

27+
lintChecks(project(":lint"))
28+
2729
androidTestImplementation(Config.Libs.Test.junit)
2830
androidTestImplementation(Config.Libs.Test.runner)
2931
androidTestImplementation(Config.Libs.Test.rules)

internal/lint/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ dependencies {
1212

1313
tasks.withType<Jar>().configureEach {
1414
manifest {
15-
attributes(mapOf("Lint-Registry-v2" to "com.firebaseui.lint.LintIssueRegistry"))
15+
attributes(mapOf("Lint-Registry-v2" to "com.firebaseui.lint.internal.LintIssueRegistry"))
1616
}
1717
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.firebaseui.lint.internal
2+
3+
import com.android.tools.lint.client.api.IssueRegistry
4+
5+
/**
6+
* Registry for custom FirebaseUI lint checks.
7+
*/
8+
class LintIssueRegistry : IssueRegistry() {
9+
override val issues = listOf(
10+
NonGlobalIdDetector.NON_GLOBAL_ID
11+
)
12+
}

internal/lint/src/main/java/com/firebaseui/lint/NonGlobalIdDetector.kt renamed to internal/lint/src/main/java/com/firebaseui/lint/internal/NonGlobalIdDetector.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.firebaseui.lint
1+
package com.firebaseui.lint.internal
22

33
import com.android.tools.lint.detector.api.Category
44
import com.android.tools.lint.detector.api.Implementation

internal/lint/src/test/java/com/firebaseui/lint/LintTestHelper.kt

Lines changed: 0 additions & 18 deletions
This file was deleted.

internal/lint/src/test/java/com/firebaseui/lint/NonGlobalIdDetectorTest.kt renamed to internal/lint/src/test/java/com/firebaseui/lint/internal/NonGlobalIdDetectorTest.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
1-
package com.firebaseui.lint
1+
package com.firebaseui.lint.internal
22

33
import com.android.tools.lint.checks.infrastructure.TestFiles.xml
4-
import com.firebaseui.lint.LintTestHelper.configuredLint
4+
import com.android.tools.lint.checks.infrastructure.TestLintTask
55
import com.firebaseui.lint.NonGlobalIdDetector.Companion.NON_GLOBAL_ID
66
import org.junit.Test
7+
import java.io.File
78

89
class NonGlobalIdDetectorTest {
10+
11+
// Nasty hack to make lint tests pass on Windows. For some reason, lint doesn't
12+
// automatically find the Android SDK in its standard path on Windows. This hack looks
13+
// through the system properties to find the path defined in `local.properties` and then
14+
// sets lint's SDK home to that path if it's found.
15+
private val sdkPath = System.getProperty("java.library.path").split(';').find {
16+
it.contains("SDK", true)
17+
}
18+
19+
fun configuredLint(): TestLintTask = TestLintTask.lint().apply {
20+
sdkHome(File(sdkPath ?: return@apply))
21+
}
22+
923
@Test
1024
fun `Passes on valid view id`() {
1125
configuredLint()

lint/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
plugins {
2+
id("kotlin")
3+
}
4+
5+
dependencies {
6+
compileOnly(Config.Libs.Lint.api)
7+
compileOnly(Config.Libs.Kotlin.jvm)
8+
9+
testImplementation(Config.Libs.Lint.api)
10+
testImplementation(Config.Libs.Lint.tests)
11+
}
12+
13+
tasks.withType<Jar>().configureEach {
14+
manifest {
15+
attributes(mapOf("Lint-Registry-v2" to "com.firebaseui.lint.LintIssueRegistry"))
16+
}
17+
}

internal/lint/src/main/java/com/firebaseui/lint/LintIssueRegistry.kt renamed to lint/src/main/java/com/firebaseui/lint/LintIssueRegistry.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import com.android.tools.lint.client.api.IssueRegistry
77
*/
88
class LintIssueRegistry : IssueRegistry() {
99
override val issues = listOf(
10-
NonGlobalIdDetector.NON_GLOBAL_ID,
11-
FirestoreRecyclerAdapterLifecycleDetector.ISSUE_MISSING_LISTENING_START_METHOD,
12-
FirestoreRecyclerAdapterLifecycleDetector.ISSUE_MISSING_LISTENING_STOP_METHOD
10+
FirestoreRecyclerAdapterLifecycleDetector.ISSUE_MISSING_LISTENING_START_METHOD,
11+
FirestoreRecyclerAdapterLifecycleDetector.ISSUE_MISSING_LISTENING_STOP_METHOD
1312
)
1413
}
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
package com.firebaseui.lint
22

33
import com.android.tools.lint.checks.infrastructure.TestFiles.java
4+
import com.android.tools.lint.checks.infrastructure.TestLintTask
45
import com.firebaseui.lint.FirestoreRecyclerAdapterLifecycleDetector.Companion.ISSUE_MISSING_LISTENING_START_METHOD
56
import com.firebaseui.lint.FirestoreRecyclerAdapterLifecycleDetector.Companion.ISSUE_MISSING_LISTENING_STOP_METHOD
6-
import com.firebaseui.lint.LintTestHelper.configuredLint
77
import org.junit.Test
8+
import java.io.File
89

910
class FirestoreRecyclerAdapterLifecycleDetectorTest {
1011

12+
// Nasty hack to make lint tests pass on Windows. For some reason, lint doesn't
13+
// automatically find the Android SDK in its standard path on Windows. This hack looks
14+
// through the system properties to find the path defined in `local.properties` and then
15+
// sets lint's SDK home to that path if it's found.
16+
private val sdkPath = System.getProperty("java.library.path").split(';').find {
17+
it.contains("SDK", true)
18+
}
19+
20+
fun configuredLint(): TestLintTask = TestLintTask.lint().apply {
21+
sdkHome(File(sdkPath ?: return@apply))
22+
}
23+
1124
@Test
1225
fun `Checks missing startListening() method call`() {
1326
configuredLint()

proguard-tests/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ android {
44
}
55

66
buildTypes {
7+
named("debug").configure {
8+
postprocessing {
9+
isRemoveUnusedCode = true
10+
isRemoveUnusedResources = true
11+
isObfuscate = true
12+
}
13+
}
14+
715
named("release").configure {
816
// For the purposes of the sample, allow testing of a proguarded release build
917
// using the debug key

settings.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,8 @@ include(
55
":common", ":firestore", ":database",
66
":storage",
77

8+
9+
":lint",
10+
811
":proguard-tests", ":internal:lint", ":internal:lintchecks"
912
)

0 commit comments

Comments
 (0)