Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7157)

Unified Diff: chrome/browser/win/jumplist_file_util_unittest.cc

Issue 2752063002: Remove JumpListIconsOld directory and set upper limit for delete attempts (Closed)
Patch Set: Add jumplist_util_file* and unit tests, plus address other comments. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/win/jumplist_file_util_unittest.cc
diff --git a/chrome/browser/win/jumplist_file_util_unittest.cc b/chrome/browser/win/jumplist_file_util_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..653bbb7974d9fe66ce6d6af5856b5465301af5cf
--- /dev/null
+++ b/chrome/browser/win/jumplist_file_util_unittest.cc
@@ -0,0 +1,100 @@
+// Copyright (c) 2017 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 "chrome/browser/win/jumplist_file_util.h"
+
+#include <fstream>
+#include <string>
+
+#include "base/files/file_util.h"
+#include "base/files/scoped_temp_dir.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+// Random text to write into a file.
grt (UTC plus 2) 2017/03/22 12:07:22 nit: blank line before this and before the close o
chengx 2017/03/22 21:16:37 Done.
+const wchar_t file_content[] = L"I'm random context.";
grt (UTC plus 2) 2017/03/22 12:07:22 constexpr wchar_t kFileContent[] = ...
chengx 2017/03/22 21:16:37 Done.
+
+// Simple function to dump some text into a new file.
+void CreateTextFile(const base::FilePath& filename,
+ const std::wstring& contents) {
+ std::wofstream file;
grt (UTC plus 2) 2017/03/22 12:07:22 ASSERT_EQ(contents.length(), base::WriteFile(filen
chengx 2017/03/22 21:16:36 Done.
+ file.open(filename.value().c_str());
+ ASSERT_TRUE(file.is_open());
+ file << contents;
+ file.close();
+}
+} // namespace
+
+class JumpListFileUtilTest : public testing::Test {
+ public:
grt (UTC plus 2) 2017/03/22 12:07:22 protected
chengx 2017/03/22 21:16:36 Done.
+ JumpListFileUtilTest() {}
+};
+
+TEST_F(JumpListFileUtilTest, DeleteDirectoryContent) {
+ // Create a temporarily directory.
+ base::ScopedTempDir temp_dir;
grt (UTC plus 2) 2017/03/22 12:07:22 put these two lines in a SetUp() override in the t
chengx 2017/03/22 21:16:36 Done.
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+ // Create a file.
+ base::FilePath file_name =
+ temp_dir.GetPath().Append(FILE_PATH_LITERAL("TestDeleteFile.txt"));
+ CreateTextFile(file_name, file_content);
grt (UTC plus 2) 2017/03/22 12:07:22 ASSERT_NO_FATAL_FAILURE(CreateTextFile(...)); here
chengx 2017/03/22 21:16:36 Done.
+ ASSERT_TRUE(PathExists(file_name));
grt (UTC plus 2) 2017/03/22 12:07:22 move this assert into CreateTextFile
chengx 2017/03/22 21:16:36 Done.
+
+ // Delete the directory using DeleteDirectoryContent(). The file should be
+ // deleted and the directory remains.
+ FolderDeleteResult delete_status = SUCCEED;
+ EXPECT_TRUE(DeleteDirectoryContent(temp_dir.GetPath(), true, &delete_status));
+ EXPECT_FALSE(PathExists(file_name));
+ EXPECT_TRUE(DirectoryExists(temp_dir.GetPath()));
+
+ // Delete the directory using DeleteDirectory() and the directory should be
+ // deleted.
+ DeleteDirectory(temp_dir.GetPath(), true, &delete_status);
+ EXPECT_FALSE(DirectoryExists(temp_dir.GetPath()));
+}
+
+TEST_F(JumpListFileUtilTest, DeleteDirectory) {
+ // Create a temporarily directory.
+ base::ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+ // Create a file.
+ base::FilePath file_name =
+ temp_dir.GetPath().Append(FILE_PATH_LITERAL("TestDeleteFile.txt"));
+ CreateTextFile(file_name, file_content);
+ ASSERT_TRUE(PathExists(file_name));
+
+ // Delete the directory using DeleteDirectory(). Both the directory and its
+ // contents should be deleted.
+ FolderDeleteResult delete_status = SUCCEED;
+ DeleteDirectory(temp_dir.GetPath(), true, &delete_status);
+ EXPECT_FALSE(PathExists(file_name));
+ EXPECT_FALSE(DirectoryExists(temp_dir.GetPath()));
+}
+
+TEST_F(JumpListFileUtilTest, DeleteSubDirectory) {
+ // Create a temporarily directory.
+ base::ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+ // Create a subdirectory.
+ base::FilePath test_subdir =
+ temp_dir.GetPath().Append(FILE_PATH_LITERAL("TestSubDirectory"));
+ CreateDirectory(test_subdir);
+ ASSERT_TRUE(PathExists(test_subdir));
+
+ // Delete the directory using DeleteDirectory(), which should fail because
+ // subdirectory exists..
+ FolderDeleteResult delete_status = SUCCEED;
+ DeleteDirectory(temp_dir.GetPath(), false, &delete_status);
+ EXPECT_TRUE(DirectoryExists(temp_dir.GetPath()));
+ EXPECT_TRUE(DirectoryExists(test_subdir));
+ EXPECT_TRUE(delete_status == FAIL_SUBDIRECTORY_EXISTS);
+
+ // Delete the directories using base::Delete() method.
+ base::DeleteFile(temp_dir.GetPath(), true);
+ EXPECT_FALSE(DirectoryExists(temp_dir.GetPath()));
+ EXPECT_FALSE(DirectoryExists(test_subdir));
+}

Powered by Google App Engine
This is Rietveld 408576698