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

Side by Side Diff: chrome/browser/autocomplete/shortcuts_provider_unittest.cc

Issue 22354006: Omnibox: Convert Shortcuts Scoring Field Trial to Omnibox Bundled Field Trial (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/autocomplete/shortcuts_provider.h" 5 #include "chrome/browser/autocomplete/shortcuts_provider.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <functional> 10 #include <functional>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <vector> 13 #include <vector>
14 14
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
17 #include "base/prefs/pref_service.h" 17 #include "base/prefs/pref_service.h"
18 #include "base/strings/stringprintf.h" 18 #include "base/strings/stringprintf.h"
19 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
20 #include "chrome/browser/autocomplete/autocomplete_input.h" 20 #include "chrome/browser/autocomplete/autocomplete_input.h"
21 #include "chrome/browser/autocomplete/autocomplete_match.h" 21 #include "chrome/browser/autocomplete/autocomplete_match.h"
22 #include "chrome/browser/autocomplete/autocomplete_provider.h" 22 #include "chrome/browser/autocomplete/autocomplete_provider.h"
23 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" 23 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h"
24 #include "chrome/browser/autocomplete/autocomplete_result.h"
24 #include "chrome/browser/history/history_service.h" 25 #include "chrome/browser/history/history_service.h"
25 #include "chrome/browser/history/in_memory_url_index.h" 26 #include "chrome/browser/history/in_memory_url_index.h"
26 #include "chrome/browser/history/shortcuts_backend.h" 27 #include "chrome/browser/history/shortcuts_backend.h"
27 #include "chrome/browser/history/shortcuts_backend_factory.h" 28 #include "chrome/browser/history/shortcuts_backend_factory.h"
28 #include "chrome/browser/history/url_database.h" 29 #include "chrome/browser/history/url_database.h"
29 #include "chrome/common/pref_names.h" 30 #include "chrome/common/pref_names.h"
30 #include "chrome/test/base/testing_profile.h" 31 #include "chrome/test/base/testing_profile.h"
31 #include "content/public/test/test_browser_thread.h" 32 #include "content/public/test/test_browser_thread.h"
32 #include "testing/gtest/include/gtest/gtest.h" 33 #include "testing/gtest/include/gtest/gtest.h"
33 34
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 spans_description.push_back( 568 spans_description.push_back(
568 ACMatchClassification(0, ACMatchClassification::NONE)); 569 ACMatchClassification(0, ACMatchClassification::NONE));
569 spans_description.push_back( 570 spans_description.push_back(
570 ACMatchClassification(2, ACMatchClassification::MATCH)); 571 ACMatchClassification(2, ACMatchClassification::MATCH));
571 ShortcutsBackend::Shortcut shortcut(std::string(), 572 ShortcutsBackend::Shortcut shortcut(std::string(),
572 ASCIIToUTF16("test"), GURL("http://www.test.com"), 573 ASCIIToUTF16("test"), GURL("http://www.test.com"),
573 ASCIIToUTF16("www.test.com"), spans_content, ASCIIToUTF16("A test"), 574 ASCIIToUTF16("www.test.com"), spans_content, ASCIIToUTF16("A test"),
574 spans_description, base::Time::Now(), 1); 575 spans_description, base::Time::Now(), 1);
575 576
576 // Maximal score. 577 // Maximal score.
578 const int max_relevance = AutocompleteResult::kLowestDefaultScore - 1;
577 const int kMaxScore = provider_->CalculateScore( 579 const int kMaxScore = provider_->CalculateScore(
578 ASCIIToUTF16("test"), shortcut); 580 ASCIIToUTF16("test"), shortcut, max_relevance);
579 581
580 // Score decreases as percent of the match is decreased. 582 // Score decreases as percent of the match is decreased.
581 int score_three_quarters = 583 int score_three_quarters =
582 provider_->CalculateScore(ASCIIToUTF16("tes"), shortcut); 584 provider_->CalculateScore(ASCIIToUTF16("tes"), shortcut, max_relevance);
583 EXPECT_LT(score_three_quarters, kMaxScore); 585 EXPECT_LT(score_three_quarters, kMaxScore);
584 int score_one_half = 586 int score_one_half =
585 provider_->CalculateScore(ASCIIToUTF16("te"), shortcut); 587 provider_->CalculateScore(ASCIIToUTF16("te"), shortcut, max_relevance);
586 EXPECT_LT(score_one_half, score_three_quarters); 588 EXPECT_LT(score_one_half, score_three_quarters);
587 int score_one_quarter = 589 int score_one_quarter =
588 provider_->CalculateScore(ASCIIToUTF16("t"), shortcut); 590 provider_->CalculateScore(ASCIIToUTF16("t"), shortcut, max_relevance);
589 EXPECT_LT(score_one_quarter, score_one_half); 591 EXPECT_LT(score_one_quarter, score_one_half);
590 592
591 // Should decay with time - one week. 593 // Should decay with time - one week.
592 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(7); 594 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(7);
593 int score_week_old = 595 int score_week_old =
594 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); 596 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut, max_relevance);
595 EXPECT_LT(score_week_old, kMaxScore); 597 EXPECT_LT(score_week_old, kMaxScore);
596 598
597 // Should decay more in two weeks. 599 // Should decay more in two weeks.
598 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); 600 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
599 int score_two_weeks_old = 601 int score_two_weeks_old =
600 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); 602 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut, max_relevance);
601 EXPECT_LT(score_two_weeks_old, score_week_old); 603 EXPECT_LT(score_two_weeks_old, score_week_old);
602 604
603 // But not if it was activly clicked on. 2 hits slow decaying power. 605 // But not if it was activly clicked on. 2 hits slow decaying power.
604 shortcut.number_of_hits = 2; 606 shortcut.number_of_hits = 2;
605 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); 607 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
606 int score_popular_two_weeks_old = 608 int score_popular_two_weeks_old =
607 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); 609 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut, max_relevance);
608 EXPECT_LT(score_two_weeks_old, score_popular_two_weeks_old); 610 EXPECT_LT(score_two_weeks_old, score_popular_two_weeks_old);
609 // But still decayed. 611 // But still decayed.
610 EXPECT_LT(score_popular_two_weeks_old, kMaxScore); 612 EXPECT_LT(score_popular_two_weeks_old, kMaxScore);
611 613
612 // 3 hits slow decaying power even more. 614 // 3 hits slow decaying power even more.
613 shortcut.number_of_hits = 3; 615 shortcut.number_of_hits = 3;
614 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); 616 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14);
615 int score_more_popular_two_weeks_old = 617 int score_more_popular_two_weeks_old =
616 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); 618 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut, max_relevance);
617 EXPECT_LT(score_two_weeks_old, score_more_popular_two_weeks_old); 619 EXPECT_LT(score_two_weeks_old, score_more_popular_two_weeks_old);
618 EXPECT_LT(score_popular_two_weeks_old, score_more_popular_two_weeks_old); 620 EXPECT_LT(score_popular_two_weeks_old, score_more_popular_two_weeks_old);
619 // But still decayed. 621 // But still decayed.
620 EXPECT_LT(score_more_popular_two_weeks_old, kMaxScore); 622 EXPECT_LT(score_more_popular_two_weeks_old, kMaxScore);
621 } 623 }
622 624
623 TEST_F(ShortcutsProviderTest, DeleteMatch) { 625 TEST_F(ShortcutsProviderTest, DeleteMatch) {
624 TestShortcutInfo shortcuts_to_test_delete[3] = { 626 TestShortcutInfo shortcuts_to_test_delete[3] = {
625 { "BD85DBA2-8C29-49F9-84AE-48E1E90880F1", 627 { "BD85DBA2-8C29-49F9-84AE-48E1E90880F1",
626 "http://www.deletetest.com/1.html", "delete", 628 "http://www.deletetest.com/1.html", "delete",
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 667
666 match.destination_url = GURL(shortcuts_to_test_delete[2].url); 668 match.destination_url = GURL(shortcuts_to_test_delete[2].url);
667 match.contents = ASCIIToUTF16(shortcuts_to_test_delete[2].contents); 669 match.contents = ASCIIToUTF16(shortcuts_to_test_delete[2].contents);
668 match.description = ASCIIToUTF16(shortcuts_to_test_delete[2].description); 670 match.description = ASCIIToUTF16(shortcuts_to_test_delete[2].description);
669 671
670 provider_->DeleteMatch(match); 672 provider_->DeleteMatch(match);
671 EXPECT_EQ(original_shortcuts_count, backend_->shortcuts_map().size()); 673 EXPECT_EQ(original_shortcuts_count, backend_->shortcuts_map().size());
672 EXPECT_TRUE(backend_->shortcuts_map().end() == 674 EXPECT_TRUE(backend_->shortcuts_map().end() ==
673 backend_->shortcuts_map().find(ASCIIToUTF16("delete"))); 675 backend_->shortcuts_map().find(ASCIIToUTF16("delete")));
674 } 676 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/shortcuts_provider.cc ('k') | chrome/browser/omnibox/omnibox_field_trial.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698