1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include <gtest/gtest.h>
18 
19 #include "Resource.h"
20 
21 namespace aapt {
22 
TEST(ResourceTypeTest,ParseResourceTypes)23 TEST(ResourceTypeTest, ParseResourceTypes) {
24     const ResourceType* type = parseResourceType(u"anim");
25     ASSERT_NE(type, nullptr);
26     EXPECT_EQ(*type, ResourceType::kAnim);
27 
28     type = parseResourceType(u"animator");
29     ASSERT_NE(type, nullptr);
30     EXPECT_EQ(*type, ResourceType::kAnimator);
31 
32     type = parseResourceType(u"array");
33     ASSERT_NE(type, nullptr);
34     EXPECT_EQ(*type, ResourceType::kArray);
35 
36     type = parseResourceType(u"attr");
37     ASSERT_NE(type, nullptr);
38     EXPECT_EQ(*type, ResourceType::kAttr);
39 
40     type = parseResourceType(u"^attr-private");
41     ASSERT_NE(type, nullptr);
42     EXPECT_EQ(*type, ResourceType::kAttrPrivate);
43 
44     type = parseResourceType(u"bool");
45     ASSERT_NE(type, nullptr);
46     EXPECT_EQ(*type, ResourceType::kBool);
47 
48     type = parseResourceType(u"color");
49     ASSERT_NE(type, nullptr);
50     EXPECT_EQ(*type, ResourceType::kColor);
51 
52     type = parseResourceType(u"dimen");
53     ASSERT_NE(type, nullptr);
54     EXPECT_EQ(*type, ResourceType::kDimen);
55 
56     type = parseResourceType(u"drawable");
57     ASSERT_NE(type, nullptr);
58     EXPECT_EQ(*type, ResourceType::kDrawable);
59 
60     type = parseResourceType(u"fraction");
61     ASSERT_NE(type, nullptr);
62     EXPECT_EQ(*type, ResourceType::kFraction);
63 
64     type = parseResourceType(u"id");
65     ASSERT_NE(type, nullptr);
66     EXPECT_EQ(*type, ResourceType::kId);
67 
68     type = parseResourceType(u"integer");
69     ASSERT_NE(type, nullptr);
70     EXPECT_EQ(*type, ResourceType::kInteger);
71 
72     type = parseResourceType(u"integer-array");
73     ASSERT_NE(type, nullptr);
74     EXPECT_EQ(*type, ResourceType::kIntegerArray);
75 
76     type = parseResourceType(u"interpolator");
77     ASSERT_NE(type, nullptr);
78     EXPECT_EQ(*type, ResourceType::kInterpolator);
79 
80     type = parseResourceType(u"layout");
81     ASSERT_NE(type, nullptr);
82     EXPECT_EQ(*type, ResourceType::kLayout);
83 
84     type = parseResourceType(u"menu");
85     ASSERT_NE(type, nullptr);
86     EXPECT_EQ(*type, ResourceType::kMenu);
87 
88     type = parseResourceType(u"mipmap");
89     ASSERT_NE(type, nullptr);
90     EXPECT_EQ(*type, ResourceType::kMipmap);
91 
92     type = parseResourceType(u"plurals");
93     ASSERT_NE(type, nullptr);
94     EXPECT_EQ(*type, ResourceType::kPlurals);
95 
96     type = parseResourceType(u"raw");
97     ASSERT_NE(type, nullptr);
98     EXPECT_EQ(*type, ResourceType::kRaw);
99 
100     type = parseResourceType(u"string");
101     ASSERT_NE(type, nullptr);
102     EXPECT_EQ(*type, ResourceType::kString);
103 
104     type = parseResourceType(u"style");
105     ASSERT_NE(type, nullptr);
106     EXPECT_EQ(*type, ResourceType::kStyle);
107 
108     type = parseResourceType(u"transition");
109     ASSERT_NE(type, nullptr);
110     EXPECT_EQ(*type, ResourceType::kTransition);
111 
112     type = parseResourceType(u"xml");
113     ASSERT_NE(type, nullptr);
114     EXPECT_EQ(*type, ResourceType::kXml);
115 
116     type = parseResourceType(u"blahaha");
117     EXPECT_EQ(type, nullptr);
118 }
119 
120 } // namespace aapt
121