189b56da7SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 389b56da7SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 489b56da7SAndrew Rist * or more contributor license agreements. See the NOTICE file 589b56da7SAndrew Rist * distributed with this work for additional information 689b56da7SAndrew Rist * regarding copyright ownership. The ASF licenses this file 789b56da7SAndrew Rist * to you under the Apache License, Version 2.0 (the 889b56da7SAndrew Rist * "License"); you may not use this file except in compliance 989b56da7SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 1189b56da7SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 1389b56da7SAndrew Rist * Unless required by applicable law or agreed to in writing, 1489b56da7SAndrew Rist * software distributed under the License is distributed on an 1589b56da7SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1689b56da7SAndrew Rist * KIND, either express or implied. See the License for the 1789b56da7SAndrew Rist * specific language governing permissions and limitations 1889b56da7SAndrew Rist * under the License. 19cdf0e10cSrcweir * 2089b56da7SAndrew Rist *************************************************************/ 2189b56da7SAndrew Rist 2289b56da7SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #include "precompiled_tools.hxx" 25cdf0e10cSrcweir #include "sal/config.h" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <cwchar> 28cdf0e10cSrcweir 29*58a353a3SMatthias Seidel #include "gtest/gtest.h" 30cdf0e10cSrcweir #include "tools/pathutils.hxx" 31cdf0e10cSrcweir 32cdf0e10cSrcweir namespace { 33cdf0e10cSrcweir 34cdf0e10cSrcweir void buildPath( 35cdf0e10cSrcweir wchar_t const * front, wchar_t const * back, wchar_t const * path) 36cdf0e10cSrcweir { 37cdf0e10cSrcweir #if defined WNT 38cdf0e10cSrcweir wchar_t p[MAX_PATH]; 39cdf0e10cSrcweir wchar_t * e = tools::buildPath( 40cdf0e10cSrcweir p, front, front + std::wcslen(front), back, std::wcslen(back)); 41*58a353a3SMatthias Seidel ASSERT_EQ(p + std::wcslen(path), e); 42*58a353a3SMatthias Seidel ASSERT_EQ(0, std::wcscmp(path, p)); 43cdf0e10cSrcweir #else 44cdf0e10cSrcweir (void) front; 45cdf0e10cSrcweir (void) back; 46cdf0e10cSrcweir (void) path; 47cdf0e10cSrcweir #endif 48cdf0e10cSrcweir } 49cdf0e10cSrcweir 50*58a353a3SMatthias Seidel class Test: public ::testing::Test { 51cdf0e10cSrcweir public: 52*58a353a3SMatthias Seidel void SetUp() 53*58a353a3SMatthias Seidel { 54*58a353a3SMatthias Seidel } 55cdf0e10cSrcweir 56*58a353a3SMatthias Seidel void TearDown() 57*58a353a3SMatthias Seidel { 58*58a353a3SMatthias Seidel } 59cdf0e10cSrcweir }; 60cdf0e10cSrcweir 61*58a353a3SMatthias Seidel TEST_F(Test, testBuildPath) { 62cdf0e10cSrcweir buildPath(L"a:\\b\\", L"..", L"a:\\"); 63cdf0e10cSrcweir buildPath(L"a:\\b\\", L"..\\", L"a:\\"); 64cdf0e10cSrcweir buildPath(L"a:\\b\\c\\", L"..\\..\\..\\d", L"a:\\..\\d"); 65cdf0e10cSrcweir buildPath(L"\\\\a\\b\\", L"..\\..\\..\\c", L"\\\\..\\c"); 66cdf0e10cSrcweir buildPath(L"\\", L"..\\a", L"\\..\\a"); 67cdf0e10cSrcweir buildPath(L"", L"..\\a", L"..\\a"); 68cdf0e10cSrcweir } 69cdf0e10cSrcweir 70cdf0e10cSrcweir } 71cdf0e10cSrcweir 72*58a353a3SMatthias Seidel int main(int argc, char **argv) 73*58a353a3SMatthias Seidel { 74*58a353a3SMatthias Seidel ::testing::InitGoogleTest(&argc, argv); 75*58a353a3SMatthias Seidel return RUN_ALL_TESTS(); 76*58a353a3SMatthias Seidel } 77*58a353a3SMatthias Seidel 78