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