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

Side by Side Diff: chrome/browser/tab_contents/thumbnail_generator_unittest.cc

Issue 10349013: Prevent browser thumbnailer from trying to read from frontbuffer (surface texture) when none exists. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Providing implementations for the other platforms Created 8 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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
7 #include "chrome/browser/history/top_sites.h" 7 #include "chrome/browser/history/top_sites.h"
8 #include "chrome/browser/tab_contents/thumbnail_generator.h" 8 #include "chrome/browser/tab_contents/thumbnail_generator.h"
9 #include "chrome/common/render_messages.h" 9 #include "chrome/common/render_messages.h"
10 #include "chrome/test/base/testing_profile.h" 10 #include "chrome/test/base/testing_profile.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 const GURL kBadURL("chrome://newtab"); 184 const GURL kBadURL("chrome://newtab");
185 185
186 // Set up the profile. 186 // Set up the profile.
187 TestingProfile profile; 187 TestingProfile profile;
188 188
189 // Set up the top sites service. 189 // Set up the top sites service.
190 ScopedTempDir temp_dir; 190 ScopedTempDir temp_dir;
191 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 191 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
192 scoped_refptr<MockTopSites> top_sites(new MockTopSites(&profile)); 192 scoped_refptr<MockTopSites> top_sites(new MockTopSites(&profile));
193 193
194 // Should be false when we don't have a surface
195 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
196 &profile, top_sites.get(), kBadURL, false));
197
194 // Should be false because it's a bad URL. 198 // Should be false because it's a bad URL.
195 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail( 199 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
196 &profile, top_sites.get(), kBadURL)); 200 &profile, top_sites.get(), kBadURL, true));
197 201
198 // Should be true, as it's a good URL. 202 // Should be true, as it's a good URL.
199 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail( 203 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail(
200 &profile, top_sites.get(), kGoodURL)); 204 &profile, top_sites.get(), kGoodURL, true));
201 205
202 // Should be false, if it's in the incognito mode. 206 // Should be false, if it's in the incognito mode.
203 profile.set_incognito(true); 207 profile.set_incognito(true);
204 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail( 208 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
205 &profile, top_sites.get(), kGoodURL)); 209 &profile, top_sites.get(), kGoodURL, true));
206 210
207 // Should be true again, once turning off the incognito mode. 211 // Should be true again, once turning off the incognito mode.
208 profile.set_incognito(false); 212 profile.set_incognito(false);
209 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail( 213 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail(
210 &profile, top_sites.get(), kGoodURL)); 214 &profile, top_sites.get(), kGoodURL, true));
211 215
212 // Add a known URL. This makes the top sites data full. 216 // Add a known URL. This makes the top sites data full.
213 ThumbnailScore bad_score; 217 ThumbnailScore bad_score;
214 bad_score.time_at_snapshot = base::Time::UnixEpoch(); // Ancient time stamp. 218 bad_score.time_at_snapshot = base::Time::UnixEpoch(); // Ancient time stamp.
215 top_sites->AddKnownURL(kGoodURL, bad_score); 219 top_sites->AddKnownURL(kGoodURL, bad_score);
216 ASSERT_TRUE(top_sites->IsFull()); 220 ASSERT_TRUE(top_sites->IsFull());
217 221
218 // Should be false, as the top sites data is full, and the new URL is 222 // Should be false, as the top sites data is full, and the new URL is
219 // not known. 223 // not known.
220 const GURL kAnotherGoodURL("http://www.youtube.com/"); 224 const GURL kAnotherGoodURL("http://www.youtube.com/");
221 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail( 225 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
222 &profile, top_sites.get(), kAnotherGoodURL)); 226 &profile, top_sites.get(), kAnotherGoodURL, true));
223 227
224 // Should be true, as the existing thumbnail is bad (i.e need a better one). 228 // Should be true, as the existing thumbnail is bad (i.e need a better one).
225 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail( 229 EXPECT_TRUE(ThumbnailGenerator::ShouldUpdateThumbnail(
226 &profile, top_sites.get(), kGoodURL)); 230 &profile, top_sites.get(), kGoodURL, true));
227 231
228 // Replace the thumbnail score with a really good one. 232 // Replace the thumbnail score with a really good one.
229 ThumbnailScore good_score; 233 ThumbnailScore good_score;
230 good_score.time_at_snapshot = base::Time::Now(); // Very new. 234 good_score.time_at_snapshot = base::Time::Now(); // Very new.
231 good_score.at_top = true; 235 good_score.at_top = true;
232 good_score.good_clipping = true; 236 good_score.good_clipping = true;
233 good_score.boring_score = 0.0; 237 good_score.boring_score = 0.0;
234 good_score.load_completed = true; 238 good_score.load_completed = true;
235 top_sites->AddKnownURL(kGoodURL, good_score); 239 top_sites->AddKnownURL(kGoodURL, good_score);
236 240
237 // Should be false, as the existing thumbnail is good enough (i.e. don't 241 // Should be false, as the existing thumbnail is good enough (i.e. don't
238 // need to replace the existing thumbnail which is new and good). 242 // need to replace the existing thumbnail which is new and good).
239 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail( 243 EXPECT_FALSE(ThumbnailGenerator::ShouldUpdateThumbnail(
240 &profile, top_sites.get(), kGoodURL)); 244 &profile, top_sites.get(), kGoodURL, true));
241 } 245 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698