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

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc

Issue 117933003: Remove the speculative resource prefetching code. This was experimental code added 1.5 years ago an… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 6 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
===================================================================
--- chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc (revision 243063)
+++ chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc (working copy)
@@ -1,472 +0,0 @@
-// Copyright (c) 2012 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 <set>
-#include <utility>
-#include <vector>
-
-#include "base/message_loop/message_loop.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/predictors/predictor_database.h"
-#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/test/test_browser_thread.h"
-#include "sql/statement.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace predictors {
-
-class ResourcePrefetchPredictorTablesTest : public testing::Test {
- public:
- ResourcePrefetchPredictorTablesTest();
- virtual ~ResourcePrefetchPredictorTablesTest();
- virtual void SetUp() OVERRIDE;
- virtual void TearDown() OVERRIDE;
-
- protected:
- void TestGetAllData();
- void TestUpdateData();
- void TestDeleteData();
- void TestDeleteSingleDataPoint();
- void TestDeleteAllData();
-
- base::MessageLoop loop_;
- content::TestBrowserThread db_thread_;
- TestingProfile profile_;
- scoped_ptr<PredictorDatabase> db_;
- scoped_refptr<ResourcePrefetchPredictorTables> tables_;
-
- private:
- typedef ResourcePrefetchPredictorTables::ResourceRow ResourceRow;
- typedef std::vector<ResourceRow> ResourceRows;
- typedef ResourcePrefetchPredictorTables::PrefetchData PrefetchData;
- typedef ResourcePrefetchPredictorTables::PrefetchDataMap PrefetchDataMap;
-
- // Initializes the tables, |test_url_data_| and |test_host_data_|.
- void InitializeSampleData();
-
- // Checks that the input PrefetchData are the same, although the resources
- // can be in different order.
- void TestPrefetchDataAreEqual(const PrefetchDataMap& lhs,
- const PrefetchDataMap& rhs) const;
- void TestResourceRowsAreEqual(const ResourceRows& lhs,
- const ResourceRows& rhs) const;
-
- void AddKey(PrefetchDataMap* m, const std::string& key) const;
-
- // Useful for debugging test.
- void PrintPrefetchData(const PrefetchData& data) const {
- LOG(ERROR) << "[" << data.key_type << "," << data.primary_key
- << "," << data.last_visit.ToInternalValue() << "]";
- for (ResourceRows::const_iterator it = data.resources.begin();
- it != data.resources.end(); ++it) {
- LOG(ERROR) << "\t\t" << it->resource_url << "\t" << it->resource_type
- << "\t" << it->number_of_hits << "\t" << it->number_of_misses
- << "\t" << it->consecutive_misses
- << "\t" << it->average_position
- << "\t" << it->score;
- }
- }
-
- PrefetchDataMap test_url_data_;
- PrefetchDataMap test_host_data_;
-};
-
-class ResourcePrefetchPredictorTablesReopenTest
- : public ResourcePrefetchPredictorTablesTest {
- public:
- virtual void SetUp() OVERRIDE {
- // Write data to the table, and then reopen the db.
- ResourcePrefetchPredictorTablesTest::SetUp();
- ResourcePrefetchPredictorTablesTest::TearDown();
-
- db_.reset(new PredictorDatabase(&profile_));
- loop_.RunUntilIdle();
- tables_ = db_->resource_prefetch_tables();
- }
-};
-
-ResourcePrefetchPredictorTablesTest::ResourcePrefetchPredictorTablesTest()
- : loop_(base::MessageLoop::TYPE_DEFAULT),
- db_thread_(content::BrowserThread::DB, &loop_),
- db_(new PredictorDatabase(&profile_)),
- tables_(db_->resource_prefetch_tables()) {
- loop_.RunUntilIdle();
-}
-
-ResourcePrefetchPredictorTablesTest::~ResourcePrefetchPredictorTablesTest() {
-}
-
-void ResourcePrefetchPredictorTablesTest::SetUp() {
- tables_->DeleteAllData();
- InitializeSampleData();
-}
-
-void ResourcePrefetchPredictorTablesTest::TearDown() {
- tables_ = NULL;
- db_.reset();
- loop_.RunUntilIdle();
-}
-
-void ResourcePrefetchPredictorTablesTest::TestGetAllData() {
- PrefetchDataMap actual_url_data, actual_host_data;
- tables_->GetAllData(&actual_url_data, &actual_host_data);
-
- TestPrefetchDataAreEqual(test_url_data_, actual_url_data);
- TestPrefetchDataAreEqual(test_host_data_, actual_host_data);
-}
-
-void ResourcePrefetchPredictorTablesTest::TestDeleteData() {
- std::vector<std::string> urls_to_delete, hosts_to_delete;
- urls_to_delete.push_back("http://www.google.com");
- urls_to_delete.push_back("http://www.yahoo.com");
- hosts_to_delete.push_back("www.yahoo.com");
-
- tables_->DeleteData(urls_to_delete, hosts_to_delete);
-
- PrefetchDataMap actual_url_data, actual_host_data;
- tables_->GetAllData(&actual_url_data, &actual_host_data);
-
- PrefetchDataMap expected_url_data, expected_host_data;
- AddKey(&expected_url_data, "http://www.reddit.com");
- AddKey(&expected_host_data, "www.facebook.com");
-
- TestPrefetchDataAreEqual(expected_url_data, actual_url_data);
- TestPrefetchDataAreEqual(expected_host_data, actual_host_data);
-}
-
-void ResourcePrefetchPredictorTablesTest::TestDeleteSingleDataPoint() {
- // Delete a URL.
- tables_->DeleteSingleDataPoint("http://www.reddit.com",
- PREFETCH_KEY_TYPE_URL);
-
- PrefetchDataMap actual_url_data, actual_host_data;
- tables_->GetAllData(&actual_url_data, &actual_host_data);
-
- PrefetchDataMap expected_url_data;
- AddKey(&expected_url_data, "http://www.google.com");
- AddKey(&expected_url_data, "http://www.yahoo.com");
-
- TestPrefetchDataAreEqual(expected_url_data, actual_url_data);
- TestPrefetchDataAreEqual(test_host_data_, actual_host_data);
-
- // Delete a host.
- tables_->DeleteSingleDataPoint("www.facebook.com", PREFETCH_KEY_TYPE_HOST);
- actual_url_data.clear();
- actual_host_data.clear();
- tables_->GetAllData(&actual_url_data, &actual_host_data);
-
- PrefetchDataMap expected_host_data;
- AddKey(&expected_host_data, "www.yahoo.com");
-
- TestPrefetchDataAreEqual(expected_url_data, actual_url_data);
- TestPrefetchDataAreEqual(expected_host_data, actual_host_data);
-}
-
-void ResourcePrefetchPredictorTablesTest::TestUpdateData() {
- PrefetchData google(PREFETCH_KEY_TYPE_URL, "http://www.google.com");
- google.last_visit = base::Time::FromInternalValue(10);
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/style.css",
- ResourceType::STYLESHEET,
- 6,
- 2,
- 0,
- 1.0));
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/image.png",
- ResourceType::IMAGE,
- 6,
- 4,
- 1,
- 4.2));
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/a.xml",
- ResourceType::LAST_TYPE,
- 1,
- 0,
- 0,
- 6.1));
- google.resources
- .push_back(ResourceRow(std::string(),
- "http://www.resources.google.com/script.js",
- ResourceType::SCRIPT,
- 12,
- 0,
- 0,
- 8.5));
-
- PrefetchData yahoo(PREFETCH_KEY_TYPE_HOST, "www.yahoo.com");
- yahoo.last_visit = base::Time::FromInternalValue(7);
- yahoo.resources.push_back(ResourceRow(std::string(),
- "http://www.yahoo.com/image.png",
- ResourceType::IMAGE,
- 120,
- 1,
- 1,
- 10.0));
-
- tables_->UpdateData(google, yahoo);
-
- PrefetchDataMap actual_url_data, actual_host_data;
- tables_->GetAllData(&actual_url_data, &actual_host_data);
-
- PrefetchDataMap expected_url_data, expected_host_data;
- AddKey(&expected_url_data, "http://www.reddit.com");
- AddKey(&expected_url_data, "http://www.yahoo.com");
- expected_url_data.insert(std::make_pair("http://www.google.com", google));
-
- AddKey(&expected_host_data, "www.facebook.com");
- expected_host_data.insert(std::make_pair("www.yahoo.com", yahoo));
-
- TestPrefetchDataAreEqual(expected_url_data, actual_url_data);
- TestPrefetchDataAreEqual(expected_host_data, actual_host_data);
-}
-
-void ResourcePrefetchPredictorTablesTest::TestDeleteAllData() {
- tables_->DeleteAllData();
-
- PrefetchDataMap actual_url_data, actual_host_data;
- tables_->GetAllData(&actual_url_data, &actual_host_data);
- EXPECT_TRUE(actual_url_data.empty());
- EXPECT_TRUE(actual_host_data.empty());
-}
-
-void ResourcePrefetchPredictorTablesTest::TestPrefetchDataAreEqual(
- const PrefetchDataMap& lhs,
- const PrefetchDataMap& rhs) const {
- EXPECT_EQ(lhs.size(), rhs.size());
-
- for (PrefetchDataMap::const_iterator rhs_it = rhs.begin();
- rhs_it != rhs.end(); ++rhs_it) {
- PrefetchDataMap::const_iterator lhs_it = lhs.find(rhs_it->first);
- EXPECT_TRUE(lhs_it != lhs.end()) << rhs_it->first;
-
- TestResourceRowsAreEqual(lhs_it->second.resources,
- rhs_it->second.resources);
- }
-}
-
-void ResourcePrefetchPredictorTablesTest::TestResourceRowsAreEqual(
- const ResourceRows& lhs,
- const ResourceRows& rhs) const {
- EXPECT_EQ(lhs.size(), rhs.size());
-
- std::set<GURL> resources_seen;
- for (ResourceRows::const_iterator rhs_it = rhs.begin();
- rhs_it != rhs.end(); ++rhs_it) {
- const GURL& resource = rhs_it->resource_url;
- EXPECT_TRUE(resources_seen.find(resource) == resources_seen.end());
-
- for (ResourceRows::const_iterator lhs_it = lhs.begin();
- lhs_it != lhs.end(); ++lhs_it) {
- if (*rhs_it == *lhs_it) {
- resources_seen.insert(resource);
- break;
- }
- }
- EXPECT_TRUE(resources_seen.find(resource) != resources_seen.end());
- }
- EXPECT_EQ(lhs.size(), resources_seen.size());
-}
-
-void ResourcePrefetchPredictorTablesTest::AddKey(PrefetchDataMap* m,
- const std::string& key) const {
- PrefetchDataMap::const_iterator it = test_url_data_.find(key);
- if (it != test_url_data_.end()) {
- m->insert(std::make_pair(it->first, it->second));
- return;
- }
- it = test_host_data_.find(key);
- EXPECT_TRUE(it != test_host_data_.end());
- m->insert(std::make_pair(it->first, it->second));
-}
-
-void ResourcePrefetchPredictorTablesTest::InitializeSampleData() {
- { // Url data.
- PrefetchData google(PREFETCH_KEY_TYPE_URL, "http://www.google.com");
- google.last_visit = base::Time::FromInternalValue(1);
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/style.css",
- ResourceType::STYLESHEET,
- 5,
- 2,
- 1,
- 1.1));
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/script.js",
- ResourceType::SCRIPT,
- 4,
- 0,
- 1,
- 2.1));
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/image.png",
- ResourceType::IMAGE,
- 6,
- 3,
- 0,
- 2.2));
- google.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/a.font",
- ResourceType::LAST_TYPE,
- 2,
- 0,
- 0,
- 5.1));
- google.resources
- .push_back(ResourceRow(std::string(),
- "http://www.resources.google.com/script.js",
- ResourceType::SCRIPT,
- 11,
- 0,
- 0,
- 8.5));
-
- PrefetchData reddit(PREFETCH_KEY_TYPE_URL, "http://www.reddit.com");
- reddit.last_visit = base::Time::FromInternalValue(2);
- reddit.resources
- .push_back(ResourceRow(std::string(),
- "http://reddit-resource.com/script1.js",
- ResourceType::SCRIPT,
- 4,
- 0,
- 1,
- 1.0));
- reddit.resources
- .push_back(ResourceRow(std::string(),
- "http://reddit-resource.com/script2.js",
- ResourceType::SCRIPT,
- 2,
- 0,
- 0,
- 2.1));
-
- PrefetchData yahoo(PREFETCH_KEY_TYPE_URL, "http://www.yahoo.com");
- yahoo.last_visit = base::Time::FromInternalValue(3);
- yahoo.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/image.png",
- ResourceType::IMAGE,
- 20,
- 1,
- 0,
- 10.0));
-
- test_url_data_.clear();
- test_url_data_.insert(std::make_pair("http://www.google.com", google));
- test_url_data_.insert(std::make_pair("http://www.reddit.com", reddit));
- test_url_data_.insert(std::make_pair("http://www.yahoo.com", yahoo));
-
- PrefetchData empty_host_data(PREFETCH_KEY_TYPE_HOST, std::string());
- tables_->UpdateData(google, empty_host_data);
- tables_->UpdateData(reddit, empty_host_data);
- tables_->UpdateData(yahoo, empty_host_data);
- }
-
- { // Host data.
- PrefetchData facebook(PREFETCH_KEY_TYPE_HOST, "www.facebook.com");
- facebook.last_visit = base::Time::FromInternalValue(4);
- facebook.resources
- .push_back(ResourceRow(std::string(),
- "http://www.facebook.com/style.css",
- ResourceType::STYLESHEET,
- 5,
- 2,
- 1,
- 1.1));
- facebook.resources
- .push_back(ResourceRow(std::string(),
- "http://www.facebook.com/script.js",
- ResourceType::SCRIPT,
- 4,
- 0,
- 1,
- 2.1));
- facebook.resources
- .push_back(ResourceRow(std::string(),
- "http://www.facebook.com/image.png",
- ResourceType::IMAGE,
- 6,
- 3,
- 0,
- 2.2));
- facebook.resources.push_back(ResourceRow(std::string(),
- "http://www.facebook.com/a.font",
- ResourceType::LAST_TYPE,
- 2,
- 0,
- 0,
- 5.1));
- facebook.resources
- .push_back(ResourceRow(std::string(),
- "http://www.resources.facebook.com/script.js",
- ResourceType::SCRIPT,
- 11,
- 0,
- 0,
- 8.5));
-
- PrefetchData yahoo(PREFETCH_KEY_TYPE_HOST, "www.yahoo.com");
- yahoo.last_visit = base::Time::FromInternalValue(5);
- yahoo.resources.push_back(ResourceRow(std::string(),
- "http://www.google.com/image.png",
- ResourceType::IMAGE,
- 20,
- 1,
- 0,
- 10.0));
-
- test_host_data_.clear();
- test_host_data_.insert(std::make_pair("www.facebook.com", facebook));
- test_host_data_.insert(std::make_pair("www.yahoo.com", yahoo));
-
- PrefetchData empty_url_data(PREFETCH_KEY_TYPE_URL, std::string());
- tables_->UpdateData(empty_url_data, facebook);
- tables_->UpdateData(empty_url_data, yahoo);
- }
-}
-
-// Test cases.
-
-TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) {
- TestGetAllData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesTest, UpdateData) {
- TestUpdateData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesTest, DeleteData) {
- TestDeleteData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesTest, DeleteSingleDataPoint) {
- TestDeleteSingleDataPoint();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesTest, DeleteAllData) {
- TestDeleteAllData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesReopenTest, GetAllData) {
- TestGetAllData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesReopenTest, UpdateData) {
- TestUpdateData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteData) {
- TestDeleteData();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) {
- TestDeleteSingleDataPoint();
-}
-
-TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) {
- TestDeleteAllData();
-}
-
-} // namespace predictors

Powered by Google App Engine
This is Rietveld 408576698