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 "util/Files.h" 1896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 1996917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski#include <sstream> 2096917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 21ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski#include "test/Test.h" 22ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski 2396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskinamespace aapt { 2496917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskinamespace file { 2596917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 2696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinskiclass FilesTest : public ::testing::Test { 27ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski public: 28ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski void SetUp() override { 29ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski std::stringstream builder; 30ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski builder << "hello" << sDirSep << "there"; 31ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski expected_path_ = builder.str(); 32ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski } 33ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski 34ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski protected: 35ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski std::string expected_path_; 3696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski}; 3796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 38ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam LesinskiTEST_F(FilesTest, AppendPath) { 39ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski std::string base = "hello"; 40ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski AppendPath(&base, "there"); 41ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski EXPECT_EQ(expected_path_, base); 4296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} 4396917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 44ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam LesinskiTEST_F(FilesTest, AppendPathWithLeadingOrTrailingSeparators) { 45ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski std::string base = "hello/"; 46ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski AppendPath(&base, "there"); 47ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski EXPECT_EQ(expected_path_, base); 4896917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 49ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski base = "hello"; 50ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski AppendPath(&base, "/there"); 51ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski EXPECT_EQ(expected_path_, base); 5296917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 53ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski base = "hello/"; 54ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski AppendPath(&base, "/there"); 55ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski EXPECT_EQ(expected_path_, base); 5696917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski} 5796917c25f09bb2f33e22f20cdfa4ece8f310b084Adam Lesinski 58ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski} // namespace files 59ce5e56e243d262a9b65459c3bd0bb9eaadd40628Adam Lesinski} // namespace aapt 60