summaryrefslogtreecommitdiff
path: root/tools/aapt2/split/TableSplitter_test.cpp
diff options
context:
space:
mode:
authorPierre Lecesne <lecesne@google.com>2017-02-06 10:29:02 +0000
committerPierre Lecesne <lecesne@google.com>2017-02-12 15:57:41 +0000
commit672384b41e1fc7195424533b7aa6753fb771a6cb (patch)
tree2fa775cab3a3f4b0df5649b2f25e6c0577c0e44c /tools/aapt2/split/TableSplitter_test.cpp
parent85a05cd9b5945c42f46ce1bcacb2d1e0aa8c7a44 (diff)
Allow for multiple preferred densities in the strip command.
Test: Unit tests pass. Change-Id: I1f27ac8c36ff3489e4c8e4fce7f3d9cb31df6906
Diffstat (limited to 'tools/aapt2/split/TableSplitter_test.cpp')
-rw-r--r--tools/aapt2/split/TableSplitter_test.cpp47
1 files changed, 46 insertions, 1 deletions
diff --git a/tools/aapt2/split/TableSplitter_test.cpp b/tools/aapt2/split/TableSplitter_test.cpp
index 088dac374458..d52f4b446b8f 100644
--- a/tools/aapt2/split/TableSplitter_test.cpp
+++ b/tools/aapt2/split/TableSplitter_test.cpp
@@ -39,7 +39,7 @@ TEST(TableSplitterTest, NoSplitPreferredDensity) {
.Build();
TableSplitterOptions options;
- options.preferred_density = ConfigDescription::DENSITY_XHIGH;
+ options.preferred_densities.push_back(ConfigDescription::DENSITY_XHIGH);
TableSplitter splitter({}, options);
splitter.SplitTable(table.get());
@@ -58,6 +58,51 @@ TEST(TableSplitterTest, NoSplitPreferredDensity) {
EXPECT_NE(nullptr, test::GetValue<Id>(table.get(), "android:string/one"));
}
+TEST(TableSplitterTest, NoSplitMultiplePreferredDensities) {
+ std::unique_ptr<ResourceTable> table =
+ test::ResourceTableBuilder()
+ .AddFileReference("android:drawable/icon",
+ "res/drawable-mdpi/icon.png",
+ test::ParseConfigOrDie("mdpi"))
+ .AddFileReference("android:drawable/icon",
+ "res/drawable-hdpi/icon.png",
+ test::ParseConfigOrDie("hdpi"))
+ .AddFileReference("android:drawable/icon",
+ "res/drawable-xhdpi/icon.png",
+ test::ParseConfigOrDie("xhdpi"))
+ .AddFileReference("android:drawable/icon",
+ "res/drawable-xxhdpi/icon.png",
+ test::ParseConfigOrDie("xxhdpi"))
+ .AddSimple("android:string/one")
+ .Build();
+
+ TableSplitterOptions options;
+ options.preferred_densities.push_back(ConfigDescription::DENSITY_LOW);
+ options.preferred_densities.push_back(ConfigDescription::DENSITY_XXXHIGH);
+ TableSplitter splitter({}, options);
+ splitter.SplitTable(table.get());
+
+ // Densities remaining:
+ // "mdpi" is the closest available density for the requested "ldpi" density.
+ EXPECT_NE(nullptr, test::GetValueForConfig<FileReference>(
+ table.get(), "android:drawable/icon",
+ test::ParseConfigOrDie("mdpi")));
+ // "xxhdpi" is the closest available density for the requested "xxxhdpi" density.
+ EXPECT_NE(nullptr, test::GetValueForConfig<FileReference>(
+ table.get(), "android:drawable/icon",
+ test::ParseConfigOrDie("xxhdpi")));
+ EXPECT_NE(nullptr, test::GetValue<Id>(table.get(), "android:string/one"));
+
+ // Removed densities:
+ EXPECT_EQ(nullptr, test::GetValueForConfig<FileReference>(
+ table.get(), "android:drawable/icon",
+ test::ParseConfigOrDie("hdpi")));
+ EXPECT_EQ(nullptr, test::GetValueForConfig<FileReference>(
+ table.get(), "android:drawable/icon",
+ test::ParseConfigOrDie("xhdpi")));
+}
+
+
TEST(TableSplitterTest, SplitTableByDensity) {
std::unique_ptr<ResourceTable> table =
test::ResourceTableBuilder()