diff options
author | Adam Lesinski <adamlesinski@google.com> | 2017-12-08 16:06:10 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2018-01-11 13:54:11 -0800 |
commit | 73bff1e8519bb73f17a801f45977d41b69b5b0d0 (patch) | |
tree | 9ac5f4e491ed617b6cefe118b91edb637c6c35a4 /tools/aapt2/link/XmlCompatVersioner_test.cpp | |
parent | 14c2ae4a6e62b78f2c994112d08dbe3d4de64695 (diff) |
AAPT2: Allow compatible duplicate Attributes
If a resource XML file defines two compatible Attributes, they should
be merged without throwing an error. Ex:
<declare-styleable>
<attr name="conflict" format="string" />
</declare-styleable>
<declare-styleable>
<attr name="conflict" format="string|reference" />
</declare-styleable>
In this case, string|reference and string are the same, so these should
merge correctly.
Bug: 65699599
Test: make aapt2_tests
Test: make AaptBasicTest
Change-Id: I7b0f956d2332f7f0b458acd59ca0a606b2cfdf95
Diffstat (limited to 'tools/aapt2/link/XmlCompatVersioner_test.cpp')
-rw-r--r-- | tools/aapt2/link/XmlCompatVersioner_test.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/tools/aapt2/link/XmlCompatVersioner_test.cpp b/tools/aapt2/link/XmlCompatVersioner_test.cpp index 29ad25f79ab9..1ed4536c4566 100644 --- a/tools/aapt2/link/XmlCompatVersioner_test.cpp +++ b/tools/aapt2/link/XmlCompatVersioner_test.cpp @@ -54,17 +54,17 @@ class XmlCompatVersionerTest : public ::testing::Test { .AddSymbolSource( test::StaticSymbolSourceBuilder() .AddPublicSymbol("android:attr/paddingLeft", R::attr::paddingLeft, - util::make_unique<Attribute>(false, TYPE_DIMENSION)) + util::make_unique<Attribute>(TYPE_DIMENSION)) .AddPublicSymbol("android:attr/paddingRight", R::attr::paddingRight, - util::make_unique<Attribute>(false, TYPE_DIMENSION)) + util::make_unique<Attribute>(TYPE_DIMENSION)) .AddPublicSymbol("android:attr/progressBarPadding", R::attr::progressBarPadding, - util::make_unique<Attribute>(false, TYPE_DIMENSION)) + util::make_unique<Attribute>(TYPE_DIMENSION)) .AddPublicSymbol("android:attr/paddingStart", R::attr::paddingStart, - util::make_unique<Attribute>(false, TYPE_DIMENSION)) + util::make_unique<Attribute>(TYPE_DIMENSION)) .AddPublicSymbol("android:attr/paddingHorizontal", R::attr::paddingHorizontal, - util::make_unique<Attribute>(false, TYPE_DIMENSION)) + util::make_unique<Attribute>(TYPE_DIMENSION)) .AddSymbol("com.app:attr/foo", ResourceId(0x7f010000), - util::make_unique<Attribute>(false, TYPE_STRING)) + util::make_unique<Attribute>(TYPE_STRING)) .Build()) .Build(); } @@ -126,9 +126,8 @@ TEST_F(XmlCompatVersionerTest, SingleRule) { XmlCompatVersioner::Rules rules; rules[R::attr::paddingHorizontal] = util::make_unique<DegradeToManyRule>(std::vector<ReplacementAttr>( - {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(false, TYPE_DIMENSION)}, - ReplacementAttr{"paddingRight", R::attr::paddingRight, - Attribute(false, TYPE_DIMENSION)}})); + {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(TYPE_DIMENSION)}, + ReplacementAttr{"paddingRight", R::attr::paddingRight, Attribute(TYPE_DIMENSION)}})); const util::Range<ApiVersion> api_range{SDK_GINGERBREAD, SDK_O + 1}; @@ -187,12 +186,11 @@ TEST_F(XmlCompatVersionerTest, ChainedRule) { XmlCompatVersioner::Rules rules; rules[R::attr::progressBarPadding] = util::make_unique<DegradeToManyRule>(std::vector<ReplacementAttr>( - {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(false, TYPE_DIMENSION)}, - ReplacementAttr{"paddingRight", R::attr::paddingRight, - Attribute(false, TYPE_DIMENSION)}})); + {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(TYPE_DIMENSION)}, + ReplacementAttr{"paddingRight", R::attr::paddingRight, Attribute(TYPE_DIMENSION)}})); rules[R::attr::paddingHorizontal] = util::make_unique<DegradeToManyRule>(std::vector<ReplacementAttr>({ReplacementAttr{ - "progressBarPadding", R::attr::progressBarPadding, Attribute(false, TYPE_DIMENSION)}})); + "progressBarPadding", R::attr::progressBarPadding, Attribute(TYPE_DIMENSION)}})); const util::Range<ApiVersion> api_range{SDK_GINGERBREAD, SDK_O + 1}; @@ -267,9 +265,8 @@ TEST_F(XmlCompatVersionerTest, DegradeRuleOverridesExistingAttribute) { XmlCompatVersioner::Rules rules; rules[R::attr::paddingHorizontal] = util::make_unique<DegradeToManyRule>(std::vector<ReplacementAttr>( - {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(false, TYPE_DIMENSION)}, - ReplacementAttr{"paddingRight", R::attr::paddingRight, - Attribute(false, TYPE_DIMENSION)}})); + {ReplacementAttr{"paddingLeft", R::attr::paddingLeft, Attribute(TYPE_DIMENSION)}, + ReplacementAttr{"paddingRight", R::attr::paddingRight, Attribute(TYPE_DIMENSION)}})); const util::Range<ApiVersion> api_range{SDK_GINGERBREAD, SDK_O + 1}; |