Loading tools/aapt2/java/ProguardRules_test.cpp +44 −14 Original line number Original line Diff line number Diff line Loading @@ -71,7 +71,7 @@ TEST(ProguardRulesTest, FragmentNameRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { Loading @@ -85,7 +85,7 @@ TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { Loading @@ -101,8 +101,8 @@ TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Baz")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Baz { <init>(...); }")); } } TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { Loading @@ -128,9 +128,9 @@ TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { ASSERT_TRUE(proguard::CollectProguardRules(context.get(), navigation.get(), &set)); ASSERT_TRUE(proguard::CollectProguardRules(context.get(), navigation.get(), &set)); std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.package.Foo")); EXPECT_THAT(actual, HasSubstr("-keep class com.package.Foo { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.package.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.package.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.base.Nested")); EXPECT_THAT(actual, HasSubstr("-keep class com.base.Nested { <init>(...); }")); } } TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { Loading @@ -146,7 +146,7 @@ TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { Loading Loading @@ -187,7 +187,6 @@ TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); } } TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { Loading @@ -208,7 +207,6 @@ TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { EXPECT_THAT(actual, HasSubstr("-if class **.R$layout")); EXPECT_THAT(actual, HasSubstr("-if class **.R$layout")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); } } TEST(ProguardRulesTest, NonLayoutReferencesAreUnconditional) { TEST(ProguardRulesTest, NonLayoutReferencesAreUnconditional) { Loading Loading @@ -241,7 +239,7 @@ TEST(ProguardRulesTest, ViewOnClickRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("bar_method")); EXPECT_THAT(actual, HasSubstr("-keepclassmembers class * { *** bar_method(...); }")); } } TEST(ProguardRulesTest, MenuRulesAreEmitted) { TEST(ProguardRulesTest, MenuRulesAreEmitted) { Loading @@ -260,10 +258,42 @@ TEST(ProguardRulesTest, MenuRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("on_click")); EXPECT_THAT(actual, HasSubstr("-keepclassmembers class * { *** on_click(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Baz")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Baz { <init>(...); }")); EXPECT_THAT(actual, Not(HasSubstr("com.foo.Bat"))); EXPECT_THAT(actual, Not(HasSubstr("com.foo.Bat"))); } } TEST(ProguardRulesTest, TransitionPathMotionRulesAreEmitted) { std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build(); std::unique_ptr<xml::XmlResource> transition = test::BuildXmlDom(R"( <changeBounds> <pathMotion class="com.foo.Bar"/> </changeBounds>)"); transition->file.name = test::ParseNameOrDie("transition/foo"); proguard::KeepSet set; ASSERT_TRUE(proguard::CollectProguardRules(context.get(), transition.get(), &set)); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } TEST(ProguardRulesTest, TransitionRulesAreEmitted) { std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build(); std::unique_ptr<xml::XmlResource> transitionSet = test::BuildXmlDom(R"( <transitionSet> <transition class="com.foo.Bar"/> </transitionSet>)"); transitionSet->file.name = test::ParseNameOrDie("transition/foo"); proguard::KeepSet set; ASSERT_TRUE(proguard::CollectProguardRules(context.get(), transitionSet.get(), &set)); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } // namespace aapt } // namespace aapt Loading
tools/aapt2/java/ProguardRules_test.cpp +44 −14 Original line number Original line Diff line number Diff line Loading @@ -71,7 +71,7 @@ TEST(ProguardRulesTest, FragmentNameRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { Loading @@ -85,7 +85,7 @@ TEST(ProguardRulesTest, FragmentClassRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { Loading @@ -101,8 +101,8 @@ TEST(ProguardRulesTest, FragmentNameAndClassRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Baz")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Baz { <init>(...); }")); } } TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { Loading @@ -128,9 +128,9 @@ TEST(ProguardRulesTest, NavigationFragmentNameAndClassRulesAreEmitted) { ASSERT_TRUE(proguard::CollectProguardRules(context.get(), navigation.get(), &set)); ASSERT_TRUE(proguard::CollectProguardRules(context.get(), navigation.get(), &set)); std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.package.Foo")); EXPECT_THAT(actual, HasSubstr("-keep class com.package.Foo { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.package.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.package.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.base.Nested")); EXPECT_THAT(actual, HasSubstr("-keep class com.base.Nested { <init>(...); }")); } } TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { Loading @@ -146,7 +146,7 @@ TEST(ProguardRulesTest, CustomViewRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { Loading Loading @@ -187,7 +187,6 @@ TEST(ProguardRulesTest, IncludedLayoutRulesAreConditional) { EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); } } TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { Loading @@ -208,7 +207,6 @@ TEST(ProguardRulesTest, AliasedLayoutRulesAreConditional) { EXPECT_THAT(actual, HasSubstr("-if class **.R$layout")); EXPECT_THAT(actual, HasSubstr("-if class **.R$layout")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int foo")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("int bar")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); } } TEST(ProguardRulesTest, NonLayoutReferencesAreUnconditional) { TEST(ProguardRulesTest, NonLayoutReferencesAreUnconditional) { Loading Loading @@ -241,7 +239,7 @@ TEST(ProguardRulesTest, ViewOnClickRuleIsEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("bar_method")); EXPECT_THAT(actual, HasSubstr("-keepclassmembers class * { *** bar_method(...); }")); } } TEST(ProguardRulesTest, MenuRulesAreEmitted) { TEST(ProguardRulesTest, MenuRulesAreEmitted) { Loading @@ -260,10 +258,42 @@ TEST(ProguardRulesTest, MenuRulesAreEmitted) { std::string actual = GetKeepSetString(set); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("on_click")); EXPECT_THAT(actual, HasSubstr("-keepclassmembers class * { *** on_click(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Bar")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); EXPECT_THAT(actual, HasSubstr("com.foo.Baz")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Baz { <init>(...); }")); EXPECT_THAT(actual, Not(HasSubstr("com.foo.Bat"))); EXPECT_THAT(actual, Not(HasSubstr("com.foo.Bat"))); } } TEST(ProguardRulesTest, TransitionPathMotionRulesAreEmitted) { std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build(); std::unique_ptr<xml::XmlResource> transition = test::BuildXmlDom(R"( <changeBounds> <pathMotion class="com.foo.Bar"/> </changeBounds>)"); transition->file.name = test::ParseNameOrDie("transition/foo"); proguard::KeepSet set; ASSERT_TRUE(proguard::CollectProguardRules(context.get(), transition.get(), &set)); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } TEST(ProguardRulesTest, TransitionRulesAreEmitted) { std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build(); std::unique_ptr<xml::XmlResource> transitionSet = test::BuildXmlDom(R"( <transitionSet> <transition class="com.foo.Bar"/> </transitionSet>)"); transitionSet->file.name = test::ParseNameOrDie("transition/foo"); proguard::KeepSet set; ASSERT_TRUE(proguard::CollectProguardRules(context.get(), transitionSet.get(), &set)); std::string actual = GetKeepSetString(set); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.Bar { <init>(...); }")); } } // namespace aapt } // namespace aapt