Index: content/browser/gpu/gpu_blacklist_unittest.cc |
=================================================================== |
--- content/browser/gpu/gpu_blacklist_unittest.cc (revision 98082) |
+++ content/browser/gpu/gpu_blacklist_unittest.cc (working copy) |
@@ -57,10 +57,11 @@ |
data_file_size); |
std::string json_string(data.get(), data_file_size); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, true)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(json_string, GpuBlacklist::kAllOs)); |
+ EXPECT_FALSE(blacklist.contains_unknown_fields()); |
} |
-TEST_F(GpuBlacklistTest, DeafaultBlacklistSettings) { |
+TEST_F(GpuBlacklistTest, DefaultBlacklistSettings) { |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
// Default blacklist settings: all feature are allowed. |
@@ -81,7 +82,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(empty_list_json, false)); |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(empty_list_json, GpuBlacklist::kAllOs)); |
uint16 major, minor; |
EXPECT_TRUE(blacklist.GetVersion(&major, &minor)); |
EXPECT_EQ(major, 2u); |
@@ -122,7 +124,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(exact_list_json, false)); |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(exact_list_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ( |
@@ -132,7 +135,7 @@ |
// Invalid json input should not change the current blacklist settings. |
const std::string invalid_json = "invalid"; |
- EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, false)); |
+ EXPECT_FALSE(blacklist.LoadGpuBlacklist(invalid_json, GpuBlacklist::kAllOs)); |
flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ( |
@@ -170,7 +173,7 @@ |
GpuBlacklist blacklist("1.0"); |
// Blacklist entries won't be filtered to the current OS only upon loading. |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, false)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), |
@@ -185,7 +188,8 @@ |
static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX) |
// Blacklist entries will be filtered to the current OS only upon loading. |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_json, true)); |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(vendor_json, GpuBlacklist::kCurrentOsOnly)); |
flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), |
@@ -223,7 +227,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(vendor_linux_json, false)); |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(vendor_linux_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), 0u); |
@@ -263,7 +268,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, false)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_nvidia_json, |
+ GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), 0u); |
@@ -301,7 +307,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, false)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(linux_except_intel_json, |
+ GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), 0u); |
@@ -340,7 +347,8 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(date_windows_json, false)); |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(date_windows_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), 0u); |
@@ -373,7 +381,7 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsMacosx, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), |
@@ -408,7 +416,7 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist("1.0"); |
- EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, false)); |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(devices_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsChromeOS, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), |
@@ -439,13 +447,15 @@ |
scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
GpuBlacklist blacklist9("9.0"); |
- EXPECT_TRUE(blacklist9.LoadGpuBlacklist(browser_version_json, false)); |
+ EXPECT_TRUE( |
+ blacklist9.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); |
GpuFeatureFlags flags = blacklist9.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), 0u); |
GpuBlacklist blacklist10("10.0"); |
- EXPECT_TRUE(blacklist10.LoadGpuBlacklist(browser_version_json, false)); |
+ EXPECT_TRUE( |
+ blacklist10.LoadGpuBlacklist(browser_version_json, GpuBlacklist::kAllOs)); |
flags = blacklist10.DetermineGpuFeatureFlags( |
GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
EXPECT_EQ(flags.flags(), |
@@ -470,6 +480,114 @@ |
"}"; |
GpuBlacklist blacklist("1.0"); |
- EXPECT_FALSE(blacklist.LoadGpuBlacklist(malformed_vendor_json, false)); |
+ EXPECT_FALSE( |
+ blacklist.LoadGpuBlacklist(malformed_vendor_json, GpuBlacklist::kAllOs)); |
} |
+TEST_F(GpuBlacklistTest, UnknownField) { |
+ const std::string unknown_field_json = |
+ "{\n" |
+ " \"name\": \"gpu blacklist\",\n" |
+ " \"version\": \"0.1\",\n" |
+ " \"entries\": [\n" |
+ " {\n" |
+ " \"id\": 1,\n" |
+ " \"unknown_field\": 0,\n" |
+ " \"blacklist\": [\n" |
+ " \"accelerated_2d_canvas\"\n" |
+ " ]\n" |
+ " },\n" |
+ " {\n" |
+ " \"id\": 2,\n" |
+ " \"blacklist\": [\n" |
+ " \"webgl\"\n" |
+ " ]\n" |
+ " }\n" |
+ " ]\n" |
+ "}"; |
+ scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
+ GpuBlacklist blacklist("1.0"); |
+ |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(unknown_field_json, GpuBlacklist::kAllOs)); |
+ EXPECT_EQ(1u, blacklist.num_entries()); |
+ EXPECT_TRUE(blacklist.contains_unknown_fields()); |
+ GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
+ GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
+ EXPECT_EQ(flags.flags(), |
+ static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
+} |
+ |
+TEST_F(GpuBlacklistTest, UnknownExceptionField) { |
+ const std::string unknown_exception_field_json = |
+ "{\n" |
+ " \"name\": \"gpu blacklist\",\n" |
+ " \"version\": \"0.1\",\n" |
+ " \"entries\": [\n" |
+ " {\n" |
+ " \"id\": 1,\n" |
+ " \"unknown_field\": 0,\n" |
+ " \"blacklist\": [\n" |
+ " \"accelerated_compositing\"\n" |
+ " ]\n" |
+ " },\n" |
+ " {\n" |
+ " \"id\": 2,\n" |
+ " \"exceptions\": [\n" |
+ " {\n" |
+ " \"unknown_field\": 0\n" |
+ " }\n" |
+ " ],\n" |
+ " \"blacklist\": [\n" |
+ " \"accelerated_2d_canvas\"\n" |
+ " ]\n" |
+ " },\n" |
+ " {\n" |
+ " \"id\": 3,\n" |
+ " \"blacklist\": [\n" |
+ " \"webgl\"\n" |
+ " ]\n" |
+ " }\n" |
+ " ]\n" |
+ "}"; |
+ scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
+ GpuBlacklist blacklist("1.0"); |
+ |
+ EXPECT_TRUE(blacklist.LoadGpuBlacklist(unknown_exception_field_json, |
+ GpuBlacklist::kAllOs)); |
+ EXPECT_EQ(1u, blacklist.num_entries()); |
+ EXPECT_TRUE(blacklist.contains_unknown_fields()); |
+ GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
+ GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
+ EXPECT_EQ(flags.flags(), |
+ static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
+} |
+ |
+TEST_F(GpuBlacklistTest, UnknownFeature) { |
+ const std::string unknown_feature_json = |
+ "{\n" |
+ " \"name\": \"gpu blacklist\",\n" |
+ " \"version\": \"0.1\",\n" |
+ " \"entries\": [\n" |
+ " {\n" |
+ " \"id\": 1,\n" |
+ " \"blacklist\": [\n" |
+ " \"accelerated_something\",\n" |
+ " \"webgl\"\n" |
+ " ]\n" |
+ " }\n" |
+ " ]\n" |
+ "}"; |
+ scoped_ptr<Version> os_version(Version::GetVersionFromString("10.6.4")); |
+ GpuBlacklist blacklist("1.0"); |
+ |
+ EXPECT_TRUE( |
+ blacklist.LoadGpuBlacklist(unknown_feature_json, GpuBlacklist::kAllOs)); |
+ EXPECT_EQ(1u, blacklist.num_entries()); |
+ EXPECT_TRUE(blacklist.contains_unknown_fields()); |
+ GpuFeatureFlags flags = blacklist.DetermineGpuFeatureFlags( |
+ GpuBlacklist::kOsWin, os_version.get(), gpu_info()); |
+ EXPECT_EQ(flags.flags(), |
+ static_cast<uint32>(GpuFeatureFlags::kGpuFeatureWebgl)); |
+} |
+ |