| /* | |
| * Copyright (C) 2015 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #include "Resource.h" | |
| #include "test/Test.h" | |
| using ::testing::Eq; | |
| using ::testing::Optional; | |
| namespace aapt { | |
| TEST(ResourceTypeTest, ParseResourceTypes) { | |
| const ResourceType* type = ParseResourceType("anim"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kAnim); | |
| type = ParseResourceType("animator"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kAnimator); | |
| type = ParseResourceType("array"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kArray); | |
| type = ParseResourceType("attr"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kAttr); | |
| type = ParseResourceType("^attr-private"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kAttrPrivate); | |
| type = ParseResourceType("bool"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kBool); | |
| type = ParseResourceType("color"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kColor); | |
| type = ParseResourceType("configVarying"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kConfigVarying); | |
| type = ParseResourceType("dimen"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kDimen); | |
| type = ParseResourceType("drawable"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kDrawable); | |
| type = ParseResourceType("font"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kFont); | |
| type = ParseResourceType("fraction"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kFraction); | |
| type = ParseResourceType("id"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kId); | |
| type = ParseResourceType("integer"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kInteger); | |
| type = ParseResourceType("interpolator"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kInterpolator); | |
| type = ParseResourceType("layout"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kLayout); | |
| type = ParseResourceType("menu"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kMenu); | |
| type = ParseResourceType("mipmap"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kMipmap); | |
| type = ParseResourceType("navigation"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kNavigation); | |
| type = ParseResourceType("plurals"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kPlurals); | |
| type = ParseResourceType("raw"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kRaw); | |
| type = ParseResourceType("string"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kString); | |
| type = ParseResourceType("style"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kStyle); | |
| type = ParseResourceType("transition"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kTransition); | |
| type = ParseResourceType("xml"); | |
| ASSERT_NE(type, nullptr); | |
| EXPECT_EQ(*type, ResourceType::kXml); | |
| type = ParseResourceType("blahaha"); | |
| EXPECT_EQ(type, nullptr); | |
| } | |
| TEST(ResourceTypeTest, ParseResourceNamedType) { | |
| auto type = ParseResourceNamedType("anim"); | |
| EXPECT_THAT(type, Optional(Eq(ResourceNamedType("anim", ResourceType::kAnim)))); | |
| type = ParseResourceNamedType("layout"); | |
| EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout", ResourceType::kLayout)))); | |
| type = ParseResourceNamedType("layout.2"); | |
| EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout.2", ResourceType::kLayout)))); | |
| type = ParseResourceNamedType("layout.another"); | |
| EXPECT_THAT(type, Optional(Eq(ResourceNamedType("layout.another", ResourceType::kLayout)))); | |
| type = ParseResourceNamedType("layout."); | |
| EXPECT_THAT(type, Eq(std::nullopt)); | |
| type = ParseResourceNamedType("layout2"); | |
| EXPECT_THAT(type, Eq(std::nullopt)); | |
| type = ParseResourceNamedType("blahaha"); | |
| EXPECT_THAT(type, Eq(std::nullopt)); | |
| } | |
| TEST(ResourceTypeTest, ResourceNamedTypeWithDefaultName) { | |
| auto type = ResourceNamedTypeWithDefaultName(ResourceType::kAnim); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("anim", ResourceType::kAnim))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kAnimator); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("animator", ResourceType::kAnimator))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kArray); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("array", ResourceType::kArray))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kAttr); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("attr", ResourceType::kAttr))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kAttrPrivate); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("^attr-private", ResourceType::kAttrPrivate))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kBool); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("bool", ResourceType::kBool))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kColor); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("color", ResourceType::kColor))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kConfigVarying); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("configVarying", ResourceType::kConfigVarying))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kDimen); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("dimen", ResourceType::kDimen))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kDrawable); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("drawable", ResourceType::kDrawable))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kFont); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("font", ResourceType::kFont))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kFraction); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("fraction", ResourceType::kFraction))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kId); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("id", ResourceType::kId))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kInteger); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("integer", ResourceType::kInteger))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kInterpolator); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("interpolator", ResourceType::kInterpolator))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kLayout); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("layout", ResourceType::kLayout))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kMenu); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("menu", ResourceType::kMenu))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kMipmap); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("mipmap", ResourceType::kMipmap))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kNavigation); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("navigation", ResourceType::kNavigation))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kPlurals); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("plurals", ResourceType::kPlurals))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kRaw); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("raw", ResourceType::kRaw))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kString); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("string", ResourceType::kString))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kStyle); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("style", ResourceType::kStyle))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kTransition); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("transition", ResourceType::kTransition))); | |
| type = ResourceNamedTypeWithDefaultName(ResourceType::kXml); | |
| EXPECT_THAT(type, Eq(ResourceNamedType("xml", ResourceType::kXml))); | |
| } | |
| } // namespace aapt |