summaryrefslogtreecommitdiff
path: root/tools/aapt2/configuration/ConfigurationParser_test.cpp
diff options
context:
space:
mode:
authorShane Farmer <safarmer@google.com>2017-07-21 09:42:42 -0700
committerShane Farmer <safarmer@google.com>2017-07-25 00:01:18 +0000
commit1a21b8c04153b5b73a477ebd0622b24f3bbfc603 (patch)
tree8d5c576c1ff90db4f232805749115101497193d2 /tools/aapt2/configuration/ConfigurationParser_test.cpp
parentbad49cc0f765250336b674bcf3d7b10531a8278c (diff)
AAPT2: Update ReplacePlaceholder for artifact name parser
Update the artifact name parser to ensure that duplicate placeholders are treated as an error. Also applied suggested changes from ag/2447777. Test: ran unit tests Change-Id: Iab8fd9d9b81aa3008177141256ecd16ef04b0c34
Diffstat (limited to 'tools/aapt2/configuration/ConfigurationParser_test.cpp')
-rw-r--r--tools/aapt2/configuration/ConfigurationParser_test.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/aapt2/configuration/ConfigurationParser_test.cpp b/tools/aapt2/configuration/ConfigurationParser_test.cpp
index fb71e98d2fb5..ab3b7ec2003b 100644
--- a/tools/aapt2/configuration/ConfigurationParser_test.cpp
+++ b/tools/aapt2/configuration/ConfigurationParser_test.cpp
@@ -418,6 +418,8 @@ TEST_F(ConfigurationParserTest, DeviceFeatureGroupAction) {
ASSERT_THAT(out, ElementsAre(low_latency, pro));
}
+// Artifact name parser test cases.
+
TEST(ArtifactTest, Simple) {
StdErrDiagnostics diag;
Artifact x86;
@@ -468,5 +470,53 @@ TEST(ArtifactTest, Empty) {
EXPECT_TRUE(artifact.ToArtifactName("something.apk", &diag));
}
+TEST(ArtifactTest, Repeated) {
+ StdErrDiagnostics diag;
+ Artifact artifact;
+ artifact.screen_density_group = {"mdpi"};
+
+ EXPECT_TRUE(artifact.ToArtifactName("something.{density}.apk", &diag));
+ EXPECT_FALSE(artifact.ToArtifactName("something.{density}.{density}.apk", &diag));
+}
+
+TEST(ArtifactTest, Nesting) {
+ StdErrDiagnostics diag;
+ Artifact x86;
+ x86.abi_group = {"x86"};
+
+ EXPECT_FALSE(x86.ToArtifactName("something.{abi{density}}.apk", &diag));
+
+ const Maybe<std::string>& name = x86.ToArtifactName("something.{abi{abi}}.apk", &diag);
+ EXPECT_TRUE(name);
+ EXPECT_EQ(name.value(), "something.{abix86}.apk");
+}
+
+TEST(ArtifactTest, Recursive) {
+ StdErrDiagnostics diag;
+ Artifact artifact;
+ artifact.device_feature_group = {"{gl}"};
+ artifact.gl_texture_group = {"glx1"};
+
+ EXPECT_FALSE(artifact.ToArtifactName("app.{feature}.{gl}.apk", &diag));
+
+ artifact.device_feature_group = {"df1"};
+ artifact.gl_texture_group = {"{feature}"};
+ {
+ const auto& result = artifact.ToArtifactName("app.{feature}.{gl}.apk", &diag);
+ EXPECT_TRUE(result);
+ EXPECT_EQ(result.value(), "app.df1.{feature}.apk");
+ }
+
+ // This is an invalid case, but should be the only possible case due to the ordering of
+ // replacement.
+ artifact.device_feature_group = {"{gl}"};
+ artifact.gl_texture_group = {"glx1"};
+ {
+ const auto& result = artifact.ToArtifactName("app.{feature}.apk", &diag);
+ EXPECT_TRUE(result);
+ EXPECT_EQ(result.value(), "app.glx1.apk");
+ }
+}
+
} // namespace
} // namespace aapt