| 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/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
| 8 #include "base/files/file_enumerator.h" | 8 #include "base/files/file_enumerator.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 using storage::DatabaseUtil; | 42 using storage::DatabaseUtil; |
| 43 | 43 |
| 44 namespace content { | 44 namespace content { |
| 45 | 45 |
| 46 // This browser test is aimed towards exercising the IndexedDB bindings and | 46 // This browser test is aimed towards exercising the IndexedDB bindings and |
| 47 // the actual implementation that lives in the browser side. | 47 // the actual implementation that lives in the browser side. |
| 48 class IndexedDBBrowserTest : public ContentBrowserTest { | 48 class IndexedDBBrowserTest : public ContentBrowserTest { |
| 49 public: | 49 public: |
| 50 IndexedDBBrowserTest() : disk_usage_(-1) {} | 50 IndexedDBBrowserTest() : disk_usage_(-1) {} |
| 51 | 51 |
| 52 virtual void SetUp() OVERRIDE { | 52 virtual void SetUp() override { |
| 53 GetTestClassFactory()->Reset(); | 53 GetTestClassFactory()->Reset(); |
| 54 IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetIDBClassFactory); | 54 IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(GetIDBClassFactory); |
| 55 ContentBrowserTest::SetUp(); | 55 ContentBrowserTest::SetUp(); |
| 56 } | 56 } |
| 57 | 57 |
| 58 virtual void TearDown() OVERRIDE { | 58 virtual void TearDown() override { |
| 59 IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(NULL); | 59 IndexedDBClassFactory::SetIndexedDBClassFactoryGetter(NULL); |
| 60 ContentBrowserTest::TearDown(); | 60 ContentBrowserTest::TearDown(); |
| 61 } | 61 } |
| 62 | 62 |
| 63 void FailOperation(FailClass failure_class, | 63 void FailOperation(FailClass failure_class, |
| 64 FailMethod failure_method, | 64 FailMethod failure_method, |
| 65 int fail_on_instance_num, | 65 int fail_on_instance_num, |
| 66 int fail_on_call_num) { | 66 int fail_on_call_num) { |
| 67 GetTestClassFactory()->FailOperation( | 67 GetTestClassFactory()->FailOperation( |
| 68 failure_class, failure_method, fail_on_instance_num, fail_on_call_num); | 68 failure_class, failure_method, fail_on_instance_num, fail_on_call_num); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 const GURL url = GetTestUrl("indexeddb", "bug_109187.html"); | 239 const GURL url = GetTestUrl("indexeddb", "bug_109187.html"); |
| 240 | 240 |
| 241 // Just navigate to the URL. Test will crash if it fails. | 241 // Just navigate to the URL. Test will crash if it fails. |
| 242 NavigateToURLBlockUntilNavigationsComplete(shell(), url, 1); | 242 NavigateToURLBlockUntilNavigationsComplete(shell(), url, 1); |
| 243 } | 243 } |
| 244 | 244 |
| 245 class IndexedDBBrowserTestWithLowQuota : public IndexedDBBrowserTest { | 245 class IndexedDBBrowserTestWithLowQuota : public IndexedDBBrowserTest { |
| 246 public: | 246 public: |
| 247 IndexedDBBrowserTestWithLowQuota() {} | 247 IndexedDBBrowserTestWithLowQuota() {} |
| 248 | 248 |
| 249 virtual void SetUpOnMainThread() OVERRIDE { | 249 virtual void SetUpOnMainThread() override { |
| 250 const int kInitialQuotaKilobytes = 5000; | 250 const int kInitialQuotaKilobytes = 5000; |
| 251 SetQuota(kInitialQuotaKilobytes); | 251 SetQuota(kInitialQuotaKilobytes); |
| 252 } | 252 } |
| 253 | 253 |
| 254 private: | 254 private: |
| 255 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithLowQuota); | 255 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithLowQuota); |
| 256 }; | 256 }; |
| 257 | 257 |
| 258 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithLowQuota, QuotaTest) { | 258 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithLowQuota, QuotaTest) { |
| 259 SimpleTest(GetTestUrl("indexeddb", "quota_test.html")); | 259 SimpleTest(GetTestUrl("indexeddb", "quota_test.html")); |
| 260 } | 260 } |
| 261 | 261 |
| 262 class IndexedDBBrowserTestWithGCExposed : public IndexedDBBrowserTest { | 262 class IndexedDBBrowserTestWithGCExposed : public IndexedDBBrowserTest { |
| 263 public: | 263 public: |
| 264 IndexedDBBrowserTestWithGCExposed() {} | 264 IndexedDBBrowserTestWithGCExposed() {} |
| 265 | 265 |
| 266 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 266 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 267 command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose-gc"); | 267 command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose-gc"); |
| 268 } | 268 } |
| 269 | 269 |
| 270 private: | 270 private: |
| 271 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithGCExposed); | 271 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithGCExposed); |
| 272 }; | 272 }; |
| 273 | 273 |
| 274 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithGCExposed, | 274 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithGCExposed, |
| 275 DatabaseCallbacksTest) { | 275 DatabaseCallbacksTest) { |
| 276 SimpleTest(GetTestUrl("indexeddb", "database_callbacks_first.html")); | 276 SimpleTest(GetTestUrl("indexeddb", "database_callbacks_first.html")); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 290 ASSERT_TRUE(base::CreateDirectory(dest)); | 290 ASSERT_TRUE(base::CreateDirectory(dest)); |
| 291 const bool kRecursive = true; | 291 const bool kRecursive = true; |
| 292 ASSERT_TRUE(base::CopyDirectory(test_data_dir, | 292 ASSERT_TRUE(base::CopyDirectory(test_data_dir, |
| 293 context->data_path(), | 293 context->data_path(), |
| 294 kRecursive)); | 294 kRecursive)); |
| 295 } | 295 } |
| 296 | 296 |
| 297 class IndexedDBBrowserTestWithPreexistingLevelDB : public IndexedDBBrowserTest { | 297 class IndexedDBBrowserTestWithPreexistingLevelDB : public IndexedDBBrowserTest { |
| 298 public: | 298 public: |
| 299 IndexedDBBrowserTestWithPreexistingLevelDB() {} | 299 IndexedDBBrowserTestWithPreexistingLevelDB() {} |
| 300 virtual void SetUpOnMainThread() OVERRIDE { | 300 virtual void SetUpOnMainThread() override { |
| 301 scoped_refptr<IndexedDBContextImpl> context = GetContext(); | 301 scoped_refptr<IndexedDBContextImpl> context = GetContext(); |
| 302 context->TaskRunner()->PostTask( | 302 context->TaskRunner()->PostTask( |
| 303 FROM_HERE, | 303 FROM_HERE, |
| 304 base::Bind( | 304 base::Bind( |
| 305 &CopyLevelDBToProfile, shell(), context, EnclosingLevelDBDir())); | 305 &CopyLevelDBToProfile, shell(), context, EnclosingLevelDBDir())); |
| 306 scoped_refptr<base::ThreadTestHelper> helper(new base::ThreadTestHelper( | 306 scoped_refptr<base::ThreadTestHelper> helper(new base::ThreadTestHelper( |
| 307 BrowserMainLoop::GetInstance()->indexed_db_thread()-> | 307 BrowserMainLoop::GetInstance()->indexed_db_thread()-> |
| 308 message_loop_proxy())); | 308 message_loop_proxy())); |
| 309 ASSERT_TRUE(helper->Run()); | 309 ASSERT_TRUE(helper->Run()); |
| 310 } | 310 } |
| 311 | 311 |
| 312 virtual std::string EnclosingLevelDBDir() = 0; | 312 virtual std::string EnclosingLevelDBDir() = 0; |
| 313 | 313 |
| 314 private: | 314 private: |
| 315 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithPreexistingLevelDB); | 315 DISALLOW_COPY_AND_ASSIGN(IndexedDBBrowserTestWithPreexistingLevelDB); |
| 316 }; | 316 }; |
| 317 | 317 |
| 318 class IndexedDBBrowserTestWithVersion0Schema : public | 318 class IndexedDBBrowserTestWithVersion0Schema : public |
| 319 IndexedDBBrowserTestWithPreexistingLevelDB { | 319 IndexedDBBrowserTestWithPreexistingLevelDB { |
| 320 virtual std::string EnclosingLevelDBDir() OVERRIDE { | 320 virtual std::string EnclosingLevelDBDir() override { |
| 321 return "migration_from_0"; | 321 return "migration_from_0"; |
| 322 } | 322 } |
| 323 }; | 323 }; |
| 324 | 324 |
| 325 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion0Schema, MigrationTest) { | 325 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion0Schema, MigrationTest) { |
| 326 SimpleTest(GetTestUrl("indexeddb", "migration_test.html")); | 326 SimpleTest(GetTestUrl("indexeddb", "migration_test.html")); |
| 327 } | 327 } |
| 328 | 328 |
| 329 class IndexedDBBrowserTestWithVersion123456Schema : public | 329 class IndexedDBBrowserTestWithVersion123456Schema : public |
| 330 IndexedDBBrowserTestWithPreexistingLevelDB { | 330 IndexedDBBrowserTestWithPreexistingLevelDB { |
| 331 virtual std::string EnclosingLevelDBDir() OVERRIDE { | 331 virtual std::string EnclosingLevelDBDir() override { |
| 332 return "schema_version_123456"; | 332 return "schema_version_123456"; |
| 333 } | 333 } |
| 334 }; | 334 }; |
| 335 | 335 |
| 336 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion123456Schema, | 336 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion123456Schema, |
| 337 DestroyTest) { | 337 DestroyTest) { |
| 338 int64 original_size = RequestDiskUsage(); | 338 int64 original_size = RequestDiskUsage(); |
| 339 EXPECT_GT(original_size, 0); | 339 EXPECT_GT(original_size, 0); |
| 340 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); | 340 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); |
| 341 int64 new_size = RequestDiskUsage(); | 341 int64 new_size = RequestDiskUsage(); |
| 342 EXPECT_NE(original_size, new_size); | 342 EXPECT_NE(original_size, new_size); |
| 343 } | 343 } |
| 344 | 344 |
| 345 class IndexedDBBrowserTestWithVersion987654SSVData : public | 345 class IndexedDBBrowserTestWithVersion987654SSVData : public |
| 346 IndexedDBBrowserTestWithPreexistingLevelDB { | 346 IndexedDBBrowserTestWithPreexistingLevelDB { |
| 347 virtual std::string EnclosingLevelDBDir() OVERRIDE { | 347 virtual std::string EnclosingLevelDBDir() override { |
| 348 return "ssv_version_987654"; | 348 return "ssv_version_987654"; |
| 349 } | 349 } |
| 350 }; | 350 }; |
| 351 | 351 |
| 352 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion987654SSVData, | 352 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithVersion987654SSVData, |
| 353 DestroyTest) { | 353 DestroyTest) { |
| 354 int64 original_size = RequestDiskUsage(); | 354 int64 original_size = RequestDiskUsage(); |
| 355 EXPECT_GT(original_size, 0); | 355 EXPECT_GT(original_size, 0); |
| 356 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); | 356 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); |
| 357 int64 new_size = RequestDiskUsage(); | 357 int64 new_size = RequestDiskUsage(); |
| 358 EXPECT_NE(original_size, new_size); | 358 EXPECT_NE(original_size, new_size); |
| 359 } | 359 } |
| 360 | 360 |
| 361 class IndexedDBBrowserTestWithCorruptLevelDB : public | 361 class IndexedDBBrowserTestWithCorruptLevelDB : public |
| 362 IndexedDBBrowserTestWithPreexistingLevelDB { | 362 IndexedDBBrowserTestWithPreexistingLevelDB { |
| 363 virtual std::string EnclosingLevelDBDir() OVERRIDE { | 363 virtual std::string EnclosingLevelDBDir() override { |
| 364 return "corrupt_leveldb"; | 364 return "corrupt_leveldb"; |
| 365 } | 365 } |
| 366 }; | 366 }; |
| 367 | 367 |
| 368 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithCorruptLevelDB, | 368 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithCorruptLevelDB, |
| 369 DestroyTest) { | 369 DestroyTest) { |
| 370 int64 original_size = RequestDiskUsage(); | 370 int64 original_size = RequestDiskUsage(); |
| 371 EXPECT_GT(original_size, 0); | 371 EXPECT_GT(original_size, 0); |
| 372 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); | 372 SimpleTest(GetTestUrl("indexeddb", "open_bad_db.html")); |
| 373 int64 new_size = RequestDiskUsage(); | 373 int64 new_size = RequestDiskUsage(); |
| 374 EXPECT_NE(original_size, new_size); | 374 EXPECT_NE(original_size, new_size); |
| 375 } | 375 } |
| 376 | 376 |
| 377 class IndexedDBBrowserTestWithMissingSSTFile : public | 377 class IndexedDBBrowserTestWithMissingSSTFile : public |
| 378 IndexedDBBrowserTestWithPreexistingLevelDB { | 378 IndexedDBBrowserTestWithPreexistingLevelDB { |
| 379 virtual std::string EnclosingLevelDBDir() OVERRIDE { | 379 virtual std::string EnclosingLevelDBDir() override { |
| 380 return "missing_sst"; | 380 return "missing_sst"; |
| 381 } | 381 } |
| 382 }; | 382 }; |
| 383 | 383 |
| 384 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithMissingSSTFile, | 384 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestWithMissingSSTFile, |
| 385 DestroyTest) { | 385 DestroyTest) { |
| 386 int64 original_size = RequestDiskUsage(); | 386 int64 original_size = RequestDiskUsage(); |
| 387 EXPECT_GT(original_size, 0); | 387 EXPECT_GT(original_size, 0); |
| 388 SimpleTest(GetTestUrl("indexeddb", "open_missing_table.html")); | 388 SimpleTest(GetTestUrl("indexeddb", "open_missing_table.html")); |
| 389 int64 new_size = RequestDiskUsage(); | 389 int64 new_size = RequestDiskUsage(); |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 GURL("file:///"))); | 716 GURL("file:///"))); |
| 717 | 717 |
| 718 base::string16 expected_title16(ASCIIToUTF16("connection closed")); | 718 base::string16 expected_title16(ASCIIToUTF16("connection closed")); |
| 719 TitleWatcher title_watcher(shell()->web_contents(), expected_title16); | 719 TitleWatcher title_watcher(shell()->web_contents(), expected_title16); |
| 720 title_watcher.AlsoWaitForTitle(ASCIIToUTF16("connection closed with error")); | 720 title_watcher.AlsoWaitForTitle(ASCIIToUTF16("connection closed with error")); |
| 721 EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle()); | 721 EXPECT_EQ(expected_title16, title_watcher.WaitAndGetTitle()); |
| 722 } | 722 } |
| 723 | 723 |
| 724 class IndexedDBBrowserTestSingleProcess : public IndexedDBBrowserTest { | 724 class IndexedDBBrowserTestSingleProcess : public IndexedDBBrowserTest { |
| 725 public: | 725 public: |
| 726 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 726 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 727 command_line->AppendSwitch(switches::kSingleProcess); | 727 command_line->AppendSwitch(switches::kSingleProcess); |
| 728 } | 728 } |
| 729 }; | 729 }; |
| 730 | 730 |
| 731 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestSingleProcess, | 731 IN_PROC_BROWSER_TEST_F(IndexedDBBrowserTestSingleProcess, |
| 732 RenderThreadShutdownTest) { | 732 RenderThreadShutdownTest) { |
| 733 SimpleTest(GetTestUrl("indexeddb", "shutdown_with_requests.html")); | 733 SimpleTest(GetTestUrl("indexeddb", "shutdown_with_requests.html")); |
| 734 } | 734 } |
| 735 | 735 |
| 736 } // namespace content | 736 } // namespace content |
| OLD | NEW |