196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski/* 296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * Copyright (C) 2016 The Android Open Source Project 396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * 496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * you may not use this file except in compliance with the License. 696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * You may obtain a copy of the License at 796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * 896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * 1096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * Unless required by applicable law or agreed to in writing, software 1196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 1296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * See the License for the specific language governing permissions and 1496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski * limitations under the License. 1596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski */ 1696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 1796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski#include "test/Test.h" 1896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski#include "util/Files.h" 1996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 2096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski#include <sstream> 2196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 2296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskinamespace aapt { 2396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskinamespace file { 2496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 2596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskiclass FilesTest : public ::testing::Test { 2696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskipublic: 2796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski void SetUp() override { 2896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski std::stringstream builder; 2996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski builder << "hello" << sDirSep << "there"; 3096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski mExpectedPath = builder.str(); 3196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski } 3296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 3396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskiprotected: 3496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski std::string mExpectedPath; 3596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski}; 3696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 3796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam LesinskiTEST_F(FilesTest, appendPath) { 3896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski std::string base = "hello"; 3996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski appendPath(&base, "there"); 4096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski EXPECT_EQ(mExpectedPath, base); 4196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} 4296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 4396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam LesinskiTEST_F(FilesTest, appendPathWithLeadingOrTrailingSeparators) { 4496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski std::string base = "hello/"; 4596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski appendPath(&base, "there"); 4696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski EXPECT_EQ(mExpectedPath, base); 4796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 4896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski base = "hello"; 4996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski appendPath(&base, "/there"); 5096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski EXPECT_EQ(mExpectedPath, base); 5196917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 5296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski base = "hello/"; 5396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski appendPath(&base, "/there"); 5496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski EXPECT_EQ(mExpectedPath, base); 5596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} 5696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 5796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} // namespace files 5896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} // namespace aapt 59