| Index: chrome/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
|
| diff --git a/chrome/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc b/chrome/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
|
| deleted file mode 100644
|
| index 3d3fee58f7de3f74b8a053b32e27782004e1bdb0..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/browsing_data/conditional_cache_deletion_helper_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,180 +0,0 @@
|
| -// Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <algorithm>
|
| -#include <memory>
|
| -#include <set>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/ptr_util.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "base/synchronization/waitable_event.h"
|
| -#include "base/threading/platform_thread.h"
|
| -#include "chrome/browser/browsing_data/cache_test_util.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/test/base/in_process_browser_test.h"
|
| -#include "components/browsing_data/content/conditional_cache_deletion_helper.h"
|
| -#include "content/public/browser/browser_context.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "content/public/browser/storage_partition.h"
|
| -#include "net/disk_cache/disk_cache.h"
|
| -#include "net/http/http_cache.h"
|
| -#include "net/url_request/url_request_context.h"
|
| -#include "net/url_request/url_request_context_getter.h"
|
| -
|
| -using browsing_data::ConditionalCacheDeletionHelper;
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -bool KeyIsEven(const disk_cache::Entry* entry) {
|
| - int key_as_int = 0;
|
| - base::StringToInt(entry->GetKey().c_str(), &key_as_int);
|
| - return (key_as_int % 2) == 0;
|
| -}
|
| -
|
| -bool HasHttpsExampleOrigin(const GURL& url) {
|
| - return url.GetOrigin() == "https://example.com/";
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -class ConditionalCacheDeletionHelperBrowserTest : public InProcessBrowserTest {
|
| - public:
|
| - void SetUpOnMainThread() override {
|
| - cache_util_ = base::MakeUnique<CacheTestUtil>(
|
| - content::BrowserContext::GetDefaultStoragePartition(
|
| - browser()->profile()));
|
| - done_callback_ =
|
| - base::Bind(&ConditionalCacheDeletionHelperBrowserTest::DoneCallback,
|
| - base::Unretained(this));
|
| - // UI and IO thread synchronization.
|
| - waitable_event_ = base::MakeUnique<base::WaitableEvent>(
|
| - base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| - base::WaitableEvent::InitialState::NOT_SIGNALED);
|
| - }
|
| -
|
| - void TearDownOnMainThread() override { cache_util_.reset(); }
|
| -
|
| - void DeleteEntries(
|
| - const base::Callback<bool(const disk_cache::Entry*)>& condition) {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - auto* helper =
|
| - new ConditionalCacheDeletionHelper(cache_util_->backend(), condition);
|
| -
|
| - helper->DeleteAndDestroySelfWhenFinished(done_callback_);
|
| - }
|
| -
|
| - void CompareRemainingKeys(std::set<std::string> expected_set) {
|
| - std::vector<std::string> remaining_keys = cache_util_->GetEntryKeys();
|
| - std::sort(remaining_keys.begin(), remaining_keys.end());
|
| - std::vector<std::string> expected;
|
| - expected.assign(expected_set.begin(), expected_set.end());
|
| - EXPECT_EQ(expected, remaining_keys);
|
| - }
|
| -
|
| - void DoneCallback(int value) {
|
| - DCHECK_GE(value, 0); // Negative values represent an error.
|
| - DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - waitable_event_->Signal();
|
| - }
|
| -
|
| - void WaitForTasksOnIOThread() {
|
| - DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| - waitable_event_->Wait();
|
| - }
|
| -
|
| - CacheTestUtil* GetCacheTestUtil() { return cache_util_.get(); }
|
| -
|
| - private:
|
| - base::Callback<void(int)> done_callback_;
|
| - std::unique_ptr<CacheTestUtil> cache_util_;
|
| - std::unique_ptr<base::WaitableEvent> waitable_event_;
|
| -};
|
| -
|
| -// Tests that ConditionalCacheDeletionHelper only deletes those cache entries
|
| -// that match the condition.
|
| -IN_PROC_BROWSER_TEST_F(ConditionalCacheDeletionHelperBrowserTest, Condition) {
|
| - // Create 5 entries.
|
| - std::set<std::string> keys = {"123", "47", "56", "81", "42"};
|
| -
|
| - GetCacheTestUtil()->CreateCacheEntries(keys);
|
| -
|
| - // Delete the entries whose keys are even numbers.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&ConditionalCacheDeletionHelperBrowserTest::DeleteEntries,
|
| - base::Unretained(this),
|
| - base::Bind(&KeyIsEven)));
|
| - WaitForTasksOnIOThread();
|
| -
|
| - // Expect that the keys with values 56 and 42 were deleted.
|
| - keys.erase("56");
|
| - keys.erase("42");
|
| - CompareRemainingKeys(keys);
|
| -}
|
| -
|
| -// Tests that ConditionalCacheDeletionHelper correctly constructs a condition
|
| -// for time and URL.
|
| -//
|
| -// Note: This test depends on the timing in cache backends and can be flaky
|
| -// if those backends are slow. If this turns out to be a problem, consider
|
| -// increasing the |timeout_ms| constant.
|
| -//
|
| -// Flakily timing out on Mac 10.11 (crbug.com/646119) and flakily
|
| -// failing on Linux/ChromeOS (crbug.com/624836).
|
| -#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_CHROMEOS)
|
| -#define MAYBE_TimeAndURL DISABLED_TimeAndURL
|
| -#else
|
| -#define MAYBE_TimeAndURL TimeAndURL
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(ConditionalCacheDeletionHelperBrowserTest,
|
| - MAYBE_TimeAndURL) {
|
| - const int64_t timeout_ms = 1;
|
| -
|
| - // Create some entries.
|
| - std::set<std::string> keys;
|
| - keys.insert("https://google.com/index.html");
|
| - keys.insert("https://example.com/foo/bar/icon.png");
|
| - keys.insert("http://chrome.com");
|
| -
|
| - GetCacheTestUtil()->CreateCacheEntries(keys);
|
| -
|
| - // Wait |timeout_ms| milliseconds for the cache to write the entries.
|
| - // This assures that future entries will have timestamps strictly greater than
|
| - // the ones we just added.
|
| - base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(timeout_ms));
|
| - base::Time now = base::Time::Now();
|
| -
|
| - // Create a few more entries with a later timestamp.
|
| - std::set<std::string> newer_keys;
|
| - newer_keys.insert("https://google.com/");
|
| - newer_keys.insert("https://example.com/foo/bar/icon2.png");
|
| - newer_keys.insert("https://example.com/foo/bar/icon3.png");
|
| - newer_keys.insert("http://example.com/foo/bar/icon4.png");
|
| -
|
| - GetCacheTestUtil()->CreateCacheEntries(newer_keys);
|
| -
|
| - // Create a condition for entries with the "https://example.com" origin
|
| - // created after waiting.
|
| - base::Callback<bool(const disk_cache::Entry*)> condition =
|
| - ConditionalCacheDeletionHelper::CreateURLAndTimeCondition(
|
| - base::Bind(&HasHttpsExampleOrigin), now, base::Time::Max());
|
| -
|
| - // Delete the entries.
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&ConditionalCacheDeletionHelperBrowserTest::DeleteEntries,
|
| - base::Unretained(this),
|
| - base::ConstRef(condition)));
|
| - WaitForTasksOnIOThread();
|
| -
|
| - // Expect that only "icon2.png" and "icon3.png" were deleted.
|
| - keys.insert(newer_keys.begin(), newer_keys.end());
|
| - keys.erase("https://example.com/foo/bar/icon2.png");
|
| - keys.erase("https://example.com/foo/bar/icon3.png");
|
| - CompareRemainingKeys(keys);
|
| -}
|
|
|