AttributeResolution_test.cpp revision 06d3e8fec7e2b29f99d755bee849023d88957953
17a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski/* 27a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * Copyright (C) 2016 The Android Open Source Project 37a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * 47a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 57a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * you may not use this file except in compliance with the License. 67a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * You may obtain a copy of the License at 77a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * 87a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 97a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * 107a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * Unless required by applicable law or agreed to in writing, software 117a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 127a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * See the License for the specific language governing permissions and 147a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski * limitations under the License. 157a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski */ 167a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 177a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include "androidfw/AttributeResolution.h" 18ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski 1906d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski#include <array> 2006d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski 21ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski#include "android-base/file.h" 22ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski#include "android-base/logging.h" 23ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski#include "android-base/macros.h" 24ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski 257a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include "TestHelpers.h" 267a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include "data/styles/R.h" 277a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 287a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiusing com::android::app::R; 297a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 30ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinskinamespace android { 31ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski 327a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiclass AttributeResolutionTest : public ::testing::Test { 337a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski public: 347a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski virtual void SetUp() override { 357a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string contents; 364c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski ASSERT_TRUE(ReadFileFromZipToString( 374c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski GetTestDataPath() + "/styles/styles.apk", "resources.arsc", &contents)); 384c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski ASSERT_EQ(NO_ERROR, table_.add(contents.data(), contents.size(), 394c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski 1 /*cookie*/, true /*copyData*/)); 407a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 417a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 427a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski protected: 437a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable table_; 447a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski}; 457a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 467a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiclass AttributeResolutionXmlTest : public AttributeResolutionTest { 477a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski public: 487a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski virtual void SetUp() override { 497a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski AttributeResolutionTest::SetUp(); 504c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski 517a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string contents; 524c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski ASSERT_TRUE( 534c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski ReadFileFromZipToString(GetTestDataPath() + "/styles/styles.apk", 544c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski "res/layout/layout.xml", &contents)); 554c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski 564c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski ASSERT_EQ(NO_ERROR, xml_parser_.setTo(contents.data(), contents.size(), 574c67a475a334e4f65238d439a3339195e03c03beAdam Lesinski true /*copyData*/)); 587a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 597a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski // Skip to the first tag. 607a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski while (xml_parser_.next() != ResXMLParser::START_TAG) { 617a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 627a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 637a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 647a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski protected: 657a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResXMLTree xml_parser_; 667a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski}; 677a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 687a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionTest, Theme) { 697a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable::Theme theme(table_); 707a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_EQ(NO_ERROR, theme.applyStyle(R::style::StyleTwo)); 717a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 7206d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, 4> attrs{ 7306d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski {R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, R::attr::attr_four}}; 7406d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, attrs.size() * STYLE_NUM_ENTRIES> values; 757a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 767a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_TRUE(ResolveAttrs(&theme, 0 /*def_style_attr*/, 0 /*def_style_res*/, 7706d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski nullptr /*src_values*/, 0 /*src_values_length*/, attrs.data(), 7806d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski attrs.size(), values.data(), nullptr /*out_indices*/)); 797a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 807a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t public_flag = ResTable_typeSpec::SPEC_PUBLIC; 817a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 827a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t* values_cursor = values.data(); 837a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 847a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_DATA]); 857a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 867a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 877a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 887a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 897a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 907a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 917a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 927a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 937a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 947a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 957a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 967a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 977a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 987a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 997a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(3u, values_cursor[STYLE_DATA]); 1007a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1017a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1027a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1037a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1047a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1057a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1067a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1077a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::DATA_NULL_UNDEFINED, values_cursor[STYLE_DATA]); 1087a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1097a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1107a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1117a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1127a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 1137a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1147a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionXmlTest, XmlParser) { 11506d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, 4> attrs{ 11606d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski {R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, R::attr::attr_four}}; 11706d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, attrs.size() * STYLE_NUM_ENTRIES> values; 1187a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 11906d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski ASSERT_TRUE(RetrieveAttributes(&table_, &xml_parser_, attrs.data(), attrs.size(), values.data(), 12006d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski nullptr /*out_indices*/)); 1217a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1227a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t* values_cursor = values.data(); 1237a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1247a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DATA]); 1257a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1267a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1277a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1287a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1297a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1307a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1317a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1327a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DATA]); 1337a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1347a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1357a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1367a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1377a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1387a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1397a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1407a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(10u, values_cursor[STYLE_DATA]); 1417a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1427a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1437a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1447a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1457a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1467a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1477a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_ATTRIBUTE, values_cursor[STYLE_TYPE]); 1487a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(R::attr::attr_indirect, values_cursor[STYLE_DATA]); 1497a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1507a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1517a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1527a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1537a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 1547a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1557a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionXmlTest, ThemeAndXmlParser) { 1567a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable::Theme theme(table_); 1577a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_EQ(NO_ERROR, theme.applyStyle(R::style::StyleTwo)); 1587a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 15906d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, 5> attrs{{R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, 16006d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski R::attr::attr_four, R::attr::attr_five}}; 16106d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, attrs.size() * STYLE_NUM_ENTRIES> values; 16206d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski std::array<uint32_t, attrs.size()> indices; 1637a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 16406d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski ApplyStyle(&theme, &xml_parser_, 0 /*def_style_attr*/, 0 /*def_style_res*/, attrs.data(), 16506d3e8fec7e2b29f99d755bee849023d88957953Adam Lesinski attrs.size(), values.data(), indices.data()); 1667a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1677a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t public_flag = ResTable_typeSpec::SPEC_PUBLIC; 1687a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1697a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t* values_cursor = values.data(); 1707a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1717a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_DATA]); 1727a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1737a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1747a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1757a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1767a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1777a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1787a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 1797a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1807a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1817a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1827a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1837a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1847a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1857a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1867a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(10u, values_cursor[STYLE_DATA]); 1877a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1887a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1897a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1907a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1917a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1927a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1937a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1947a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(3u, values_cursor[STYLE_DATA]); 1957a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1967a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1977a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1987a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1997a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 2007a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 2017a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 2027a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(R::string::string_one, values_cursor[STYLE_RESOURCE_ID]); 2037a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 2047a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 2057a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 2067a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 207ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski 208ea7897954f6339dcc2e5af1584f72c6b2ecd7a67Adam Lesinski} // namespace android 209