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

Side by Side Diff: chrome/browser/history/history_backend_unittest.cc

Issue 10963018: Rework arguments of HistoryService::AddPage() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Windows compile Created 8 years, 3 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 <algorithm> 5 #include <algorithm>
6 #include <set> 6 #include <set>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 int page_id, 163 int page_id,
164 content::PageTransition transition, 164 content::PageTransition transition,
165 base::Time time) { 165 base::Time time) {
166 history::RedirectList redirects; 166 history::RedirectList redirects;
167 for (int i = 0; sequence[i] != NULL; ++i) 167 for (int i = 0; sequence[i] != NULL; ++i)
168 redirects.push_back(GURL(sequence[i])); 168 redirects.push_back(GURL(sequence[i]));
169 169
170 int int_scope = 1; 170 int int_scope = 1;
171 void* scope = 0; 171 void* scope = 0;
172 memcpy(&scope, &int_scope, sizeof(int_scope)); 172 memcpy(&scope, &int_scope, sizeof(int_scope));
173 scoped_refptr<history::HistoryAddPageArgs> request( 173 history::HistoryAddPageArgs request(
174 new history::HistoryAddPageArgs( 174 redirects.back(), time, scope, page_id, GURL(),
175 redirects.back(), time, scope, page_id, GURL(), 175 redirects, transition, history::SOURCE_BROWSED,
176 redirects, transition, history::SOURCE_BROWSED, 176 true);
177 true));
178 backend_->AddPage(request); 177 backend_->AddPage(request);
179 } 178 }
180 179
181 // Adds CLIENT_REDIRECT page transition. 180 // Adds CLIENT_REDIRECT page transition.
182 // |url1| is the source URL and |url2| is the destination. 181 // |url1| is the source URL and |url2| is the destination.
183 // |did_replace| is true if the transition is non-user initiated and the 182 // |did_replace| is true if the transition is non-user initiated and the
184 // navigation entry for |url2| has replaced that for |url1|. The possibly 183 // navigation entry for |url2| has replaced that for |url1|. The possibly
185 // updated transition code of the visit records for |url1| and |url2| is 184 // updated transition code of the visit records for |url1| and |url2| is
186 // returned by filling in |*transition1| and |*transition2|, respectively. 185 // returned by filling in |*transition1| and |*transition2|, respectively.
187 // |time| is a time of the redirect. 186 // |time| is a time of the redirect.
188 void AddClientRedirect(const GURL& url1, const GURL& url2, bool did_replace, 187 void AddClientRedirect(const GURL& url1, const GURL& url2, bool did_replace,
189 base::Time time, 188 base::Time time,
190 int* transition1, int* transition2) { 189 int* transition1, int* transition2) {
191 void* const dummy_scope = reinterpret_cast<void*>(0x87654321); 190 void* const dummy_scope = reinterpret_cast<void*>(0x87654321);
192 history::RedirectList redirects; 191 history::RedirectList redirects;
193 if (url1.is_valid()) 192 if (url1.is_valid())
194 redirects.push_back(url1); 193 redirects.push_back(url1);
195 if (url2.is_valid()) 194 if (url2.is_valid())
196 redirects.push_back(url2); 195 redirects.push_back(url2);
197 scoped_refptr<HistoryAddPageArgs> request( 196 HistoryAddPageArgs request(
198 new HistoryAddPageArgs(url2, time, dummy_scope, 0, url1, 197 url2, time, dummy_scope, 0, url1,
199 redirects, content::PAGE_TRANSITION_CLIENT_REDIRECT, 198 redirects, content::PAGE_TRANSITION_CLIENT_REDIRECT,
200 history::SOURCE_BROWSED, did_replace)); 199 history::SOURCE_BROWSED, did_replace);
201 backend_->AddPage(request); 200 backend_->AddPage(request);
202 201
203 *transition1 = getTransition(url1); 202 *transition1 = getTransition(url1);
204 *transition2 = getTransition(url2); 203 *transition2 = getTransition(url2);
205 } 204 }
206 205
207 int getTransition(const GURL& url) { 206 int getTransition(const GURL& url) {
208 if (!url.is_valid()) 207 if (!url.is_valid())
209 return 0; 208 return 0;
210 URLRow row; 209 URLRow row;
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 } 617 }
619 618
620 // Checks that adding a visit, then calling DeleteAll, and then trying to add 619 // Checks that adding a visit, then calling DeleteAll, and then trying to add
621 // data for the visited page works. This can happen when clearing the history 620 // data for the visited page works. This can happen when clearing the history
622 // immediately after visiting a page. 621 // immediately after visiting a page.
623 TEST_F(HistoryBackendTest, DeleteAllThenAddData) { 622 TEST_F(HistoryBackendTest, DeleteAllThenAddData) {
624 ASSERT_TRUE(backend_.get()); 623 ASSERT_TRUE(backend_.get());
625 624
626 Time visit_time = Time::Now(); 625 Time visit_time = Time::Now();
627 GURL url("http://www.google.com/"); 626 GURL url("http://www.google.com/");
628 scoped_refptr<HistoryAddPageArgs> request( 627 HistoryAddPageArgs request(url, visit_time, NULL, 0, GURL(),
629 new HistoryAddPageArgs(url, visit_time, NULL, 0, GURL(),
630 history::RedirectList(), 628 history::RedirectList(),
631 content::PAGE_TRANSITION_KEYWORD_GENERATED, 629 content::PAGE_TRANSITION_KEYWORD_GENERATED,
632 history::SOURCE_BROWSED, false)); 630 history::SOURCE_BROWSED, false);
633 backend_->AddPage(request); 631 backend_->AddPage(request);
634 632
635 // Check that a row was added. 633 // Check that a row was added.
636 URLRow outrow; 634 URLRow outrow;
637 EXPECT_TRUE(backend_->db_->GetRowForURL(url, &outrow)); 635 EXPECT_TRUE(backend_->db_->GetRowForURL(url, &outrow));
638 636
639 // Check that the visit was added. 637 // Check that the visit was added.
640 VisitVector all_visits; 638 VisitVector all_visits;
641 backend_->db_->GetAllVisitsInRange(Time(), Time(), 0, &all_visits); 639 backend_->db_->GetAllVisitsInRange(Time(), Time(), 0, &all_visits);
642 ASSERT_EQ(1U, all_visits.size()); 640 ASSERT_EQ(1U, all_visits.size());
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 } 774 }
777 775
778 // Tests a handful of assertions for a navigation with a type of 776 // Tests a handful of assertions for a navigation with a type of
779 // KEYWORD_GENERATED. 777 // KEYWORD_GENERATED.
780 TEST_F(HistoryBackendTest, KeywordGenerated) { 778 TEST_F(HistoryBackendTest, KeywordGenerated) {
781 ASSERT_TRUE(backend_.get()); 779 ASSERT_TRUE(backend_.get());
782 780
783 GURL url("http://google.com"); 781 GURL url("http://google.com");
784 782
785 Time visit_time = Time::Now() - base::TimeDelta::FromDays(1); 783 Time visit_time = Time::Now() - base::TimeDelta::FromDays(1);
786 scoped_refptr<HistoryAddPageArgs> request( 784 HistoryAddPageArgs request(url, visit_time, NULL, 0, GURL(),
787 new HistoryAddPageArgs(url, visit_time, NULL, 0, GURL(),
788 history::RedirectList(), 785 history::RedirectList(),
789 content::PAGE_TRANSITION_KEYWORD_GENERATED, 786 content::PAGE_TRANSITION_KEYWORD_GENERATED,
790 history::SOURCE_BROWSED, false)); 787 history::SOURCE_BROWSED, false);
791 backend_->AddPage(request); 788 backend_->AddPage(request);
792 789
793 // A row should have been added for the url. 790 // A row should have been added for the url.
794 URLRow row; 791 URLRow row;
795 URLID url_id = backend_->db()->GetRowForURL(url, &row); 792 URLID url_id = backend_->db()->GetRowForURL(url, &row);
796 ASSERT_NE(0, url_id); 793 ASSERT_NE(0, url_id);
797 794
798 // The typed count should be 1. 795 // The typed count should be 1.
799 ASSERT_EQ(1, row.typed_count()); 796 ASSERT_EQ(1, row.typed_count());
800 797
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 } 1001 }
1005 EXPECT_EQ(0x7, sources); 1002 EXPECT_EQ(0x7, sources);
1006 } 1003 }
1007 1004
1008 TEST_F(HistoryBackendTest, AddPageArgsSource) { 1005 TEST_F(HistoryBackendTest, AddPageArgsSource) {
1009 ASSERT_TRUE(backend_.get()); 1006 ASSERT_TRUE(backend_.get());
1010 1007
1011 GURL url("http://testpageargs.com"); 1008 GURL url("http://testpageargs.com");
1012 1009
1013 // Assume this page is browsed by user. 1010 // Assume this page is browsed by user.
1014 scoped_refptr<HistoryAddPageArgs> request1( 1011 HistoryAddPageArgs request1(url, base::Time::Now(), NULL, 0, GURL(),
1015 new HistoryAddPageArgs(url, base::Time::Now(), NULL, 0, GURL(),
1016 history::RedirectList(), 1012 history::RedirectList(),
1017 content::PAGE_TRANSITION_KEYWORD_GENERATED, 1013 content::PAGE_TRANSITION_KEYWORD_GENERATED,
1018 history::SOURCE_BROWSED, false)); 1014 history::SOURCE_BROWSED, false);
1019 backend_->AddPage(request1); 1015 backend_->AddPage(request1);
1020 // Assume this page is synced. 1016 // Assume this page is synced.
1021 scoped_refptr<HistoryAddPageArgs> request2( 1017 HistoryAddPageArgs request2(url, base::Time::Now(), NULL, 0, GURL(),
1022 new HistoryAddPageArgs(url, base::Time::Now(), NULL, 0, GURL(),
1023 history::RedirectList(), 1018 history::RedirectList(),
1024 content::PAGE_TRANSITION_LINK, 1019 content::PAGE_TRANSITION_LINK,
1025 history::SOURCE_SYNCED, false)); 1020 history::SOURCE_SYNCED, false);
1026 backend_->AddPage(request2); 1021 backend_->AddPage(request2);
1027 // Assume this page is browsed again. 1022 // Assume this page is browsed again.
1028 scoped_refptr<HistoryAddPageArgs> request3( 1023 HistoryAddPageArgs request3(url, base::Time::Now(), NULL, 0, GURL(),
1029 new HistoryAddPageArgs(url, base::Time::Now(), NULL, 0, GURL(),
1030 history::RedirectList(), 1024 history::RedirectList(),
1031 content::PAGE_TRANSITION_TYPED, 1025 content::PAGE_TRANSITION_TYPED,
1032 history::SOURCE_BROWSED, false)); 1026 history::SOURCE_BROWSED, false);
1033 backend_->AddPage(request3); 1027 backend_->AddPage(request3);
1034 1028
1035 // Three visits should be added with proper sources. 1029 // Three visits should be added with proper sources.
1036 VisitVector visits; 1030 VisitVector visits;
1037 URLRow row; 1031 URLRow row;
1038 URLID id = backend_->db()->GetRowForURL(url, &row); 1032 URLID id = backend_->db()->GetRowForURL(url, &row);
1039 ASSERT_TRUE(backend_->db()->GetVisitsForURL(id, &visits)); 1033 ASSERT_TRUE(backend_->db()->GetVisitsForURL(id, &visits));
1040 ASSERT_EQ(3U, visits.size()); 1034 ASSERT_EQ(3U, visits.size());
1041 VisitSourceMap visit_sources; 1035 VisitSourceMap visit_sources;
1042 ASSERT_TRUE(backend_->GetVisitsSource(visits, &visit_sources)); 1036 ASSERT_TRUE(backend_->GetVisitsSource(visits, &visit_sources));
(...skipping 1586 matching lines...) Expand 10 before | Expand all | Expand 10 after
2629 2623
2630 backend_->DeleteURL(url); 2624 backend_->DeleteURL(url);
2631 backend_->AddPageNoVisitForBookmark(url, string16()); 2625 backend_->AddPageNoVisitForBookmark(url, string16());
2632 backend_->GetURL(url, &row); 2626 backend_->GetURL(url, &row);
2633 EXPECT_EQ(url, row.url()); 2627 EXPECT_EQ(url, row.url());
2634 EXPECT_EQ(UTF8ToUTF16(url.spec()), row.title()); 2628 EXPECT_EQ(UTF8ToUTF16(url.spec()), row.title());
2635 EXPECT_EQ(0, row.visit_count()); 2629 EXPECT_EQ(0, row.visit_count());
2636 } 2630 }
2637 2631
2638 } // namespace history 2632 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/history_backend.cc ('k') | chrome/browser/history/history_extension_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698