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

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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 return time_; 151 return time_;
151 } 152 }
152 153
153 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE { 154 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
154 return time_ticks_; 155 return time_ticks_;
155 } 156 }
156 157
157 virtual PrerenderContents* CreatePrerenderContents( 158 virtual PrerenderContents* CreatePrerenderContents(
158 const GURL& url, 159 const GURL& url,
159 const GURL& referrer, 160 const GURL& referrer,
160 Origin origin) OVERRIDE { 161 Origin origin,
162 uint8 experiment_id) OVERRIDE {
161 DCHECK(next_prerender_contents_.get()); 163 DCHECK(next_prerender_contents_.get());
162 return next_prerender_contents_.release(); 164 return next_prerender_contents_.release();
163 } 165 }
164 166
165 base::Time time_; 167 base::Time time_;
166 base::TimeTicks time_ticks_; 168 base::TimeTicks time_ticks_;
167 scoped_ptr<PrerenderContents> next_prerender_contents_; 169 scoped_ptr<PrerenderContents> next_prerender_contents_;
168 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED, 170 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED,
169 // tracked so they will be automatically deleted. 171 // tracked so they will be automatically deleted.
170 ScopedVector<PrerenderContents> used_prerender_contents_; 172 ScopedVector<PrerenderContents> used_prerender_contents_;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 431
430 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 432 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender(
431 child_id, route_id, 433 child_id, route_id,
432 pending_url, url)); 434 pending_url, url));
433 435
434 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); 436 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url));
435 EXPECT_TRUE(prerender_contents->has_started()); 437 EXPECT_TRUE(prerender_contents->has_started());
436 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 438 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
437 } 439 }
438 440
439 // Ensure that extracting a urlencoded URL in the url= query string component
440 // works.
441 TEST_F(PrerenderManagerTest, ExtractURLInQueryStringTest) {
442 GURL result;
443 EXPECT_TRUE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
444 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"),
445 &result));
446 ASSERT_EQ(GURL("http://www.abercrombie.com/webapp/wcs/stores/servlet/StoreLoca tor?catalogId=&storeId=10051&langId=-1").spec(), result.spec());
447 EXPECT_FALSE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
448 GURL("http://www.google.com/url?sadf=test&blah=blahblahblah"), &result));
449 EXPECT_FALSE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
450 GURL("http://www.google.com/?url=INVALIDurlsAREsoMUCHfun.com"), &result));
451 EXPECT_TRUE(PrerenderManager::MaybeGetQueryStringBasedAliasURL(
452 GURL("http://www.google.com/?url=http://validURLSareGREAT.com"),
453 &result));
454 ASSERT_EQ(GURL("http://validURLSareGREAT.com").spec(), result.spec());
455 }
456
457 // Tests that a PrerenderManager created for a browser session in the control 441 // Tests that a PrerenderManager created for a browser session in the control
458 // group will not be able to override FINAL_STATUS_CONTROL_GROUP. 442 // group will not be able to override FINAL_STATUS_CONTROL_GROUP.
459 TEST_F(PrerenderManagerTest, ControlGroup) { 443 TEST_F(PrerenderManagerTest, ControlGroup) {
460 RestorePrerenderMode restore_prerender_mode; 444 RestorePrerenderMode restore_prerender_mode;
461 PrerenderManager::SetMode( 445 PrerenderManager::SetMode(
462 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 446 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
463 GURL url("http://www.google.com/"); 447 GURL url("http://www.google.com/");
464 DummyPrerenderContents* prerender_contents = 448 DummyPrerenderContents* prerender_contents =
465 prerender_manager()->CreateNextPrerenderContents( 449 prerender_manager()->CreateNextPrerenderContents(
466 url, 450 url,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 url, 516 url,
533 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); 517 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED);
534 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); 518 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url));
535 EXPECT_TRUE(prerender_contents->has_started()); 519 EXPECT_TRUE(prerender_contents->has_started());
536 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); 520 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS);
537 DummyPrerenderContents* null = NULL; 521 DummyPrerenderContents* null = NULL;
538 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); 522 EXPECT_EQ(null, prerender_manager()->GetEntry(url));
539 } 523 }
540 524
541 } // namespace prerender 525 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | chrome/browser/prerender/prerender_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698