| // 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); |
| } |