| // Copyright 2015 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/common/safe_browsing/download_protection_util.h" |
| |
| #include "base/files/file_path.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace safe_browsing { |
| namespace download_protection_util { |
| |
| TEST(DownloadProtectionUtilTest, KnownValues) { |
| EXPECT_EQ(0, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.exe")))); |
| EXPECT_EQ(0, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.exe.")))); |
| EXPECT_EQ(0, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.exe ")))); |
| EXPECT_EQ(0, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.exe.. . . . ")))); |
| EXPECT_EQ(9, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.dll")))); |
| EXPECT_EQ(29, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.jse")))); |
| EXPECT_EQ(18, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.111")))); |
| EXPECT_EQ(18, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.zzz")))); |
| EXPECT_EQ(152, GetSBClientDownloadExtensionValueForUMA( |
| base::FilePath(FILE_PATH_LITERAL("foo.tbz2")))); |
| EXPECT_TRUE(IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.zip")))); |
| EXPECT_TRUE(IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.zip.")))); |
| EXPECT_TRUE(IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.zip ")))); |
| EXPECT_TRUE( |
| IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.zip ....")))); |
| EXPECT_TRUE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.zip")))); |
| EXPECT_TRUE(IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.rar")))); |
| EXPECT_TRUE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.rar")))); |
| EXPECT_FALSE(IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.ps1")))); |
| EXPECT_FALSE( |
| IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("foo.unknownextension")))); |
| EXPECT_FALSE( |
| IsArchiveFile(base::FilePath(FILE_PATH_LITERAL("no_extension")))); |
| EXPECT_TRUE(IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL(".exe")))); |
| EXPECT_TRUE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.msi")))); |
| EXPECT_TRUE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.msi.")))); |
| EXPECT_TRUE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.msi ")))); |
| EXPECT_TRUE(IsSupportedBinaryFile( |
| base::FilePath(FILE_PATH_LITERAL("foo.msi .. ..")))); |
| EXPECT_FALSE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("foo.txt")))); |
| EXPECT_FALSE(IsSupportedBinaryFile( |
| base::FilePath(FILE_PATH_LITERAL("foo.unknownextension")))); |
| EXPECT_FALSE( |
| IsSupportedBinaryFile(base::FilePath(FILE_PATH_LITERAL("no_extension")))); |
| |
| EXPECT_EQ(ClientDownloadRequest::WIN_EXECUTABLE, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.exe")))); |
| EXPECT_EQ(ClientDownloadRequest::CHROME_EXTENSION, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.crx")))); |
| EXPECT_EQ(ClientDownloadRequest::ZIPPED_EXECUTABLE, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.zip")))); |
| EXPECT_EQ(ClientDownloadRequest::ARCHIVE, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.rar")))); |
| EXPECT_EQ(ClientDownloadRequest::MAC_EXECUTABLE, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.pkg")))); |
| EXPECT_EQ(ClientDownloadRequest::ANDROID_APK, |
| GetDownloadType(base::FilePath(FILE_PATH_LITERAL("foo.apk")))); |
| } |
| |
| } // namespace download_protection_util |
| } // namespace safe_browsing |
| |
| |