summaryrefslogtreecommitdiffstats
path: root/base/scoped_temp_dir_unittest.cc
diff options
context:
space:
mode:
authorcbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-23 10:06:47 +0000
committercbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-23 10:06:47 +0000
commit9fefee68b27573a37c00bd428d62b72eecbc8993 (patch)
treeec3769c452ad84dc1f347b8b1d116d1e6979b5b6 /base/scoped_temp_dir_unittest.cc
parent27c8112304862f884ad63f90b192a86866d4deda (diff)
downloadchromium_src-9fefee68b27573a37c00bd428d62b72eecbc8993.zip
chromium_src-9fefee68b27573a37c00bd428d62b72eecbc8993.tar.gz
chromium_src-9fefee68b27573a37c00bd428d62b72eecbc8993.tar.bz2
ScopedTempDir does not allow multiple Create* or Set calls without intervening Delete/Take calls.
BUG=None TEST=base_unittests --gtest_filter="*ScopedTempDir*", all other tests pass. Review URL: http://codereview.chromium.org/3980006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63641 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/scoped_temp_dir_unittest.cc')
-rw-r--r--base/scoped_temp_dir_unittest.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/base/scoped_temp_dir_unittest.cc b/base/scoped_temp_dir_unittest.cc
index 4be0d07..cf5fed3 100644
--- a/base/scoped_temp_dir_unittest.cc
+++ b/base/scoped_temp_dir_unittest.cc
@@ -73,3 +73,17 @@ TEST(ScopedTempDir, UniqueTempDirUnderPath) {
}
EXPECT_FALSE(file_util::DirectoryExists(test_path));
}
+
+TEST(ScopedTempDir, MultipleInvocations) {
+ ScopedTempDir dir;
+ EXPECT_TRUE(dir.CreateUniqueTempDir());
+ EXPECT_FALSE(dir.CreateUniqueTempDir());
+ dir.Delete();
+ EXPECT_TRUE(dir.CreateUniqueTempDir());
+ EXPECT_FALSE(dir.CreateUniqueTempDir());
+ ScopedTempDir other_dir;
+ other_dir.Set(dir.Take());
+ EXPECT_TRUE(dir.CreateUniqueTempDir());
+ EXPECT_FALSE(dir.CreateUniqueTempDir());
+ EXPECT_FALSE(other_dir.CreateUniqueTempDir());
+}