| // Copyright 2015 The PDFium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef TESTING_UTILS_PATH_SERVICE_H_ |
| #define TESTING_UTILS_PATH_SERVICE_H_ |
| |
| #include <string> |
| |
| #ifdef _WIN32 |
| #define PATH_SEPARATOR '\\' |
| #else |
| #define PATH_SEPARATOR '/' |
| #endif |
| |
| // Get the various file directory and path information. |
| class PathService { |
| public: |
| // Return true when the path is a directory that exists. |
| static bool DirectoryExists(const std::string& path); |
| |
| // Return true when the path ends with a path separator. |
| static bool EndsWithSeparator(const std::string& path); |
| |
| // Retrieve the directory where executables run from. |
| static bool GetExecutableDir(std::string* path); |
| |
| // Retrieve the root directory of the source tree. |
| // Assume executables always run from out/<build_dir_name>/, so the source |
| // directory is two levels above the executable directory. |
| static bool GetSourceDir(std::string* path); |
| |
| // Retrieve the test data directory where test files are stored. |
| // Try <source_dir>/testing/resources/ first. If it does not exist, try |
| // checking <source_dir>/third_party/pdfium/testing/resources/. |
| static bool GetTestDataDir(std::string* path); |
| |
| // Get the full path for a test file under the test data directory. |
| // Returns an empty string on failure. |
| static std::string GetTestFilePath(const std::string& file_name); |
| |
| // Get the full path for a file under the third-party directory. |
| static bool GetThirdPartyFilePath(const std::string& file_name, |
| std::string* path); |
| }; |
| #endif // TESTING_UTILS_PATH_SERVICE_H_ |