// Copyright 2016 The Chromium Embedded Framework Authors. Portions copyright // 2012 The Chromium Authors. All rights reserved. Use of this source code is // governed by a BSD-style license that can be found in the LICENSE file. #ifndef CEF_TESTS_SHARED_BROWSER_FILE_UTIL_H_ #define CEF_TESTS_SHARED_BROWSER_FILE_UTIL_H_ #pragma once #include #include namespace client { namespace file_util { // Platform-specific path separator. extern const char kPathSep; // Reads the file at |path| into |contents| and returns true on success and // false on error. In case of I/O error, |contents| holds the data that could // be read from the file before the error occurred. When the file size exceeds // max_size|, the function returns false with |contents| holding the file // truncated to |max_size|. |contents| may be NULL, in which case this function // is useful for its side effect of priming the disk cache (could be used for // unit tests). Calling this function on the browser process UI or IO threads is // not allowed. bool ReadFileToString(const std::string& path, std::string* contents, size_t max_size = std::numeric_limits::max()); // Writes the given buffer into the file, overwriting any data that was // previously there. Returns the number of bytes written, or -1 on error. // Calling this function on the browser process UI or IO threads is not allowed. int WriteFile(const std::string& path, const char* data, int size); // Combines |path1| and |path2| with the correct platform-specific path // separator. std::string JoinPath(const std::string& path1, const std::string& path2); // Extracts the file extension from |path|. std::string GetFileExtension(const std::string& path); } // namespace file_util } // namespace client #endif // CEF_TESTS_SHARED_BROWSER_FILE_UTIL_H_