| // Copyright 2022 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. | |
| #include "util/atomic_write.h" | |
| #include <string> | |
| #include "base/files/file_util.h" | |
| #include "base/files/scoped_temp_dir.h" | |
| #include "util/test/test.h" | |
| class ImportantFileWriterTest : public testing::Test { | |
| public: | |
| ImportantFileWriterTest() = default; | |
| void SetUp() override { | |
| ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | |
| file_ = temp_dir_.GetPath().AppendASCII("test-file"); | |
| } | |
| protected: | |
| base::FilePath file_; | |
| private: | |
| base::ScopedTempDir temp_dir_; | |
| }; | |
| // Test that WriteFileAtomically works. | |
| TEST_F(ImportantFileWriterTest, Basic) { | |
| const std::string data = "Test string for writing."; | |
| EXPECT_FALSE(base::PathExists(file_)); | |
| EXPECT_TRUE(util::WriteFileAtomically(file_, data.data(), data.size())); | |
| std::string actual; | |
| EXPECT_TRUE(ReadFileToString(file_, &actual)); | |
| EXPECT_EQ(data, actual); | |
| } |