summaryrefslogtreecommitdiff
path: root/tools/aapt2/java/ProguardRules_test.cpp
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2020-09-01 20:04:08 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-09-01 20:04:08 +0000
commitff2ffe48acb657c959cae265529a7290013c7db8 (patch)
tree6d05301b67632d384a392190306ecb088c896cb2 /tools/aapt2/java/ProguardRules_test.cpp
parentb57f32e68ab2f57fd4ade254d524a4efce9ad30f (diff)
parent628590d7ec80e10a3fc24b1c18a1afb55cca10a8 (diff)
Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)" into stage-aosp-master
Diffstat (limited to 'tools/aapt2/java/ProguardRules_test.cpp')
-rw-r--r--tools/aapt2/java/ProguardRules_test.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/tools/aapt2/java/ProguardRules_test.cpp b/tools/aapt2/java/ProguardRules_test.cpp
index 7c3cda089b40..c7ae0b6a75cc 100644
--- a/tools/aapt2/java/ProguardRules_test.cpp
+++ b/tools/aapt2/java/ProguardRules_test.cpp
@@ -30,7 +30,7 @@ namespace aapt {
std::string GetKeepSetString(const proguard::KeepSet& set, bool minimal_rules) {
std::string out;
StringOutputStream sout(&out);
- proguard::WriteKeepSet(set, &sout, minimal_rules);
+ proguard::WriteKeepSet(set, &sout, minimal_rules, false);
sout.Flush();
return out;
}
@@ -381,6 +381,25 @@ TEST(ProguardRulesTest, MenuRulesAreEmitted) {
EXPECT_THAT(actual, Not(HasSubstr("com.foo.Bat")));
}
+TEST(ProguardRulesTest, MenuRulesAreEmittedForActionClasses) {
+ std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build();
+ std::unique_ptr<xml::XmlResource> menu = test::BuildXmlDom(R"(
+ <menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+ <item android:id="@+id/my_item"
+ app:actionViewClass="com.foo.Bar"
+ app:actionProviderClass="com.foo.Baz" />
+ </menu>)");
+ menu->file.name = test::ParseNameOrDie("menu/foo");
+
+ proguard::KeepSet set;
+ ASSERT_TRUE(proguard::CollectProguardRules(context.get(), menu.get(), &set));
+
+ std::string actual = GetKeepSetString(set, /** minimal_rules */ false);
+ EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar"));
+ EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Baz"));
+}
+
TEST(ProguardRulesTest, TransitionPathMotionRulesAreEmitted) {
std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build();
std::unique_ptr<xml::XmlResource> transition = test::BuildXmlDom(R"(