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

Side by Side Diff: chrome/browser/prerender/prerender_manager_unittest.cc

Issue 7289020: Updating histograms to allow for experiments & log origin-based histograms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "base/time.h" 6 #include "base/time.h"
7 #include "chrome/browser/prerender/prerender_contents.h" 7 #include "chrome/browser/prerender/prerender_contents.h"
8 #include "chrome/browser/prerender/prerender_manager.h" 8 #include "chrome/browser/prerender/prerender_manager.h"
9 #include "chrome/browser/prerender/prerender_origin.h" 9 #include "chrome/browser/prerender/prerender_origin.h"
10 #include "chrome/test/testing_browser_process.h" 10 #include "chrome/test/testing_browser_process.h"
11 #include "content/browser/browser_thread.h" 11 #include "content/browser/browser_thread.h"
12 #include "content/browser/renderer_host/render_view_host.h" 12 #include "content/browser/renderer_host/render_view_host.h"
13 #include "content/browser/renderer_host/render_process_host.h" 13 #include "content/browser/renderer_host/render_process_host.h"
14 #include "googleurl/src/gurl.h" 14 #include "googleurl/src/gurl.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace prerender { 17 namespace prerender {
18 18
19 namespace { 19 namespace {
20 20
21 class DummyPrerenderContents : public PrerenderContents { 21 class DummyPrerenderContents : public PrerenderContents {
22 public: 22 public:
23 DummyPrerenderContents(PrerenderManager* prerender_manager, 23 DummyPrerenderContents(PrerenderManager* prerender_manager,
24 PrerenderTracker* prerender_tracker, 24 PrerenderTracker* prerender_tracker,
25 const GURL& url, 25 const GURL& url,
26 FinalStatus expected_final_status) 26 FinalStatus expected_final_status)
27 : PrerenderContents(prerender_manager, prerender_tracker, NULL, url, 27 : PrerenderContents(prerender_manager, prerender_tracker, NULL, url,
28 GURL(), ORIGIN_LINK_REL_PRERENDER), 28 GURL(), ORIGIN_LINK_REL_PRERENDER,
29 PrerenderManager::kNoExperiment),
29 has_started_(false), 30 has_started_(false),
30 expected_final_status_(expected_final_status) { 31 expected_final_status_(expected_final_status) {
31 } 32 }
32 33
33 virtual ~DummyPrerenderContents() { 34 virtual ~DummyPrerenderContents() {
34 EXPECT_EQ(expected_final_status_, final_status()); 35 EXPECT_EQ(expected_final_status_, final_status());
35 } 36 }
36 37
37 virtual void StartPrerendering( 38 virtual void StartPrerendering(
38 const RenderViewHost* source_render_view_host) OVERRIDE { 39 const RenderViewHost* source_render_view_host) OVERRIDE {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 return time_; 149 return time_;
149 } 150 }
150 151
151 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE { 152 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
152 return time_ticks_; 153 return time_ticks_;
153 } 154 }
154 155
155 virtual PrerenderContents* CreatePrerenderContents( 156 virtual PrerenderContents* CreatePrerenderContents(
156 const GURL& url, 157 const GURL& url,
157 const GURL& referrer, 158 const GURL& referrer,
158 Origin origin) OVERRIDE { 159 Origin origin,
160 uint8 experiment_id) OVERRIDE {
159 DCHECK(next_prerender_contents_.get()); 161 DCHECK(next_prerender_contents_.get());
160 return next_prerender_contents_.release(); 162 return next_prerender_contents_.release();
161 } 163 }
162 164
163 base::Time time_; 165 base::Time time_;
164 base::TimeTicks time_ticks_; 166 base::TimeTicks time_ticks_;
165 scoped_ptr<PrerenderContents> next_prerender_contents_; 167 scoped_ptr<PrerenderContents> next_prerender_contents_;
166 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED, 168 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED,
167 // tracked so they will be automatically deleted. 169 // tracked so they will be automatically deleted.
168 ScopedVector<PrerenderContents> used_prerender_contents_; 170 ScopedVector<PrerenderContents> used_prerender_contents_;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 429
428 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 430 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender(
429 child_id, route_id, 431 child_id, route_id,
430 pending_url, url)); 432 pending_url, url));
431 433
432 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); 434 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url));
433 EXPECT_TRUE(prerender_contents->has_started()); 435 EXPECT_TRUE(prerender_contents->has_started());
434 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 436 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
435 } 437 }
436 438
437 // Ensure that extracting a urlencoded URL in the url= query string component
438 // works.
439 TEST_F(PrerenderManagerTest, ExtractURLInQueryStringTest) {
440 GURL result;
441 EXPECT_TRUE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
442 GURL("http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBcQFjAA&url=htt p%3A%2F%2Fwww.abercrombie.com%2Fwebapp%2Fwcs%2Fstores%2Fservlet%2FStoreLocator%3 FcatalogId%3D%26storeId%3D10051%26langId%3D-1&rct=j&q=allinurl%3A%26&ei=KLyUTYGS EdTWiAKUmLCdCQ&usg=AFQjCNF8nJ2MpBFfr1ijO39_f22bcKyccw&sig2=2ymyGpO0unJwU1d4kdCUj Q"),
443 &result));
444 ASSERT_EQ(GURL("http://www.abercrombie.com/webapp/wcs/stores/servlet/StoreLoca tor?catalogId=&storeId=10051&langId=-1").spec(), result.spec());
445 EXPECT_FALSE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
446 GURL("http://www.google.com/url?sadf=test&blah=blahblahblah"), &result));
447 EXPECT_FALSE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
448 GURL("http://www.google.com/?url=INVALIDurlsAREsoMUCHfun.com"), &result));
449 EXPECT_TRUE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
450 GURL("http://www.google.com/?url=http://validURLSareGREAT.com"),
451 &result));
452 ASSERT_EQ(GURL("http://validURLSareGREAT.com").spec(), result.spec());
453 }
454
455 // Tests that a PrerenderManager created for a browser session in the control 439 // Tests that a PrerenderManager created for a browser session in the control
456 // group will not be able to override FINAL_STATUS_CONTROL_GROUP. 440 // group will not be able to override FINAL_STATUS_CONTROL_GROUP.
457 TEST_F(PrerenderManagerTest, ControlGroup) { 441 TEST_F(PrerenderManagerTest, ControlGroup) {
458 RestorePrerenderMode restore_prerender_mode; 442 RestorePrerenderMode restore_prerender_mode;
459 PrerenderManager::SetMode( 443 PrerenderManager::SetMode(
460 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 444 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
461 GURL url("http://www.google.com/"); 445 GURL url("http://www.google.com/");
462 DummyPrerenderContents* prerender_contents = 446 DummyPrerenderContents* prerender_contents =
463 prerender_manager()->CreateNextPrerenderContents( 447 prerender_manager()->CreateNextPrerenderContents(
464 url, 448 url,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 url, 514 url,
531 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); 515 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED);
532 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); 516 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url));
533 EXPECT_TRUE(prerender_contents->has_started()); 517 EXPECT_TRUE(prerender_contents->has_started());
534 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); 518 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS);
535 DummyPrerenderContents* null = NULL; 519 DummyPrerenderContents* null = NULL;
536 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); 520 EXPECT_EQ(null, prerender_manager()->GetEntry(url));
537 } 521 }
538 522
539 } // namespace prerender 523 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698