16f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski/*
26f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * Copyright (C) 2015 The Android Open Source Project
36f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski *
46f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
56f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * you may not use this file except in compliance with the License.
66f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * You may obtain a copy of the License at
76f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski *
86f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
96f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski *
106f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * Unless required by applicable law or agreed to in writing, software
116f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
126f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * See the License for the specific language governing permissions and
146f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski * limitations under the License.
156f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski */
166f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
176f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski#include "Resource.h"
18ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski
19d0f116b619feede0cfdb647157ce5ab4d50a1c46Adam Lesinski#include "test/Test.h"
206f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
216f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinskinamespace aapt {
226f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
236f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam LesinskiTEST(ResourceTypeTest, ParseResourceTypes) {
24ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  const ResourceType* type = ParseResourceType("anim");
25cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
26cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kAnim);
276f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
28ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("animator");
29cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
30cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kAnimator);
316f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
32ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("array");
33cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
34cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kArray);
356f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
36ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("attr");
37cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
38cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kAttr);
396f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
40ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("^attr-private");
41cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
42cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kAttrPrivate);
436f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
44ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("bool");
45cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
46cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kBool);
476f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
48ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("color");
49cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
50cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kColor);
516f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
5286d67df8d57b9537666f9b54a9ca563779a2288bAdam Lesinski  type = ParseResourceType("configVarying");
5386d67df8d57b9537666f9b54a9ca563779a2288bAdam Lesinski  ASSERT_NE(type, nullptr);
5486d67df8d57b9537666f9b54a9ca563779a2288bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kConfigVarying);
5586d67df8d57b9537666f9b54a9ca563779a2288bAdam Lesinski
56ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("dimen");
57cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
58cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kDimen);
596f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
60ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("drawable");
61cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
62cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kDrawable);
636f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
64c0c366394c658e3787b12e65833b520c9a9a34d9Adam Lesinski  type = ParseResourceType("font");
65c0c366394c658e3787b12e65833b520c9a9a34d9Adam Lesinski  ASSERT_NE(type, nullptr);
66c0c366394c658e3787b12e65833b520c9a9a34d9Adam Lesinski  EXPECT_EQ(*type, ResourceType::kFont);
67c0c366394c658e3787b12e65833b520c9a9a34d9Adam Lesinski
68ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("fraction");
69cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
70cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kFraction);
716f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
72ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("id");
73cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
74cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kId);
756f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
76ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("integer");
77cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
78cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kInteger);
796f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
80ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("interpolator");
81cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
82cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kInterpolator);
836f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
84ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("layout");
85cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
86cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kLayout);
876f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
88ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("menu");
89cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
90cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kMenu);
916f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
92ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("mipmap");
93cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
94cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kMipmap);
956f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
96ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("plurals");
97cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
98cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kPlurals);
996f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
100ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("raw");
101cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
102cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kRaw);
1036f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
104ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("string");
105cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
106cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kString);
1076f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
108ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("style");
109cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
110cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kStyle);
1116f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
112ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("transition");
113cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
114cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kTransition);
1156f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
116ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("xml");
117cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  ASSERT_NE(type, nullptr);
118cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(*type, ResourceType::kXml);
1196f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
120ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski  type = ParseResourceType("blahaha");
121cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski  EXPECT_EQ(type, nullptr);
1226f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski}
1236f6ceb7e1456698b1f33e04536bfb3227f9fcfcbAdam Lesinski
124cacb28f2d60858106e2819cc7d95a65e8bda890bAdam Lesinski}  // namespace aapt
125