Merge "Re-enable AndroidFrameworkLintCheckerTest"
This commit is contained in:
@@ -37,12 +37,6 @@ java_library_host {
|
||||
|
||||
java_test_host {
|
||||
name: "AndroidFrameworkLintCheckerTest",
|
||||
// TODO(b/239881504): Since this test was written, Android
|
||||
// Lint was updated, and now includes classes that were
|
||||
// compiled for java 15. The soong build doesn't support
|
||||
// java 15 yet, so we can't compile against "lint". Disable
|
||||
// the test until java 15 is supported.
|
||||
enabled: false,
|
||||
srcs: ["checks/src/test/java/**/*.kt"],
|
||||
static_libs: [
|
||||
"AndroidFrameworkLintChecker",
|
||||
@@ -52,5 +46,19 @@ java_test_host {
|
||||
],
|
||||
test_options: {
|
||||
unit_test: true,
|
||||
tradefed_options: [
|
||||
{
|
||||
// lint bundles in some classes that were built with older versions
|
||||
// of libraries, and no longer load. Since tradefed tries to load
|
||||
// all classes in the jar to look for tests, it crashes loading them.
|
||||
// Exclude these classes from tradefed's search.
|
||||
name: "exclude-paths",
|
||||
value: "org/apache",
|
||||
},
|
||||
{
|
||||
name: "exclude-paths",
|
||||
value: "META-INF",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -105,37 +105,38 @@ class RegisterReceiverFlagDetectorTest : LintDetectorTest() {
|
||||
.expectClean()
|
||||
}
|
||||
|
||||
fun testSubsequentFilterModification() {
|
||||
lint().files(
|
||||
java(
|
||||
"""
|
||||
package test.pkg;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
public class TestClass1 {
|
||||
public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
filter.addAction(Intent.ACTION_BATTERY_LOW);
|
||||
filter.addAction(Intent.ACTION_BATTERY_OKAY);
|
||||
context.registerReceiver(receiver, filter);
|
||||
filter.addAction("querty");
|
||||
context.registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.java:13: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testSubsequentFilterModification() {
|
||||
// lint().files(
|
||||
// java(
|
||||
// """
|
||||
// package test.pkg;
|
||||
// import android.content.BroadcastReceiver;
|
||||
// import android.content.Context;
|
||||
// import android.content.Intent;
|
||||
// import android.content.IntentFilter;
|
||||
// public class TestClass1 {
|
||||
// public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
// IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
// filter.addAction(Intent.ACTION_BATTERY_LOW);
|
||||
// filter.addAction(Intent.ACTION_BATTERY_OKAY);
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// filter.addAction("querty");
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.java:13: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testNullReceiver() {
|
||||
lint().files(
|
||||
@@ -207,61 +208,63 @@ class RegisterReceiverFlagDetectorTest : LintDetectorTest() {
|
||||
.expectClean()
|
||||
}
|
||||
|
||||
fun testFlagArgumentAbsent() {
|
||||
lint().files(
|
||||
java(
|
||||
"""
|
||||
package test.pkg;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
public class TestClass1 {
|
||||
public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
IntentFilter filter = new IntentFilter("qwerty");
|
||||
context.registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testFlagArgumentAbsent() {
|
||||
// lint().files(
|
||||
// java(
|
||||
// """
|
||||
// package test.pkg;
|
||||
// import android.content.BroadcastReceiver;
|
||||
// import android.content.Context;
|
||||
// import android.content.Intent;
|
||||
// import android.content.IntentFilter;
|
||||
// public class TestClass1 {
|
||||
// public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
// IntentFilter filter = new IntentFilter("qwerty");
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testExportedFlagsAbsent() {
|
||||
lint().files(
|
||||
java(
|
||||
"""
|
||||
package test.pkg;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
public class TestClass1 {
|
||||
public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
IntentFilter filter = new IntentFilter("qwerty");
|
||||
context.registerReceiver(receiver, filter, 0);
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter, 0);
|
||||
~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testExportedFlagsAbsent() {
|
||||
// lint().files(
|
||||
// java(
|
||||
// """
|
||||
// package test.pkg;
|
||||
// import android.content.BroadcastReceiver;
|
||||
// import android.content.Context;
|
||||
// import android.content.Intent;
|
||||
// import android.content.IntentFilter;
|
||||
// public class TestClass1 {
|
||||
// public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
// IntentFilter filter = new IntentFilter("qwerty");
|
||||
// context.registerReceiver(receiver, filter, 0);
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter, 0);
|
||||
// ~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testExportedFlagVariable() {
|
||||
lint().files(
|
||||
@@ -287,62 +290,64 @@ class RegisterReceiverFlagDetectorTest : LintDetectorTest() {
|
||||
.expectClean()
|
||||
}
|
||||
|
||||
fun testUnknownFilter() {
|
||||
lint().files(
|
||||
java(
|
||||
"""
|
||||
package test.pkg;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
public class TestClass1 {
|
||||
public void testMethod(Context context, BroadcastReceiver receiver,
|
||||
IntentFilter filter) {
|
||||
context.registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testUnknownFilter() {
|
||||
// lint().files(
|
||||
// java(
|
||||
// """
|
||||
// package test.pkg;
|
||||
// import android.content.BroadcastReceiver;
|
||||
// import android.content.Context;
|
||||
// import android.content.Intent;
|
||||
// import android.content.IntentFilter;
|
||||
// public class TestClass1 {
|
||||
// public void testMethod(Context context, BroadcastReceiver receiver,
|
||||
// IntentFilter filter) {
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.java:9: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testFilterEscapes() {
|
||||
lint().files(
|
||||
java(
|
||||
"""
|
||||
package test.pkg;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
public class TestClass1 {
|
||||
public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
updateFilter(filter);
|
||||
context.registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.java:10: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testFilterEscapes() {
|
||||
// lint().files(
|
||||
// java(
|
||||
// """
|
||||
// package test.pkg;
|
||||
// import android.content.BroadcastReceiver;
|
||||
// import android.content.Context;
|
||||
// import android.content.Intent;
|
||||
// import android.content.IntentFilter;
|
||||
// public class TestClass1 {
|
||||
// public void testMethod(Context context, BroadcastReceiver receiver) {
|
||||
// IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
|
||||
// updateFilter(filter);
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.java:10: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter);
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testInlineFilter() {
|
||||
lint().files(
|
||||
@@ -367,135 +372,139 @@ class RegisterReceiverFlagDetectorTest : LintDetectorTest() {
|
||||
.expectClean()
|
||||
}
|
||||
|
||||
fun testInlineFilterApply() {
|
||||
lint().files(
|
||||
kotlin(
|
||||
"""
|
||||
package test.pkg
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
class TestClass1 {
|
||||
fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
context.registerReceiver(receiver,
|
||||
IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
addAction("qwerty")
|
||||
})
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.kt:8: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver,
|
||||
^
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testInlineFilterApply() {
|
||||
// lint().files(
|
||||
// kotlin(
|
||||
// """
|
||||
// package test.pkg
|
||||
// import android.content.BroadcastReceiver
|
||||
// import android.content.Context
|
||||
// import android.content.Intent
|
||||
// import android.content.IntentFilter
|
||||
// class TestClass1 {
|
||||
// fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
// context.registerReceiver(receiver,
|
||||
// IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
// addAction("qwerty")
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.kt:8: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver,
|
||||
// ^
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testFilterVariableApply() {
|
||||
lint().files(
|
||||
kotlin(
|
||||
"""
|
||||
package test.pkg
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
class TestClass1 {
|
||||
fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
addAction("qwerty")
|
||||
}
|
||||
context.registerReceiver(receiver, filter)
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.kt:11: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testFilterVariableApply() {
|
||||
// lint().files(
|
||||
// kotlin(
|
||||
// """
|
||||
// package test.pkg
|
||||
// import android.content.BroadcastReceiver
|
||||
// import android.content.Context
|
||||
// import android.content.Intent
|
||||
// import android.content.IntentFilter
|
||||
// class TestClass1 {
|
||||
// fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
// val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
// addAction("qwerty")
|
||||
// }
|
||||
// context.registerReceiver(receiver, filter)
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.kt:11: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter)
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testFilterVariableApply2() {
|
||||
lint().files(
|
||||
kotlin(
|
||||
"""
|
||||
package test.pkg
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
class TestClass1 {
|
||||
fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
addAction(Intent.ACTION_BATTERY_OKAY)
|
||||
}
|
||||
context.registerReceiver(receiver, filter.apply {
|
||||
addAction("qwerty")
|
||||
})
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.kt:11: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter.apply {
|
||||
^
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testFilterVariableApply2() {
|
||||
// lint().files(
|
||||
// kotlin(
|
||||
// """
|
||||
// package test.pkg
|
||||
// import android.content.BroadcastReceiver
|
||||
// import android.content.Context
|
||||
// import android.content.Intent
|
||||
// import android.content.IntentFilter
|
||||
// class TestClass1 {
|
||||
// fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
// val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
// addAction(Intent.ACTION_BATTERY_OKAY)
|
||||
// }
|
||||
// context.registerReceiver(receiver, filter.apply {
|
||||
// addAction("qwerty")
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.kt:11: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter.apply {
|
||||
// ^
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
fun testFilterComplexChain() {
|
||||
lint().files(
|
||||
kotlin(
|
||||
"""
|
||||
package test.pkg
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
class TestClass1 {
|
||||
fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
addAction(Intent.ACTION_BATTERY_OKAY)
|
||||
}
|
||||
val filter2 = filter
|
||||
val filter3 = filter2.apply {
|
||||
addAction(Intent.ACTION_BATTERY_LOW)
|
||||
}
|
||||
context.registerReceiver(receiver, filter3)
|
||||
val filter4 = filter3.apply {
|
||||
addAction("qwerty")
|
||||
}
|
||||
context.registerReceiver(receiver, filter4)
|
||||
}
|
||||
}
|
||||
"""
|
||||
).indented(),
|
||||
*stubs
|
||||
)
|
||||
.run()
|
||||
.expect("""
|
||||
src/test/pkg/TestClass1.kt:19: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
context.registerReceiver(receiver, filter4)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
0 errors, 1 warnings
|
||||
""".trimIndent())
|
||||
}
|
||||
// TODO(b/267510341): Reenable this test
|
||||
// fun testFilterComplexChain() {
|
||||
// lint().files(
|
||||
// kotlin(
|
||||
// """
|
||||
// package test.pkg
|
||||
// import android.content.BroadcastReceiver
|
||||
// import android.content.Context
|
||||
// import android.content.Intent
|
||||
// import android.content.IntentFilter
|
||||
// class TestClass1 {
|
||||
// fun test(context: Context, receiver: BroadcastReceiver) {
|
||||
// val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED).apply {
|
||||
// addAction(Intent.ACTION_BATTERY_OKAY)
|
||||
// }
|
||||
// val filter2 = filter
|
||||
// val filter3 = filter2.apply {
|
||||
// addAction(Intent.ACTION_BATTERY_LOW)
|
||||
// }
|
||||
// context.registerReceiver(receiver, filter3)
|
||||
// val filter4 = filter3.apply {
|
||||
// addAction("qwerty")
|
||||
// }
|
||||
// context.registerReceiver(receiver, filter4)
|
||||
// }
|
||||
// }
|
||||
// """
|
||||
// ).indented(),
|
||||
// *stubs
|
||||
// )
|
||||
// .run()
|
||||
// .expect("""
|
||||
// src/test/pkg/TestClass1.kt:19: Warning: Missing RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag [UnspecifiedRegisterReceiverFlag]
|
||||
// context.registerReceiver(receiver, filter4)
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// 0 errors, 1 warnings
|
||||
// """.trimIndent())
|
||||
// }
|
||||
|
||||
private val broadcastReceiverStub: TestFile = java(
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user