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

Side by Side Diff: content/browser/storage_partition_impl_unittest.cc

Issue 2512563003: Convert enable_plugins to a buildflag header. (Closed)
Patch Set: Merge Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
13 #include "base/threading/thread.h" 13 #include "base/threading/thread.h"
14 #include "base/threading/thread_task_runner_handle.h" 14 #include "base/threading/thread_task_runner_handle.h"
15 #include "content/browser/browser_thread_impl.h" 15 #include "content/browser/browser_thread_impl.h"
16 #include "content/browser/gpu/shader_disk_cache.h" 16 #include "content/browser/gpu/shader_disk_cache.h"
17 #include "content/browser/quota/mock_quota_manager.h" 17 #include "content/browser/quota/mock_quota_manager.h"
18 #include "content/browser/storage_partition_impl.h" 18 #include "content/browser/storage_partition_impl.h"
19 #include "content/public/browser/local_storage_usage_info.h" 19 #include "content/public/browser/local_storage_usage_info.h"
20 #include "content/public/browser/storage_partition.h" 20 #include "content/public/browser/storage_partition.h"
21 #include "content/public/test/mock_special_storage_policy.h" 21 #include "content/public/test/mock_special_storage_policy.h"
22 #include "content/public/test/test_browser_context.h" 22 #include "content/public/test/test_browser_context.h"
23 #include "content/public/test/test_browser_thread.h" 23 #include "content/public/test/test_browser_thread.h"
24 #include "content/public/test/test_browser_thread_bundle.h" 24 #include "content/public/test/test_browser_thread_bundle.h"
25 #include "net/base/test_completion_callback.h" 25 #include "net/base/test_completion_callback.h"
26 #include "net/cookies/canonical_cookie.h" 26 #include "net/cookies/canonical_cookie.h"
27 #include "net/cookies/cookie_store.h" 27 #include "net/cookies/cookie_store.h"
28 #include "net/url_request/url_request_context.h" 28 #include "net/url_request/url_request_context.h"
29 #include "net/url_request/url_request_context_getter.h" 29 #include "net/url_request/url_request_context_getter.h"
30 #include "ppapi/features/features.h"
30 #include "storage/browser/quota/quota_manager.h" 31 #include "storage/browser/quota/quota_manager.h"
31 #include "testing/gtest/include/gtest/gtest.h" 32 #include "testing/gtest/include/gtest/gtest.h"
32 33
33 #if defined(ENABLE_PLUGINS) 34 #if BUILDFLAG(ENABLE_PLUGINS)
34 #include "ppapi/shared_impl/ppapi_constants.h" 35 #include "ppapi/shared_impl/ppapi_constants.h"
35 #include "storage/browser/fileapi/async_file_util.h" 36 #include "storage/browser/fileapi/async_file_util.h"
36 #include "storage/browser/fileapi/file_system_context.h" 37 #include "storage/browser/fileapi/file_system_context.h"
37 #include "storage/browser/fileapi/file_system_operation_context.h" 38 #include "storage/browser/fileapi/file_system_operation_context.h"
38 #include "storage/browser/fileapi/isolated_context.h" 39 #include "storage/browser/fileapi/isolated_context.h"
39 #include "storage/common/fileapi/file_system_util.h" 40 #include "storage/common/fileapi/file_system_util.h"
40 #endif // defined(ENABLE_PLUGINS) 41 #endif // BUILDFLAG(ENABLE_PLUGINS)
41 42
42 using net::CanonicalCookie; 43 using net::CanonicalCookie;
43 44
44 namespace content { 45 namespace content {
45 namespace { 46 namespace {
46 47
47 const int kDefaultClientId = 42; 48 const int kDefaultClientId = 42;
48 const char kCacheKey[] = "key"; 49 const char kCacheKey[] = "key";
49 const char kCacheValue[] = "cached value"; 50 const char kCacheValue[] = "cached value";
50 51
51 const char kTestOrigin1[] = "http://host1:1/"; 52 const char kTestOrigin1[] = "http://host1:1/";
52 const char kTestOrigin2[] = "http://host2:1/"; 53 const char kTestOrigin2[] = "http://host2:1/";
53 const char kTestOrigin3[] = "http://host3:1/"; 54 const char kTestOrigin3[] = "http://host3:1/";
54 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; 55 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
55 56
56 #if defined(ENABLE_PLUGINS) 57 #if BUILDFLAG(ENABLE_PLUGINS)
57 const char kWidevineCdmPluginId[] = "application_x-ppapi-widevine-cdm"; 58 const char kWidevineCdmPluginId[] = "application_x-ppapi-widevine-cdm";
58 const char kClearKeyCdmPluginId[] = "application_x-ppapi-clearkey-cdm"; 59 const char kClearKeyCdmPluginId[] = "application_x-ppapi-clearkey-cdm";
59 #endif // defined(ENABLE_PLUGINS) 60 #endif // BUILDFLAG(ENABLE_PLUGINS)
60 61
61 const GURL kOrigin1(kTestOrigin1); 62 const GURL kOrigin1(kTestOrigin1);
62 const GURL kOrigin2(kTestOrigin2); 63 const GURL kOrigin2(kTestOrigin2);
63 const GURL kOrigin3(kTestOrigin3); 64 const GURL kOrigin3(kTestOrigin3);
64 const GURL kOriginDevTools(kTestOriginDevTools); 65 const GURL kOriginDevTools(kTestOriginDevTools);
65 66
66 const base::FilePath::CharType kDomStorageOrigin1[] = 67 const base::FilePath::CharType kDomStorageOrigin1[] =
67 FILE_PATH_LITERAL("http_host1_1.localstorage"); 68 FILE_PATH_LITERAL("http_host1_1.localstorage");
68 69
69 const base::FilePath::CharType kDomStorageOrigin2[] = 70 const base::FilePath::CharType kDomStorageOrigin2[] =
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 TestBrowserContext* profile_; 239 TestBrowserContext* profile_;
239 content::DOMStorageContext* dom_storage_context_; 240 content::DOMStorageContext* dom_storage_context_;
240 241
241 std::vector<content::LocalStorageUsageInfo> infos_; 242 std::vector<content::LocalStorageUsageInfo> infos_;
242 243
243 AwaitCompletionHelper await_completion_; 244 AwaitCompletionHelper await_completion_;
244 245
245 DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester); 246 DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester);
246 }; 247 };
247 248
248 #if defined(ENABLE_PLUGINS) 249 #if BUILDFLAG(ENABLE_PLUGINS)
249 class RemovePluginPrivateDataTester { 250 class RemovePluginPrivateDataTester {
250 public: 251 public:
251 explicit RemovePluginPrivateDataTester( 252 explicit RemovePluginPrivateDataTester(
252 storage::FileSystemContext* filesystem_context) 253 storage::FileSystemContext* filesystem_context)
253 : filesystem_context_(filesystem_context) {} 254 : filesystem_context_(filesystem_context) {}
254 255
255 // Add some files to the PluginPrivateFileSystem. They are created as follows: 256 // Add some files to the PluginPrivateFileSystem. They are created as follows:
256 // kOrigin1 - ClearKey - 1 file - timestamp 10 days ago 257 // kOrigin1 - ClearKey - 1 file - timestamp 10 days ago
257 // kOrigin2 - Widevine - 2 files - timestamps now and 60 days ago 258 // kOrigin2 - Widevine - 2 files - timestamps now and 60 days ago
258 void AddPluginPrivateTestData() { 259 void AddPluginPrivateTestData() {
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 } 430 }
430 431
431 // We don't own this pointer. 432 // We don't own this pointer.
432 storage::FileSystemContext* filesystem_context_; 433 storage::FileSystemContext* filesystem_context_;
433 434
434 // Keep track of the URL for the ClearKey file so that it can be written to. 435 // Keep track of the URL for the ClearKey file so that it can be written to.
435 storage::FileSystemURL clearkey_file_; 436 storage::FileSystemURL clearkey_file_;
436 437
437 DISALLOW_COPY_AND_ASSIGN(RemovePluginPrivateDataTester); 438 DISALLOW_COPY_AND_ASSIGN(RemovePluginPrivateDataTester);
438 }; 439 };
439 #endif // defined(ENABLE_PLUGINS) 440 #endif // BUILDFLAG(ENABLE_PLUGINS)
440 441
441 bool IsWebSafeSchemeForTest(const std::string& scheme) { 442 bool IsWebSafeSchemeForTest(const std::string& scheme) {
442 return scheme == "http"; 443 return scheme == "http";
443 } 444 }
444 445
445 bool DoesOriginMatchForUnprotectedWeb( 446 bool DoesOriginMatchForUnprotectedWeb(
446 const GURL& origin, 447 const GURL& origin,
447 storage::SpecialStoragePolicy* special_storage_policy) { 448 storage::SpecialStoragePolicy* special_storage_policy) {
448 if (IsWebSafeSchemeForTest(origin.scheme())) 449 if (IsWebSafeSchemeForTest(origin.scheme()))
449 return !special_storage_policy->IsStorageProtected(origin.GetOrigin()); 450 return !special_storage_policy->IsStorageProtected(origin.GetOrigin());
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 void ClearData(content::StoragePartition* partition, 545 void ClearData(content::StoragePartition* partition,
545 base::RunLoop* run_loop) { 546 base::RunLoop* run_loop) {
546 base::Time time; 547 base::Time time;
547 partition->ClearData( 548 partition->ClearData(
548 StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE, 549 StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE,
549 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, 550 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL,
550 GURL(), StoragePartition::OriginMatcherFunction(), 551 GURL(), StoragePartition::OriginMatcherFunction(),
551 time, time, run_loop->QuitClosure()); 552 time, time, run_loop->QuitClosure());
552 } 553 }
553 554
554 #if defined(ENABLE_PLUGINS) 555 #if BUILDFLAG(ENABLE_PLUGINS)
555 void ClearPluginPrivateData(content::StoragePartition* partition, 556 void ClearPluginPrivateData(content::StoragePartition* partition,
556 const GURL& storage_origin, 557 const GURL& storage_origin,
557 const base::Time delete_begin, 558 const base::Time delete_begin,
558 const base::Time delete_end, 559 const base::Time delete_end,
559 base::RunLoop* run_loop) { 560 base::RunLoop* run_loop) {
560 partition->ClearData( 561 partition->ClearData(
561 StoragePartitionImpl::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA, 562 StoragePartitionImpl::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA,
562 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, storage_origin, 563 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL, storage_origin,
563 StoragePartition::OriginMatcherFunction(), delete_begin, delete_end, 564 StoragePartition::OriginMatcherFunction(), delete_begin, delete_end,
564 run_loop->QuitClosure()); 565 run_loop->QuitClosure());
565 } 566 }
566 #endif // defined(ENABLE_PLUGINS) 567 #endif // BUILDFLAG(ENABLE_PLUGINS)
567 568
568 } // namespace 569 } // namespace
569 570
570 class StoragePartitionImplTest : public testing::Test { 571 class StoragePartitionImplTest : public testing::Test {
571 public: 572 public:
572 StoragePartitionImplTest() 573 StoragePartitionImplTest()
573 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), 574 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
574 browser_context_(new TestBrowserContext()) {} 575 browser_context_(new TestBrowserContext()) {}
575 576
576 MockQuotaManager* GetMockManager() { 577 MockQuotaManager* GetMockManager() {
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
1190 base::Bind(&DoesOriginMatchForBothProtectedAndUnprotectedWeb), 1191 base::Bind(&DoesOriginMatchForBothProtectedAndUnprotectedWeb),
1191 &run_loop)); 1192 &run_loop));
1192 run_loop.Run(); 1193 run_loop.Run();
1193 1194
1194 // kOrigin1 and kOrigin2 do not have age more than a week. 1195 // kOrigin1 and kOrigin2 do not have age more than a week.
1195 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); 1196 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1));
1196 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); 1197 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2));
1197 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); 1198 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3));
1198 } 1199 }
1199 1200
1200 #if defined(ENABLE_PLUGINS) 1201 #if BUILDFLAG(ENABLE_PLUGINS)
1201 TEST_F(StoragePartitionImplTest, RemovePluginPrivateDataForever) { 1202 TEST_F(StoragePartitionImplTest, RemovePluginPrivateDataForever) {
1202 StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>( 1203 StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>(
1203 BrowserContext::GetDefaultStoragePartition(browser_context())); 1204 BrowserContext::GetDefaultStoragePartition(browser_context()));
1204 1205
1205 RemovePluginPrivateDataTester tester(partition->GetFileSystemContext()); 1206 RemovePluginPrivateDataTester tester(partition->GetFileSystemContext());
1206 tester.AddPluginPrivateTestData(); 1207 tester.AddPluginPrivateTestData();
1207 EXPECT_TRUE(tester.DataExistsForOrigin(kOrigin1)); 1208 EXPECT_TRUE(tester.DataExistsForOrigin(kOrigin1));
1208 EXPECT_TRUE(tester.DataExistsForOrigin(kOrigin2)); 1209 EXPECT_TRUE(tester.DataExistsForOrigin(kOrigin2));
1209 1210
1210 base::RunLoop run_loop; 1211 base::RunLoop run_loop;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1284 EXPECT_FALSE(tester.DataExistsForOrigin(kOrigin1)); 1285 EXPECT_FALSE(tester.DataExistsForOrigin(kOrigin1));
1285 EXPECT_FALSE(tester.DataExistsForOrigin(kOrigin2)); 1286 EXPECT_FALSE(tester.DataExistsForOrigin(kOrigin2));
1286 1287
1287 const char more_data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 1288 const char more_data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
1288 EXPECT_EQ(static_cast<int>(arraysize(more_data)), 1289 EXPECT_EQ(static_cast<int>(arraysize(more_data)),
1289 file.WriteAtCurrentPos(more_data, arraysize(more_data))); 1290 file.WriteAtCurrentPos(more_data, arraysize(more_data)));
1290 1291
1291 base::File file2 = tester.OpenClearKeyFileForWrite(); 1292 base::File file2 = tester.OpenClearKeyFileForWrite();
1292 EXPECT_FALSE(file2.IsValid()); 1293 EXPECT_FALSE(file2.IsValid());
1293 } 1294 }
1294 #endif // defined(ENABLE_PLUGINS) 1295 #endif // BUILDFLAG(ENABLE_PLUGINS)
1295 1296
1296 TEST(StoragePartitionImplStaticTest, CreatePredicateForHostCookies) { 1297 TEST(StoragePartitionImplStaticTest, CreatePredicateForHostCookies) {
1297 GURL url("http://www.example.com/"); 1298 GURL url("http://www.example.com/");
1298 GURL url2("https://www.example.com/"); 1299 GURL url2("https://www.example.com/");
1299 GURL url3("https://www.google.com/"); 1300 GURL url3("https://www.google.com/");
1300 1301
1301 net::CookieOptions options; 1302 net::CookieOptions options;
1302 net::CookieStore::CookiePredicate predicate = 1303 net::CookieStore::CookiePredicate predicate =
1303 StoragePartitionImpl::CreatePredicateForHostCookies(url); 1304 StoragePartitionImpl::CreatePredicateForHostCookies(url);
1304 1305
(...skipping 10 matching lines...) Expand all
1315 CanonicalCookie::Create(url2, "A=B;domain=.example.com", now, options)); 1316 CanonicalCookie::Create(url2, "A=B;domain=.example.com", now, options));
1316 invalid_cookies.push_back(CanonicalCookie::Create(url3, "A=B", now, options)); 1317 invalid_cookies.push_back(CanonicalCookie::Create(url3, "A=B", now, options));
1317 1318
1318 for (const auto& cookie : valid_cookies) 1319 for (const auto& cookie : valid_cookies)
1319 EXPECT_TRUE(predicate.Run(*cookie)) << cookie->DebugString(); 1320 EXPECT_TRUE(predicate.Run(*cookie)) << cookie->DebugString();
1320 for (const auto& cookie : invalid_cookies) 1321 for (const auto& cookie : invalid_cookies)
1321 EXPECT_FALSE(predicate.Run(*cookie)) << cookie->DebugString(); 1322 EXPECT_FALSE(predicate.Run(*cookie)) << cookie->DebugString();
1322 } 1323 }
1323 1324
1324 } // namespace content 1325 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/storage_partition_impl.cc ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698