| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/string16.h" | 5 #include "base/string16.h" |
| 6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
| 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 7 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 8 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 9 #include "chrome/test/base/testing_profile.h" | 9 #include "chrome/test/base/testing_profile.h" |
| 10 #include "content/public/test/test_browser_thread.h" | 10 #include "content/public/test/test_browser_thread.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 EXPECT_FALSE( | 61 EXPECT_FALSE( |
| 62 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 62 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
| 63 EXPECT_FALSE( | 63 EXPECT_FALSE( |
| 64 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 64 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
| 65 EXPECT_FALSE( | 65 EXPECT_FALSE( |
| 66 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 66 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
| 67 EXPECT_FALSE( | 67 EXPECT_FALSE( |
| 68 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 68 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 69 EXPECT_FALSE( | 69 EXPECT_FALSE( |
| 70 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 70 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
| 71 EXPECT_FALSE( | |
| 72 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 73 | 71 |
| 74 // Set a cookie, block access to images, block mediastream access and block a | 72 // Set a cookie, block access to images, block a popup. |
| 75 // popup. | |
| 76 content_settings->OnCookieChanged(GURL("http://google.com"), | 73 content_settings->OnCookieChanged(GURL("http://google.com"), |
| 77 GURL("http://google.com"), | 74 GURL("http://google.com"), |
| 78 "A=B", | 75 "A=B", |
| 79 options, | 76 options, |
| 80 false); | 77 false); |
| 81 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, | 78 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES, |
| 82 std::string()); | 79 std::string()); |
| 83 content_settings->SetPopupsBlocked(true); | 80 content_settings->SetPopupsBlocked(true); |
| 84 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM, | |
| 85 std::string()); | |
| 86 | 81 |
| 87 // Check that only the respective content types are affected. | 82 // Check that only the respective content types are affected. |
| 88 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 83 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
| 89 EXPECT_FALSE( | 84 EXPECT_FALSE( |
| 90 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 85 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
| 91 EXPECT_FALSE( | 86 EXPECT_FALSE( |
| 92 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 87 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
| 93 EXPECT_FALSE( | 88 EXPECT_FALSE( |
| 94 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 89 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 95 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 90 EXPECT_TRUE(content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
| 96 EXPECT_TRUE( | |
| 97 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 98 content_settings->OnCookieChanged(GURL("http://google.com"), | 91 content_settings->OnCookieChanged(GURL("http://google.com"), |
| 99 GURL("http://google.com"), | 92 GURL("http://google.com"), |
| 100 "A=B", | 93 "A=B", |
| 101 options, | 94 options, |
| 102 false); | 95 false); |
| 103 | 96 |
| 104 // Block a cookie. | 97 // Block a cookie. |
| 105 content_settings->OnCookieChanged(GURL("http://google.com"), | 98 content_settings->OnCookieChanged(GURL("http://google.com"), |
| 106 GURL("http://google.com"), | 99 GURL("http://google.com"), |
| 107 "C=D", | 100 "C=D", |
| 108 options, | 101 options, |
| 109 true); | 102 true); |
| 110 EXPECT_TRUE( | 103 EXPECT_TRUE( |
| 111 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 104 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 112 | 105 |
| 113 // Reset blocked content settings. | 106 // Reset blocked content settings. |
| 114 content_settings->ClearBlockedContentSettingsExceptForCookies(); | 107 content_settings->ClearBlockedContentSettingsExceptForCookies(); |
| 115 EXPECT_FALSE( | 108 EXPECT_FALSE( |
| 116 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 109 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
| 117 EXPECT_FALSE( | 110 EXPECT_FALSE( |
| 118 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 111 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
| 119 EXPECT_FALSE( | 112 EXPECT_FALSE( |
| 120 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 113 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
| 121 EXPECT_TRUE( | 114 EXPECT_TRUE( |
| 122 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 115 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 123 EXPECT_FALSE( | 116 EXPECT_FALSE( |
| 124 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 117 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
| 125 EXPECT_FALSE( | |
| 126 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 127 | 118 |
| 128 content_settings->ClearCookieSpecificContentSettings(); | 119 content_settings->ClearCookieSpecificContentSettings(); |
| 129 EXPECT_FALSE( | 120 EXPECT_FALSE( |
| 130 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); | 121 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_IMAGES)); |
| 131 EXPECT_FALSE( | 122 EXPECT_FALSE( |
| 132 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); | 123 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_JAVASCRIPT)); |
| 133 EXPECT_FALSE( | 124 EXPECT_FALSE( |
| 134 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); | 125 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_PLUGINS)); |
| 135 EXPECT_FALSE( | 126 EXPECT_FALSE( |
| 136 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 127 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 137 EXPECT_FALSE( | 128 EXPECT_FALSE( |
| 138 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); | 129 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_POPUPS)); |
| 139 EXPECT_FALSE( | |
| 140 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 141 } | 130 } |
| 142 | 131 |
| 143 TEST_F(TabSpecificContentSettingsTest, BlockedFileSystems) { | 132 TEST_F(TabSpecificContentSettingsTest, BlockedFileSystems) { |
| 144 TabSpecificContentSettings* content_settings = | 133 TabSpecificContentSettings* content_settings = |
| 145 TabSpecificContentSettings::FromWebContents(web_contents()); | 134 TabSpecificContentSettings::FromWebContents(web_contents()); |
| 146 | 135 |
| 147 // Access a file system. | 136 // Access a file system. |
| 148 content_settings->OnFileSystemAccessed(GURL("http://google.com"), false); | 137 content_settings->OnFileSystemAccessed(GURL("http://google.com"), false); |
| 149 EXPECT_FALSE( | 138 EXPECT_FALSE( |
| 150 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 139 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 151 | 140 |
| 152 // Block access to a file system. | 141 // Block access to a file system. |
| 153 content_settings->OnFileSystemAccessed(GURL("http://google.com"), true); | 142 content_settings->OnFileSystemAccessed(GURL("http://google.com"), true); |
| 154 EXPECT_TRUE( | 143 EXPECT_TRUE( |
| 155 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 144 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 156 } | 145 } |
| 157 | 146 |
| 158 TEST_F(TabSpecificContentSettingsTest, AllowedContent) { | 147 TEST_F(TabSpecificContentSettingsTest, AllowedContent) { |
| 159 TabSpecificContentSettings* content_settings = | 148 TabSpecificContentSettings* content_settings = |
| 160 TabSpecificContentSettings::FromWebContents(web_contents()); | 149 TabSpecificContentSettings::FromWebContents(web_contents()); |
| 161 net::CookieOptions options; | 150 net::CookieOptions options; |
| 162 | 151 |
| 163 // Test default settings. | |
| 164 ASSERT_FALSE( | 152 ASSERT_FALSE( |
| 165 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_IMAGES)); | 153 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_IMAGES)); |
| 166 ASSERT_FALSE( | 154 ASSERT_FALSE( |
| 167 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 155 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 168 ASSERT_FALSE( | 156 ASSERT_FALSE( |
| 169 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 157 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 170 ASSERT_FALSE( | |
| 171 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 172 | |
| 173 // Record a cookie. | |
| 174 content_settings->OnCookieChanged(GURL("http://google.com"), | 158 content_settings->OnCookieChanged(GURL("http://google.com"), |
| 175 GURL("http://google.com"), | 159 GURL("http://google.com"), |
| 176 "A=B", | 160 "A=B", |
| 177 options, | 161 options, |
| 178 false); | 162 false); |
| 179 ASSERT_TRUE( | 163 ASSERT_TRUE( |
| 180 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 164 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 181 ASSERT_FALSE( | 165 ASSERT_FALSE( |
| 182 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 166 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 183 | |
| 184 // Record a blocked cookie. | |
| 185 content_settings->OnCookieChanged(GURL("http://google.com"), | 167 content_settings->OnCookieChanged(GURL("http://google.com"), |
| 186 GURL("http://google.com"), | 168 GURL("http://google.com"), |
| 187 "C=D", | 169 "C=D", |
| 188 options, | 170 options, |
| 189 true); | 171 true); |
| 190 ASSERT_TRUE( | 172 ASSERT_TRUE( |
| 191 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 173 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 192 ASSERT_TRUE( | 174 ASSERT_TRUE( |
| 193 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 175 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 194 | |
| 195 // Record mediastream access. | |
| 196 content_settings->OnMediaStreamAccessed(); | |
| 197 ASSERT_TRUE( | |
| 198 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 199 ASSERT_FALSE( | |
| 200 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 201 | |
| 202 // Record a blocked mediastream access request. | |
| 203 content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM, | |
| 204 std::string()); | |
| 205 ASSERT_TRUE( | |
| 206 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 207 ASSERT_TRUE( | |
| 208 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM)); | |
| 209 } | 176 } |
| 210 | 177 |
| 211 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { | 178 TEST_F(TabSpecificContentSettingsTest, EmptyCookieList) { |
| 212 TabSpecificContentSettings* content_settings = | 179 TabSpecificContentSettings* content_settings = |
| 213 TabSpecificContentSettings::FromWebContents(web_contents()); | 180 TabSpecificContentSettings::FromWebContents(web_contents()); |
| 214 | 181 |
| 215 ASSERT_FALSE( | 182 ASSERT_FALSE( |
| 216 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); | 183 content_settings->IsContentAccessed(CONTENT_SETTINGS_TYPE_COOKIES)); |
| 217 ASSERT_FALSE( | 184 ASSERT_FALSE( |
| 218 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); | 185 content_settings->IsContentBlocked(CONTENT_SETTINGS_TYPE_COOKIES)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 UTF8ToUTF16("text"), | 222 UTF8ToUTF16("text"), |
| 256 blocked_by_policy); | 223 blocked_by_policy); |
| 257 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), | 224 content_settings->OnLocalStorageAccessed(GURL("http://google.com"), |
| 258 true, | 225 true, |
| 259 blocked_by_policy); | 226 blocked_by_policy); |
| 260 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), | 227 content_settings->OnWebDatabaseAccessed(GURL("http://google.com"), |
| 261 UTF8ToUTF16("name"), | 228 UTF8ToUTF16("name"), |
| 262 UTF8ToUTF16("display_name"), | 229 UTF8ToUTF16("display_name"), |
| 263 blocked_by_policy); | 230 blocked_by_policy); |
| 264 } | 231 } |
| OLD | NEW |