| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 6 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 7 #include "chrome/browser/profiles/profile.h" |
| 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/browser_tabstrip.h" |
| 10 #include "chrome/common/chrome_notification_types.h" |
| 11 #include "chrome/test/base/in_process_browser_test.h" |
| 12 #include "chrome/test/base/ui_test_utils.h" |
| 13 #include "content/public/browser/browser_context.h" |
| 14 #include "content/public/browser/download_manager.h" |
| 15 #include "content/public/browser/web_contents.h" |
| 16 #include "content/public/test/browser_test_utils.h" |
| 17 #include "content/public/test/download_test_observer.h" |
| 18 #include "content/test/net/url_request_mock_http_job.h" |
| 19 #include "testing/gtest/include/gtest/gtest.h" |
| 20 |
| 21 class BrowsingDataRemoverBrowserTest : public InProcessBrowserTest { |
| 22 public: |
| 23 BrowsingDataRemoverBrowserTest() {} |
| 24 |
| 25 void RunScriptAndCheckResult(const std::wstring& script, |
| 26 const std::string& result) { |
| 27 std::string data; |
| 28 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( |
| 29 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), L"", |
| 30 script, &data)); |
| 31 ASSERT_EQ(data, result); |
| 32 } |
| 33 |
| 34 void RemoveAndWait(int remove_mask) { |
| 35 content::WindowedNotificationObserver signal( |
| 36 chrome::NOTIFICATION_BROWSING_DATA_REMOVED, |
| 37 content::Source<Profile>(browser()->profile())); |
| 38 BrowsingDataRemover* remover = new BrowsingDataRemover( |
| 39 browser()->profile(), BrowsingDataRemover::LAST_HOUR, |
| 40 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
| 41 remover->Remove(remove_mask, BrowsingDataHelper::UNPROTECTED_WEB); |
| 42 signal.Wait(); |
| 43 } |
| 44 }; |
| 45 |
| 46 // Test BrowsingDataRemover for downloads. |
| 47 IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverBrowserTest, Download) { |
| 48 // Start a download. |
| 49 content::DownloadManager* download_manager = |
| 50 content::BrowserContext::GetDownloadManager(browser()->profile()); |
| 51 scoped_ptr<content::DownloadTestObserver> observer( |
| 52 new content::DownloadTestObserverTerminal( |
| 53 download_manager, 1, |
| 54 content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_ACCEPT)); |
| 55 |
| 56 GURL download_url = ui_test_utils::GetTestUrl( |
| 57 FilePath().AppendASCII("downloads"), |
| 58 FilePath().AppendASCII("a_zip_file.zip")); |
| 59 ui_test_utils::NavigateToURL(browser(), download_url); |
| 60 observer->WaitForFinished(); |
| 61 |
| 62 std::vector<content::DownloadItem*> downloads; |
| 63 download_manager->GetAllDownloads(FilePath(), &downloads); |
| 64 EXPECT_EQ(1u, downloads.size()); |
| 65 |
| 66 RemoveAndWait(BrowsingDataRemover::REMOVE_DOWNLOADS); |
| 67 |
| 68 downloads.clear(); |
| 69 download_manager->GetAllDownloads(FilePath(), &downloads); |
| 70 EXPECT_TRUE(downloads.empty()); |
| 71 } |
| 72 |
| 73 // Verify can modify database after deleting it. |
| 74 IN_PROC_BROWSER_TEST_F(BrowsingDataRemoverBrowserTest, Database) { |
| 75 ASSERT_TRUE(test_server()->Start()); |
| 76 GURL url = test_server()->GetURL("files/database/simple_database.html"); |
| 77 ui_test_utils::NavigateToURL(browser(), url); |
| 78 |
| 79 RunScriptAndCheckResult(L"createTable()", "done"); |
| 80 RunScriptAndCheckResult(L"insertRecord('text')", "done"); |
| 81 RunScriptAndCheckResult(L"getRecords()", "text"); |
| 82 |
| 83 RemoveAndWait(BrowsingDataRemover::REMOVE_SITE_DATA); |
| 84 |
| 85 ui_test_utils::NavigateToURL(browser(), url); |
| 86 RunScriptAndCheckResult(L"createTable()", "done"); |
| 87 RunScriptAndCheckResult(L"insertRecord('text2')", "done"); |
| 88 RunScriptAndCheckResult(L"getRecords()", "text2"); |
| 89 } |
| OLD | NEW |