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 |