summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceValues_test.cpp
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2017-10-18 15:07:33 -0700
committerAdam Lesinski <adamlesinski@google.com>2017-10-18 15:12:42 -0700
commit8a0b238b1344dae0042bbb17b71c0c3b9b881f22 (patch)
tree08e3b0916bdee1b41d98a58e9049b9938ee6b10b /tools/aapt2/ResourceValues_test.cpp
parent85e7dbc93ee35d134a75a352093baf29127715ea (diff)
AAPT2: Ensure strings are sorted by configuration
Keep strings sorted by configuration so that strings likely to be selected (all match the same locale, for instance) are close together. Bug: 67958501 Test: make aapt2_tests Change-Id: Id17d93bf2e03ce408a6f619d3ea6dc313e393b76
Diffstat (limited to 'tools/aapt2/ResourceValues_test.cpp')
-rw-r--r--tools/aapt2/ResourceValues_test.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceValues_test.cpp b/tools/aapt2/ResourceValues_test.cpp
index 10f9b55ede08..a80a9dc177f1 100644
--- a/tools/aapt2/ResourceValues_test.cpp
+++ b/tools/aapt2/ResourceValues_test.cpp
@@ -18,6 +18,10 @@
#include "test/Test.h"
+using ::testing::Eq;
+using ::testing::SizeIs;
+using ::testing::StrEq;
+
namespace aapt {
TEST(ResourceValuesTest, PluralEquals) {
@@ -148,6 +152,22 @@ TEST(ResourceValuesTest, StyleClone) {
EXPECT_TRUE(a->Equals(b.get()));
}
+TEST(ResourcesValuesTest, StringClones) {
+ StringPool pool_a;
+ StringPool pool_b;
+
+ String str_a(pool_a.MakeRef("hello", StringPool::Context(test::ParseConfigOrDie("en"))));
+
+ ASSERT_THAT(pool_a, SizeIs(1u));
+ EXPECT_THAT(pool_a.strings()[0]->context.config, Eq(test::ParseConfigOrDie("en")));
+ EXPECT_THAT(pool_a.strings()[0]->value, StrEq("hello"));
+
+ std::unique_ptr<String> str_b(str_a.Clone(&pool_b));
+ ASSERT_THAT(pool_b, SizeIs(1u));
+ EXPECT_THAT(pool_b.strings()[0]->context.config, Eq(test::ParseConfigOrDie("en")));
+ EXPECT_THAT(pool_b.strings()[0]->value, StrEq("hello"));
+}
+
TEST(ResourceValuesTest, StyleMerges) {
StringPool pool_a;
StringPool pool_b;