1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #include <sal/config.h>
11 
12 #include <cppunit/TestAssert.h>
13 #include <osl/file.hxx>
14 #include <unotest/directories.hxx>
15 
16 namespace {
17 
getFileURLFromSystemPath(OUString const & path)18 OUString getFileURLFromSystemPath(OUString const & path) {
19     OUString url;
20     osl::FileBase::RC e = osl::FileBase::getFileURLFromSystemPath(path, url);
21     CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e);
22     if (!url.endsWith("/")) {
23         url += "/";
24     }
25     return url;
26 }
27 
28 }
29 
Directories()30 test::Directories::Directories() {
31     const char* pSrcRoot = getenv( "SRC_ROOT" );
32     CPPUNIT_ASSERT_MESSAGE("SRC_ROOT env variable not set", pSrcRoot != nullptr);
33     CPPUNIT_ASSERT_MESSAGE("SRC_ROOT env variable not set", pSrcRoot[0] != 0);
34     const char* pWorkdirRoot = getenv( "WORKDIR_FOR_BUILD" );
35     CPPUNIT_ASSERT_MESSAGE("$WORKDIR_FOR_BUILD env variable not set", pWorkdirRoot != nullptr);
36     CPPUNIT_ASSERT_MESSAGE("$WORKDIR_FOR_BUILD env variable not set", pWorkdirRoot[0] != 0);
37     m_aSrcRootPath = OUString::createFromAscii( pSrcRoot );
38     m_aSrcRootURL = getFileURLFromSystemPath(m_aSrcRootPath);
39 
40     m_aWorkdirRootPath = OUString::createFromAscii( pWorkdirRoot );
41     m_aWorkdirRootURL = getFileURLFromSystemPath(m_aWorkdirRootPath);
42 }
43 
getURLFromSrc(const OUString & rPath) const44 OUString test::Directories::getURLFromSrc(const OUString& rPath) const
45 {
46     return m_aSrcRootURL + rPath;
47 }
48 
getPathFromSrc(const OUString & rPath) const49 OUString test::Directories::getPathFromSrc(const OUString& rPath) const
50 {
51     return m_aSrcRootPath + rPath;
52 }
53 
getURLFromWorkdir(const OUString & rPath) const54 OUString test::Directories::getURLFromWorkdir(const OUString& rPath) const
55 {
56     return m_aWorkdirRootURL + rPath;
57 }
58 
getPathFromWorkdir(const OUString & rPath) const59 OUString test::Directories::getPathFromWorkdir(const OUString& rPath) const
60 {
61     return m_aWorkdirRootPath + rPath;
62 }
63 
64 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
65