| // 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_ |