summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormunjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-29 21:08:14 +0000
committermunjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-29 21:08:14 +0000
commitf1a8760cc11a49cf1aca88c76712bc2d55a8f5ac (patch)
tree255902f572beac669f3efa7ffc86a6ea82b0e4d3 /chrome
parent6af916aa551e6d6ce44404ab8775da015bb6d533 (diff)
downloadchromium_src-f1a8760cc11a49cf1aca88c76712bc2d55a8f5ac.zip
chromium_src-f1a8760cc11a49cf1aca88c76712bc2d55a8f5ac.tar.gz
chromium_src-f1a8760cc11a49cf1aca88c76712bc2d55a8f5ac.tar.bz2
Clean-up temporary files/folders in firefox importer tests.
Review URL: http://codereview.chromium.org/115930 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17238 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/importer/firefox_importer_unittest.cc4
-rw-r--r--chrome/chrome.gyp2
-rw-r--r--chrome/test/file_test_utils.cc13
-rw-r--r--chrome/test/file_test_utils.h24
-rw-r--r--chrome/test/unit/unittests.vcproj8
5 files changed, 51 insertions, 0 deletions
diff --git a/chrome/browser/importer/firefox_importer_unittest.cc b/chrome/browser/importer/firefox_importer_unittest.cc
index d753ecb0..e836a5a 100644
--- a/chrome/browser/importer/firefox_importer_unittest.cc
+++ b/chrome/browser/importer/firefox_importer_unittest.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/importer/firefox_importer_utils.h"
#include "chrome/browser/importer/firefox_profile_lock.h"
#include "chrome/common/chrome_paths.h"
+#include "chrome/test/file_test_utils.h"
using base::Time;
@@ -148,6 +149,7 @@ TEST(FirefoxImporterTest, ProfileLock) {
std::wstring test_path;
file_util::CreateNewTempDirectory(L"firefox_profile", &test_path);
FilePath lock_file_path = FilePath::FromWStringHack(test_path);
+ FileAutoDeleter deleter(lock_file_path);
lock_file_path = lock_file_path.Append(FirefoxProfileLock::kLockFileName);
scoped_ptr<FirefoxProfileLock> lock;
@@ -175,6 +177,7 @@ TEST(FirefoxImporterTest, ProfileLockOrphaned) {
std::wstring test_path;
file_util::CreateNewTempDirectory(L"firefox_profile", &test_path);
FilePath lock_file_path = FilePath::FromWStringHack(test_path);
+ FileAutoDeleter deleter(lock_file_path);
lock_file_path = lock_file_path.Append(FirefoxProfileLock::kLockFileName);
// Create the orphaned lock file.
@@ -195,6 +198,7 @@ TEST(FirefoxImporterTest, ProfileLockOrphaned) {
TEST(FirefoxImporterTest, ProfileLockContention) {
std::wstring test_path;
file_util::CreateNewTempDirectory(L"firefox_profile", &test_path);
+ FileAutoDeleter deleter(FilePath::FromWStringHack(test_path));
scoped_ptr<FirefoxProfileLock> lock1;
EXPECT_EQ(static_cast<FirefoxProfileLock*>(NULL), lock1.get());
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 7ebe16c..f8fea09 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -3144,6 +3144,8 @@
'renderer/renderer_main_unittest.cc',
'test/browser_with_test_window_test.cc',
'test/browser_with_test_window_test.h',
+ 'test/file_test_utils.h',
+ 'test/file_test_utils.cc',
'test/render_view_test.cc',
'test/render_view_test.h',
'test/test_notification_tracker.cc',
diff --git a/chrome/test/file_test_utils.cc b/chrome/test/file_test_utils.cc
new file mode 100644
index 0000000..c781cfe
--- /dev/null
+++ b/chrome/test/file_test_utils.cc
@@ -0,0 +1,13 @@
+// Copyright (c) 2006-2009 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/test/file_test_utils.h"
+
+FileAutoDeleter::FileAutoDeleter(const FilePath& path)
+ : path_(path) {
+}
+
+FileAutoDeleter::~FileAutoDeleter() {
+ file_util::Delete(path_, true);
+}
diff --git a/chrome/test/file_test_utils.h b/chrome/test/file_test_utils.h
new file mode 100644
index 0000000..22368b9
--- /dev/null
+++ b/chrome/test/file_test_utils.h
@@ -0,0 +1,24 @@
+// Copyright (c) 2006-2009 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 CHROME_TEST_FILE_TEST_UTILS_H_
+#define CHROME_TEST_FILE_TEST_UTILS_H_
+
+#include "base/file_path.h"
+#include "base/file_util.h"
+
+// Auto deletes file/folder when it goes out-of-scope. This is useful for tests
+// to cleanup files/folder automatically.
+class FileAutoDeleter {
+ public:
+ explicit FileAutoDeleter(const FilePath& path);
+ ~FileAutoDeleter();
+
+ const FilePath& path() { return path_; }
+ private:
+ FilePath path_;
+ DISALLOW_EVIL_CONSTRUCTORS(FileAutoDeleter);
+};
+
+#endif // CHROME_TEST_FILE_TEST_UTILS_H_
diff --git a/chrome/test/unit/unittests.vcproj b/chrome/test/unit/unittests.vcproj
index 47f1c63..fdaf278 100644
--- a/chrome/test/unit/unittests.vcproj
+++ b/chrome/test/unit/unittests.vcproj
@@ -162,6 +162,14 @@
>
</File>
<File
+ RelativePath="..\file_test_utils.cc"
+ >
+ </File>
+ <File
+ RelativePath="..\file_test_utils.h"
+ >
+ </File>
+ <File
RelativePath="..\in_process_browser_test.cc"
>
</File>