// Copyright (c) 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 BASE_TEST_SCOPED_PATH_OVERRIDE_H_ #define BASE_TEST_SCOPED_PATH_OVERRIDE_H_ #include "base/files/scoped_temp_dir.h" #include "base/macros.h" namespace base { class FilePath; // Sets a path override on construction, and removes it when the object goes out // of scope. This class is intended to be used by tests that need to override // paths to ensure their overrides are properly handled and reverted when the // scope of the test is left. class ScopedPathOverride { public: // Contructor that initializes the override to a scoped temp directory. explicit ScopedPathOverride(int key); // Constructor that would use a path provided by the user. ScopedPathOverride(int key, const FilePath& dir); // See PathService::OverrideAndCreateIfNeeded. ScopedPathOverride(int key, const FilePath& path, bool is_absolute, bool create); ~ScopedPathOverride(); private: int key_; ScopedTempDir temp_dir_; DISALLOW_COPY_AND_ASSIGN(ScopedPathOverride); }; } // namespace base #endif // BASE_TEST_SCOPED_PATH_OVERRIDE_H_