1769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski/* 2769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * Copyright (C) 2015 The Android Open Source Project 3769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * 4769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * you may not use this file except in compliance with the License. 6769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * You may obtain a copy of the License at 7769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * 8769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * 10769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * See the License for the specific language governing permissions and 14769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski * limitations under the License. 15769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski */ 16769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 17769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski#include "NameMangler.h" 18769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 19769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski#include <gtest/gtest.h> 20769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski#include <string> 21769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 22769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinskinamespace aapt { 23769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 24769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam LesinskiTEST(NameManglerTest, MangleName) { 25769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski std::u16string package = u"android.appcompat"; 26769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski std::u16string name = u"Platform.AppCompat"; 27769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 28769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski NameMangler::mangle(package, &name); 29769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski EXPECT_EQ(name, u"android.appcompat$Platform.AppCompat"); 30769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 31769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski std::u16string newPackage; 32769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski ASSERT_TRUE(NameMangler::unmangle(&name, &newPackage)); 33769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski EXPECT_EQ(name, u"Platform.AppCompat"); 34769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski EXPECT_EQ(newPackage, u"android.appcompat"); 35769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski} 36769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 37769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam LesinskiTEST(NameManglerTest, IgnoreUnmangledName) { 38769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski std::u16string package; 39769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski std::u16string name = u"foo_bar"; 40769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 41769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski EXPECT_FALSE(NameMangler::unmangle(&name, &package)); 42769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski EXPECT_EQ(name, u"foo_bar"); 43769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski} 44769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski 45769de98f2dd41bfe39a1c9f76aefd1ad58942733Adam Lesinski} // namespace aapt 46