Index: chrome/browser/safe_browsing/sandboxed_zip_analyzer_unittest.cc |
diff --git a/chrome/browser/safe_browsing/sandboxed_zip_analyzer_unittest.cc b/chrome/browser/safe_browsing/sandboxed_zip_analyzer_unittest.cc |
index 4b434d82f51a35b6122fa95f623e857f44fc95bf..b123999963ac194db0133111614b3a2cefc6f254 100644 |
--- a/chrome/browser/safe_browsing/sandboxed_zip_analyzer_unittest.cc |
+++ b/chrome/browser/safe_browsing/sandboxed_zip_analyzer_unittest.cc |
@@ -66,7 +66,7 @@ class SandboxedZipAnalyzerTest : public ::testing::Test { |
void SetUp() override { |
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &dir_test_data_)); |
dir_test_data_ = dir_test_data_.AppendASCII("safe_browsing"); |
- dir_test_data_ = dir_test_data_.AppendASCII("download_protection"); |
+ // dir_test_data_ = dir_test_data_.AppendASCII("download_protection"); |
} |
// Runs a sandboxed zip analyzer on |file_path|, writing its results into |
@@ -124,7 +124,11 @@ class SandboxedZipAnalyzerTest : public ::testing::Test { |
} |
#endif // OS_WIN |
ASSERT_FALSE(binary.has_signature()); |
+#if defined(OS_MACOSX) |
+ ASSERT_TRUE(binary.has_image_headers()); |
+#else |
ASSERT_FALSE(binary.has_image_headers()); |
+#endif |
} |
static const uint8_t kUnsignedDigest[]; |
@@ -134,6 +138,11 @@ class SandboxedZipAnalyzerTest : public ::testing::Test { |
static const BinaryData kSignedExe; |
static const BinaryData kJSEFile; |
+#if defined(OS_MACOSX) |
+ static const uint8_t kMachODigest[]; |
+ static const BinaryData kMachO; |
+#endif // OS_MACOSX |
+ |
base::FilePath dir_test_data_; |
content::TestBrowserThreadBundle browser_thread_bundle_; |
content::InProcessUtilityThreadHelper utility_thread_helper_; |
@@ -177,9 +186,25 @@ const SandboxedZipAnalyzerTest::BinaryData SandboxedZipAnalyzerTest::kJSEFile = |
false, // is_signed |
}; |
+#if defined(OS_MACOSX) |
+const uint8_t SandboxedZipAnalyzerTest::kMachODigest[] = { |
+ 0xe4, 0x62, 0xff, 0x75, 0x2f, 0xf9, 0xd8, 0x4e, 0x34, 0xd8, 0x43, |
+ 0xe5, 0xd4, 0x6e, 0x20, 0x12, 0xad, 0xcb, 0xd4, 0x85, 0x40, 0xa8, |
+ 0x47, 0x3f, 0xb7, 0x94, 0xb2, 0x86, 0xa3, 0x89, 0xb9, 0x45}; |
+const SandboxedZipAnalyzerTest::BinaryData SandboxedZipAnalyzerTest::kMachO = { |
+ "executablefat", |
+ ClientDownloadRequest_DownloadType_MAC_EXECUTABLE, |
+ &kMachODigest[0], |
+ 16640, |
+ false, // !is_signed |
+}; |
+#endif // OS_MACOSX |
+ |
TEST_F(SandboxedZipAnalyzerTest, NoBinaries) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_no_binaries.zip"), &results); |
+ RunAnalyzer( |
+ dir_test_data_.AppendASCII("download_protection/zipfile_no_binaries.zip"), |
+ &results); |
ASSERT_TRUE(results.success); |
EXPECT_FALSE(results.has_executable); |
EXPECT_FALSE(results.has_archive); |
@@ -188,7 +213,8 @@ TEST_F(SandboxedZipAnalyzerTest, NoBinaries) { |
TEST_F(SandboxedZipAnalyzerTest, OneUnsignedBinary) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_one_unsigned_binary.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_one_unsigned_binary.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_TRUE(results.has_executable); |
@@ -199,7 +225,8 @@ TEST_F(SandboxedZipAnalyzerTest, OneUnsignedBinary) { |
TEST_F(SandboxedZipAnalyzerTest, TwoBinariesOneSigned) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_two_binaries_one_signed.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_two_binaries_one_signed.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_TRUE(results.has_executable); |
@@ -211,7 +238,8 @@ TEST_F(SandboxedZipAnalyzerTest, TwoBinariesOneSigned) { |
TEST_F(SandboxedZipAnalyzerTest, ZippedArchiveNoBinaries) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_archive_no_binaries.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_archive_no_binaries.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_FALSE(results.has_executable); |
@@ -224,7 +252,8 @@ TEST_F(SandboxedZipAnalyzerTest, ZippedArchiveNoBinaries) { |
TEST_F(SandboxedZipAnalyzerTest, ZippedRarArchiveNoBinaries) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_rar_archive_no_binaries.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_rar_archive_no_binaries.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_FALSE(results.has_executable); |
@@ -237,7 +266,8 @@ TEST_F(SandboxedZipAnalyzerTest, ZippedRarArchiveNoBinaries) { |
TEST_F(SandboxedZipAnalyzerTest, ZippedArchiveAndBinaries) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_archive_and_binaries.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_archive_and_binaries.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_TRUE(results.has_executable); |
@@ -252,8 +282,9 @@ TEST_F(SandboxedZipAnalyzerTest, ZippedArchiveAndBinaries) { |
TEST_F(SandboxedZipAnalyzerTest, |
ZippedArchiveAndBinariesWithTrailingSpaceAndPeriodChars) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_two_binaries_one_archive_" |
- "trailing_space_and_period_chars.zip"), |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_two_binaries_one_archive_" |
+ "trailing_space_and_period_chars.zip"), |
&results); |
ASSERT_TRUE(results.success); |
EXPECT_TRUE(results.has_executable); |
@@ -273,7 +304,9 @@ TEST_F(SandboxedZipAnalyzerTest, |
TEST_F(SandboxedZipAnalyzerTest, ZippedJSEFile) { |
ArchiveAnalyzerResults results; |
- RunAnalyzer(dir_test_data_.AppendASCII("zipfile_one_jse_file.zip"), &results); |
+ RunAnalyzer(dir_test_data_.AppendASCII( |
+ "download_protection/zipfile_one_jse_file.zip"), |
+ &results); |
ASSERT_TRUE(results.success); |
EXPECT_TRUE(results.has_executable); |
EXPECT_FALSE(results.has_archive); |
@@ -282,4 +315,18 @@ TEST_F(SandboxedZipAnalyzerTest, ZippedJSEFile) { |
EXPECT_TRUE(results.archived_archive_filenames.empty()); |
} |
+#if defined(OS_MACOSX) |
+TEST_F(SandboxedZipAnalyzerTest, ZippedAppWithExecutable) { |
+ ArchiveAnalyzerResults results; |
+ RunAnalyzer( |
+ dir_test_data_.AppendASCII("mach_o/zipped-app-with-executable.zip"), |
+ &results); |
+ ASSERT_TRUE(results.success); |
+ EXPECT_TRUE(results.has_executable); |
+ EXPECT_FALSE(results.has_archive); |
+ ASSERT_EQ(1, results.archived_binary.size()); |
+ ExpectBinary(kMachO, results.archived_binary.Get(0)); |
+} |
+#endif // OS_MACOSX |
+ |
} // namespace safe_browsing |