| 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 "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> |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 spans_description.push_back( | 566 spans_description.push_back( |
| 567 ACMatchClassification(0, ACMatchClassification::NONE)); | 567 ACMatchClassification(0, ACMatchClassification::NONE)); |
| 568 spans_description.push_back( | 568 spans_description.push_back( |
| 569 ACMatchClassification(2, ACMatchClassification::MATCH)); | 569 ACMatchClassification(2, ACMatchClassification::MATCH)); |
| 570 ShortcutsBackend::Shortcut shortcut(std::string(), | 570 ShortcutsBackend::Shortcut shortcut(std::string(), |
| 571 ASCIIToUTF16("test"), GURL("http://www.test.com"), | 571 ASCIIToUTF16("test"), GURL("http://www.test.com"), |
| 572 ASCIIToUTF16("www.test.com"), spans_content, ASCIIToUTF16("A test"), | 572 ASCIIToUTF16("www.test.com"), spans_content, ASCIIToUTF16("A test"), |
| 573 spans_description, base::Time::Now(), 1); | 573 spans_description, base::Time::Now(), 1); |
| 574 | 574 |
| 575 // Maximal score. | 575 // Maximal score. |
| 576 const int kMaxScore = ShortcutsProvider::CalculateScore( | 576 const int kMaxScore = provider_->CalculateScore( |
| 577 ASCIIToUTF16("test"), shortcut); | 577 ASCIIToUTF16("test"), shortcut); |
| 578 | 578 |
| 579 // Score decreases as percent of the match is decreased. | 579 // Score decreases as percent of the match is decreased. |
| 580 int score_three_quarters = | 580 int score_three_quarters = |
| 581 ShortcutsProvider::CalculateScore(ASCIIToUTF16("tes"), shortcut); | 581 provider_->CalculateScore(ASCIIToUTF16("tes"), shortcut); |
| 582 EXPECT_LT(score_three_quarters, kMaxScore); | 582 EXPECT_LT(score_three_quarters, kMaxScore); |
| 583 int score_one_half = | 583 int score_one_half = |
| 584 ShortcutsProvider::CalculateScore(ASCIIToUTF16("te"), shortcut); | 584 provider_->CalculateScore(ASCIIToUTF16("te"), shortcut); |
| 585 EXPECT_LT(score_one_half, score_three_quarters); | 585 EXPECT_LT(score_one_half, score_three_quarters); |
| 586 int score_one_quarter = | 586 int score_one_quarter = |
| 587 ShortcutsProvider::CalculateScore(ASCIIToUTF16("t"), shortcut); | 587 provider_->CalculateScore(ASCIIToUTF16("t"), shortcut); |
| 588 EXPECT_LT(score_one_quarter, score_one_half); | 588 EXPECT_LT(score_one_quarter, score_one_half); |
| 589 | 589 |
| 590 // Should decay with time - one week. | 590 // Should decay with time - one week. |
| 591 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(7); | 591 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(7); |
| 592 int score_week_old = | 592 int score_week_old = |
| 593 ShortcutsProvider::CalculateScore(ASCIIToUTF16("test"), shortcut); | 593 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); |
| 594 EXPECT_LT(score_week_old, kMaxScore); | 594 EXPECT_LT(score_week_old, kMaxScore); |
| 595 | 595 |
| 596 // Should decay more in two weeks. | 596 // Should decay more in two weeks. |
| 597 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); | 597 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); |
| 598 int score_two_weeks_old = | 598 int score_two_weeks_old = |
| 599 ShortcutsProvider::CalculateScore(ASCIIToUTF16("test"), shortcut); | 599 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); |
| 600 EXPECT_LT(score_two_weeks_old, score_week_old); | 600 EXPECT_LT(score_two_weeks_old, score_week_old); |
| 601 | 601 |
| 602 // But not if it was activly clicked on. 2 hits slow decaying power. | 602 // But not if it was activly clicked on. 2 hits slow decaying power. |
| 603 shortcut.number_of_hits = 2; | 603 shortcut.number_of_hits = 2; |
| 604 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); | 604 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); |
| 605 int score_popular_two_weeks_old = | 605 int score_popular_two_weeks_old = |
| 606 ShortcutsProvider::CalculateScore(ASCIIToUTF16("test"), shortcut); | 606 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); |
| 607 EXPECT_LT(score_two_weeks_old, score_popular_two_weeks_old); | 607 EXPECT_LT(score_two_weeks_old, score_popular_two_weeks_old); |
| 608 // But still decayed. | 608 // But still decayed. |
| 609 EXPECT_LT(score_popular_two_weeks_old, kMaxScore); | 609 EXPECT_LT(score_popular_two_weeks_old, kMaxScore); |
| 610 | 610 |
| 611 // 3 hits slow decaying power even more. | 611 // 3 hits slow decaying power even more. |
| 612 shortcut.number_of_hits = 3; | 612 shortcut.number_of_hits = 3; |
| 613 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); | 613 shortcut.last_access_time = base::Time::Now() - base::TimeDelta::FromDays(14); |
| 614 int score_more_popular_two_weeks_old = | 614 int score_more_popular_two_weeks_old = |
| 615 ShortcutsProvider::CalculateScore(ASCIIToUTF16("test"), shortcut); | 615 provider_->CalculateScore(ASCIIToUTF16("test"), shortcut); |
| 616 EXPECT_LT(score_two_weeks_old, score_more_popular_two_weeks_old); | 616 EXPECT_LT(score_two_weeks_old, score_more_popular_two_weeks_old); |
| 617 EXPECT_LT(score_popular_two_weeks_old, score_more_popular_two_weeks_old); | 617 EXPECT_LT(score_popular_two_weeks_old, score_more_popular_two_weeks_old); |
| 618 // But still decayed. | 618 // But still decayed. |
| 619 EXPECT_LT(score_more_popular_two_weeks_old, kMaxScore); | 619 EXPECT_LT(score_more_popular_two_weeks_old, kMaxScore); |
| 620 } | 620 } |
| 621 | 621 |
| 622 TEST_F(ShortcutsProviderTest, DeleteMatch) { | 622 TEST_F(ShortcutsProviderTest, DeleteMatch) { |
| 623 TestShortcutInfo shortcuts_to_test_delete[3] = { | 623 TestShortcutInfo shortcuts_to_test_delete[3] = { |
| 624 { "BD85DBA2-8C29-49F9-84AE-48E1E90880F1", | 624 { "BD85DBA2-8C29-49F9-84AE-48E1E90880F1", |
| 625 "http://www.deletetest.com/1.html", "delete", | 625 "http://www.deletetest.com/1.html", "delete", |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 | 664 |
| 665 match.destination_url = GURL(shortcuts_to_test_delete[2].url); | 665 match.destination_url = GURL(shortcuts_to_test_delete[2].url); |
| 666 match.contents = ASCIIToUTF16(shortcuts_to_test_delete[2].contents); | 666 match.contents = ASCIIToUTF16(shortcuts_to_test_delete[2].contents); |
| 667 match.description = ASCIIToUTF16(shortcuts_to_test_delete[2].description); | 667 match.description = ASCIIToUTF16(shortcuts_to_test_delete[2].description); |
| 668 | 668 |
| 669 provider_->DeleteMatch(match); | 669 provider_->DeleteMatch(match); |
| 670 EXPECT_EQ(original_shortcuts_count, backend_->shortcuts_map().size()); | 670 EXPECT_EQ(original_shortcuts_count, backend_->shortcuts_map().size()); |
| 671 EXPECT_TRUE(backend_->shortcuts_map().end() == | 671 EXPECT_TRUE(backend_->shortcuts_map().end() == |
| 672 backend_->shortcuts_map().find(ASCIIToUTF16("delete"))); | 672 backend_->shortcuts_map().find(ASCIIToUTF16("delete"))); |
| 673 } | 673 } |
| OLD | NEW |