/* * 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