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

Side by Side Diff: chrome/renderer/prerender/prerender_dispatcher_unittest.cc

Issue 15027009: Broadcast prerender URLs to all render processes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More unit tests Created 7 years, 7 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/renderer/prerender/prerender_dispatcher.h" 5 #include "chrome/renderer/prerender/prerender_dispatcher.h"
6 6
7 #include <map> 7 #include <map>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 27 matching lines...) Expand all
38 38
39 const std::map<int, WebPrerender>& prerenders() const { 39 const std::map<int, WebPrerender>& prerenders() const {
40 return prerender_dispatcher_.prerenders_; 40 return prerender_dispatcher_.prerenders_;
41 } 41 }
42 42
43 int StartPrerender(const GURL& url) { 43 int StartPrerender(const GURL& url) {
44 DCHECK_EQ(0u, prerender_dispatcher_.prerenders_.count(g_next_prerender_id)); 44 DCHECK_EQ(0u, prerender_dispatcher_.prerenders_.count(g_next_prerender_id));
45 prerender_dispatcher_.prerenders_[g_next_prerender_id] = WebPrerender(); 45 prerender_dispatcher_.prerenders_[g_next_prerender_id] = WebPrerender();
46 46
47 prerender_dispatcher_.OnPrerenderStart(g_next_prerender_id); 47 prerender_dispatcher_.OnPrerenderStart(g_next_prerender_id);
48 prerender_dispatcher_.OnPrerenderAddAlias(g_next_prerender_id, url); 48 prerender_dispatcher_.OnPrerenderAddAlias(url);
49 return g_next_prerender_id++; 49 return g_next_prerender_id++;
50 } 50 }
51 51
52 void AddAliasToPrerender(int prerender_id, const GURL& url) { 52 void AddAliasToPrerender(const GURL& url) {
53 prerender_dispatcher_.OnPrerenderAddAlias(prerender_id, url); 53 prerender_dispatcher_.OnPrerenderAddAlias(url);
54 }
55
56 void RemoveAliasFromPrerender(const GURL& url) {
57 std::vector<GURL> urls;
58 urls.push_back(url);
59 prerender_dispatcher_.OnPrerenderRemoveAliases(urls);
54 } 60 }
55 61
56 void StopPrerender(int prerender_id) { 62 void StopPrerender(int prerender_id) {
57 prerender_dispatcher_.OnPrerenderStop(prerender_id); 63 prerender_dispatcher_.OnPrerenderStop(prerender_id);
58 } 64 }
59 65
60 int GetCountForURL(const GURL& url) const { 66 int GetCountForURL(const GURL& url) const {
61 return prerender_dispatcher_.running_prerender_urls_.count(url); 67 return prerender_dispatcher_.running_prerender_urls_.count(url);
62 } 68 }
63 69
(...skipping 13 matching lines...) Expand all
77 EXPECT_TRUE(IsPrerenderURL(foo_url)); 83 EXPECT_TRUE(IsPrerenderURL(foo_url));
78 EXPECT_EQ(1, GetCountForURL(foo_url)); 84 EXPECT_EQ(1, GetCountForURL(foo_url));
79 } 85 }
80 86
81 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherMultipleAdd) { 87 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherMultipleAdd) {
82 GURL foo_url = GURL("http://foo.com"); 88 GURL foo_url = GURL("http://foo.com");
83 GURL bar_url = GURL("http://bar.com"); 89 GURL bar_url = GURL("http://bar.com");
84 90
85 EXPECT_FALSE(IsPrerenderURL(foo_url)); 91 EXPECT_FALSE(IsPrerenderURL(foo_url));
86 EXPECT_FALSE(IsPrerenderURL(bar_url)); 92 EXPECT_FALSE(IsPrerenderURL(bar_url));
87 int foo_id = StartPrerender(foo_url); 93 StartPrerender(foo_url);
88 EXPECT_TRUE(IsPrerenderURL(foo_url)); 94 EXPECT_TRUE(IsPrerenderURL(foo_url));
89 EXPECT_FALSE(IsPrerenderURL(bar_url)); 95 EXPECT_FALSE(IsPrerenderURL(bar_url));
90 96
91 AddAliasToPrerender(foo_id, foo_url); 97 AddAliasToPrerender(foo_url);
92 EXPECT_TRUE(IsPrerenderURL(foo_url)); 98 EXPECT_TRUE(IsPrerenderURL(foo_url));
93 EXPECT_FALSE(IsPrerenderURL(bar_url)); 99 EXPECT_FALSE(IsPrerenderURL(bar_url));
94 EXPECT_EQ(2, GetCountForURL(foo_url)); 100 EXPECT_EQ(2, GetCountForURL(foo_url));
95 101
96 StartPrerender(bar_url); 102 StartPrerender(bar_url);
97 EXPECT_TRUE(IsPrerenderURL(foo_url)); 103 EXPECT_TRUE(IsPrerenderURL(foo_url));
98 EXPECT_TRUE(IsPrerenderURL(bar_url)); 104 EXPECT_TRUE(IsPrerenderURL(bar_url));
99 EXPECT_EQ(2, GetCountForURL(foo_url)); 105 EXPECT_EQ(2, GetCountForURL(foo_url));
100 EXPECT_EQ(1, GetCountForURL(bar_url)); 106 EXPECT_EQ(1, GetCountForURL(bar_url));
101 } 107 }
102 108
103 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherSingleRemove) { 109 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherSingleRemove) {
104 GURL foo_url = GURL("http://foo.com"); 110 GURL foo_url = GURL("http://foo.com");
105 EXPECT_FALSE(IsPrerenderURL(foo_url)); 111 EXPECT_FALSE(IsPrerenderURL(foo_url));
106 int foo_id = StartPrerender(foo_url); 112 int foo_id = StartPrerender(foo_url);
107 EXPECT_TRUE(IsPrerenderURL(foo_url)); 113 EXPECT_TRUE(IsPrerenderURL(foo_url));
108 StopPrerender(foo_id); 114 StopPrerender(foo_id);
115 EXPECT_TRUE(IsPrerenderURL(foo_url));
116 EXPECT_EQ(1, GetCountForURL(foo_url));
117 RemoveAliasFromPrerender(foo_url);
109 EXPECT_FALSE(IsPrerenderURL(foo_url)); 118 EXPECT_FALSE(IsPrerenderURL(foo_url));
110 EXPECT_EQ(0, GetCountForURL(foo_url)); 119 EXPECT_EQ(0, GetCountForURL(foo_url));
111 } 120 }
121
122 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherTooManyRemoves) {
123 GURL foo_url = GURL("http://foo.com");
124 EXPECT_FALSE(IsPrerenderURL(foo_url));
125 int foo_id = StartPrerender(foo_url);
126 EXPECT_TRUE(IsPrerenderURL(foo_url));
127 StopPrerender(foo_id);
128 EXPECT_TRUE(IsPrerenderURL(foo_url));
129 EXPECT_EQ(1, GetCountForURL(foo_url));
130 RemoveAliasFromPrerender(foo_url);
131 EXPECT_FALSE(IsPrerenderURL(foo_url));
132 EXPECT_EQ(0, GetCountForURL(foo_url));
133 RemoveAliasFromPrerender(foo_url);
134 EXPECT_FALSE(IsPrerenderURL(foo_url));
135 EXPECT_EQ(0, GetCountForURL(foo_url));
136 }
137
138 TEST_F(PrerenderDispatcherTest, PrerenderDispatcherMultipleRemoves) {
139 GURL foo_url = GURL("http://foo.com");
140 EXPECT_FALSE(IsPrerenderURL(foo_url));
141 int foo_id = StartPrerender(foo_url);
142 EXPECT_TRUE(IsPrerenderURL(foo_url));
143 AddAliasToPrerender(foo_url);
144 StopPrerender(foo_id);
145 EXPECT_TRUE(IsPrerenderURL(foo_url));
146 EXPECT_EQ(2, GetCountForURL(foo_url));
147 RemoveAliasFromPrerender(foo_url);
148 EXPECT_TRUE(IsPrerenderURL(foo_url));
149 EXPECT_EQ(1, GetCountForURL(foo_url));
150 RemoveAliasFromPrerender(foo_url);
151 EXPECT_FALSE(IsPrerenderURL(foo_url));
152 EXPECT_EQ(0, GetCountForURL(foo_url));
153 }
112 154
113 } // end namespace prerender 155 } // end namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698