diff options
author | Pierre Lecesne <lecesne@google.com> | 2017-02-06 10:29:02 +0000 |
---|---|---|
committer | Pierre Lecesne <lecesne@google.com> | 2017-02-12 15:57:41 +0000 |
commit | 672384b41e1fc7195424533b7aa6753fb771a6cb (patch) | |
tree | 2fa775cab3a3f4b0df5649b2f25e6c0577c0e44c /tools/aapt2/split/TableSplitter_test.cpp | |
parent | 85a05cd9b5945c42f46ce1bcacb2d1e0aa8c7a44 (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.cpp | 47 |
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() |