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

Unified Diff: chrome/common/zip_unittest.cc

Issue 340018: Filter out hidden files, both when loading extensions and when (Closed)
Patch Set: Created 11 years, 2 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
« no previous file with comments | « chrome/common/zip.cc ('k') | chrome/test/data/zip/test.zip » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/zip_unittest.cc
diff --git a/chrome/common/zip_unittest.cc b/chrome/common/zip_unittest.cc
index dfa0724922a0c78748e535e0915b27f1af09e39f..c4290caf0619adf2a75fb14e5e5c87eab1db0bb5 100644
--- a/chrome/common/zip_unittest.cc
+++ b/chrome/common/zip_unittest.cc
@@ -33,20 +33,24 @@ class ZipTest : public PlatformTest {
zip_contents_.insert(zip_path);
zip_contents_.insert(zip_path.AppendASCII("baz.txt"));
zip_contents_.insert(zip_path.AppendASCII("quux.txt"));
+ zip_contents_.insert(zip_path.AppendASCII(".hidden"));
}
virtual void TearDown() {
PlatformTest::TearDown();
}
- void TestUnzipFile(const FilePath::StringType& filename, bool need_success) {
+ void TestUnzipFile(const FilePath::StringType& filename,
+ bool expect_hidden_files, bool need_success) {
FilePath test_dir;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir));
test_dir = test_dir.AppendASCII("zip");
- TestUnzipFile(test_dir.Append(filename), need_success);
+ TestUnzipFile(test_dir.Append(filename), expect_hidden_files,
+ need_success);
}
- void TestUnzipFile(const FilePath& path, bool need_success) {
+ void TestUnzipFile(const FilePath& path, bool expect_hidden_files,
+ bool need_success) {
ASSERT_TRUE(file_util::PathExists(path)) << "no file " << path.value();
if (need_success) {
ASSERT_TRUE(Unzip(path, test_dir_));
@@ -70,7 +74,15 @@ class ZipTest : public PlatformTest {
}
next_path = files.Next();
}
- EXPECT_EQ(count, zip_contents_.size());
+
+ int expected_count = 0;
+ for (std::set<FilePath>::iterator iter = zip_contents_.begin();
+ iter != zip_contents_.end(); ++iter) {
+ if (expect_hidden_files || iter->BaseName().ToWStringHack()[0] != L'.')
+ ++expected_count;
+ }
+
+ EXPECT_EQ(expected_count, count);
}
// the path to temporary directory used to contain the test operations
@@ -83,15 +95,15 @@ class ZipTest : public PlatformTest {
};
TEST_F(ZipTest, Unzip) {
- TestUnzipFile(FILE_PATH_LITERAL("test.zip"), true);
+ TestUnzipFile(FILE_PATH_LITERAL("test.zip"), true, true);
}
TEST_F(ZipTest, UnzipUncompressed) {
- TestUnzipFile(FILE_PATH_LITERAL("test_nocompress.zip"), true);
+ TestUnzipFile(FILE_PATH_LITERAL("test_nocompress.zip"), true, true);
}
TEST_F(ZipTest, UnzipEvil) {
- TestUnzipFile(FILE_PATH_LITERAL("evil.zip"), false);
+ TestUnzipFile(FILE_PATH_LITERAL("evil.zip"), true, false);
FilePath evil_file = test_dir_;
evil_file = evil_file.AppendASCII(
"../levilevilevilevilevilevilevilevilevilevilevilevil");
@@ -107,9 +119,21 @@ TEST_F(ZipTest, Zip) {
ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
FilePath zip_file = temp_dir.path().AppendASCII("out.zip");
- EXPECT_TRUE(Zip(src_dir, zip_file));
+ EXPECT_TRUE(Zip(src_dir, zip_file, true));
+ TestUnzipFile(zip_file, true, true);
+}
+
+TEST_F(ZipTest, ZipIgnoreHidden) {
+ FilePath src_dir;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &src_dir));
+ src_dir = src_dir.AppendASCII("zip").AppendASCII("test");
+
+ ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+ FilePath zip_file = temp_dir.path().AppendASCII("out.zip");
- TestUnzipFile(zip_file, true);
+ EXPECT_TRUE(Zip(src_dir, zip_file, false));
+ TestUnzipFile(zip_file, false, true);
}
} // namespace
« no previous file with comments | « chrome/common/zip.cc ('k') | chrome/test/data/zip/test.zip » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698