AttributeResolution_test.cpp revision 7a37b74d37ff79e805c9e97d977e07bfec753c5a
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" 187a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include "TestHelpers.h" 197a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include "data/styles/R.h" 207a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 217a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include <android-base/file.h> 227a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski#include <android-base/macros.h> 237a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 247a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiusing namespace android; 257a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiusing android::base::ReadFileToString; 267a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiusing com::android::app::R; 277a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 287a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiclass AttributeResolutionTest : public ::testing::Test { 297a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski public: 307a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski virtual void SetUp() override { 317a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string test_source_dir = TestSourceDir(); 327a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string contents; 337a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski LOG_ALWAYS_FATAL_IF(!ReadFileToString(test_source_dir + "/styles/resources.arsc", &contents)); 347a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski LOG_ALWAYS_FATAL_IF( 357a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski table_.add(contents.data(), contents.size(), 1 /*cookie*/, true /*copyData*/) != NO_ERROR); 367a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 377a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 387a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski protected: 397a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable table_; 407a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski}; 417a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 427a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinskiclass AttributeResolutionXmlTest : public AttributeResolutionTest { 437a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski public: 447a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski virtual void SetUp() override { 457a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski AttributeResolutionTest::SetUp(); 467a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string test_source_dir = TestSourceDir(); 477a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::string contents; 487a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski LOG_ALWAYS_FATAL_IF(!ReadFileToString(test_source_dir + "/styles/layout.xml", &contents)); 497a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski LOG_ALWAYS_FATAL_IF(xml_parser_.setTo(contents.data(), contents.size(), true /*copyData*/) != 507a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski NO_ERROR); 517a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 527a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski // Skip to the first tag. 537a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski while (xml_parser_.next() != ResXMLParser::START_TAG) { 547a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 557a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski } 567a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 577a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski protected: 587a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResXMLTree xml_parser_; 597a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski}; 607a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 617a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionTest, Theme) { 627a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable::Theme theme(table_); 637a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_EQ(NO_ERROR, theme.applyStyle(R::style::StyleTwo)); 647a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 657a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t attrs[] = {R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, 667a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski R::attr::attr_four}; 677a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::vector<uint32_t> values; 687a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values.resize(arraysize(attrs) * 6); 697a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 707a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_TRUE(ResolveAttrs(&theme, 0 /*def_style_attr*/, 0 /*def_style_res*/, 717a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski nullptr /*src_values*/, 0 /*src_values_length*/, attrs, arraysize(attrs), 727a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values.data(), nullptr /*out_indices*/)); 737a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 747a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t public_flag = ResTable_typeSpec::SPEC_PUBLIC; 757a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 767a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t* values_cursor = values.data(); 777a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 787a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_DATA]); 797a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 807a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 817a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 827a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 837a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 847a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 857a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 867a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 877a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 887a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 897a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 907a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 917a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 927a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 937a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(3u, values_cursor[STYLE_DATA]); 947a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 957a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 967a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 977a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 987a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 997a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1007a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1017a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::DATA_NULL_UNDEFINED, values_cursor[STYLE_DATA]); 1027a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1037a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1047a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1057a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1067a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 1077a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1087a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionXmlTest, XmlParser) { 1097a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t attrs[] = {R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, 1107a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski R::attr::attr_four}; 1117a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::vector<uint32_t> values; 1127a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values.resize(arraysize(attrs) * 6); 1137a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1147a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_TRUE(RetrieveAttributes(&table_, &xml_parser_, attrs, arraysize(attrs), values.data(), 1157a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski nullptr /*out_indices*/)); 1167a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1177a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t* values_cursor = values.data(); 1187a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1197a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DATA]); 1207a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1217a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1227a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1237a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1247a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1257a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1267a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_NULL, values_cursor[STYLE_TYPE]); 1277a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DATA]); 1287a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1297a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1307a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1317a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1327a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1337a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1347a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1357a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(10u, values_cursor[STYLE_DATA]); 1367a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1377a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1387a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1397a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1407a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1417a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1427a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_ATTRIBUTE, values_cursor[STYLE_TYPE]); 1437a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(R::attr::attr_indirect, values_cursor[STYLE_DATA]); 1447a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1457a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1467a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1477a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1487a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 1497a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1507a37b74d37ff79e805c9e97d977e07bfec753c5aAdam LesinskiTEST_F(AttributeResolutionXmlTest, ThemeAndXmlParser) { 1517a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ResTable::Theme theme(table_); 1527a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_EQ(NO_ERROR, theme.applyStyle(R::style::StyleTwo)); 1537a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1547a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t attrs[] = {R::attr::attr_one, R::attr::attr_two, R::attr::attr_three, R::attr::attr_four, 1557a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski R::attr::attr_five}; 1567a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski std::vector<uint32_t> values; 1577a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values.resize(arraysize(attrs) * 6); 1587a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1597a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski ASSERT_TRUE(ApplyStyle(&theme, &xml_parser_, 0 /*def_style_attr*/, 0 /*def_style_res*/, attrs, 1607a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski arraysize(attrs), values.data(), nullptr /*out_indices*/)); 1617a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1627a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski const uint32_t public_flag = ResTable_typeSpec::SPEC_PUBLIC; 1637a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1647a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski uint32_t* values_cursor = values.data(); 1657a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1667a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_DATA]); 1677a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1687a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1697a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1707a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1717a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1727a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1737a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 1747a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1757a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1767a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1777a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1787a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1797a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1807a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1817a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(10u, values_cursor[STYLE_DATA]); 1827a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1837a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(uint32_t(-1), values_cursor[STYLE_ASSET_COOKIE]); 1847a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1857a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1867a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1877a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1887a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_INT_DEC, values_cursor[STYLE_TYPE]); 1897a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(3u, values_cursor[STYLE_DATA]); 1907a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_RESOURCE_ID]); 1917a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1927a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 1937a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 1947a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski 1957a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski values_cursor += STYLE_NUM_ENTRIES; 1967a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(Res_value::TYPE_STRING, values_cursor[STYLE_TYPE]); 1977a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(R::string::string_one, values_cursor[STYLE_RESOURCE_ID]); 1987a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(1u, values_cursor[STYLE_ASSET_COOKIE]); 1997a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(0u, values_cursor[STYLE_DENSITY]); 2007a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski EXPECT_EQ(public_flag, values_cursor[STYLE_CHANGING_CONFIGURATIONS]); 2017a37b74d37ff79e805c9e97d977e07bfec753c5aAdam Lesinski} 202