Chromium Code Reviews| Index: chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc |
| diff --git a/chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc b/chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc |
| index da6a7a443ed4b8e89f71074060a37bcf1fa1b323..cdcf5901204ef1abbaf4ceac83f20bd2164c3c4d 100644 |
| --- a/chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc |
| +++ b/chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc |
| @@ -19,32 +19,43 @@ const char kHistogramNameFromGWSFirstTextPaint[] = |
| } // namespace |
| -class TestPageLoadMetricsEmbedderInterface |
| - : public page_load_metrics::PageLoadMetricsEmbedderInterface { |
| - public: |
| - TestPageLoadMetricsEmbedderInterface() {} |
| - rappor::RapporService* GetRapporService() override { return nullptr; } |
| - bool IsPrerendering(content::WebContents* web_contents) override { |
| - return false; |
| - } |
| -}; |
| - |
| class TestFromGWSPageLoadMetricsObserver |
|
Randy Smith (Not in Mondays)
2015/12/03 01:20:42
Remind me: What's the unit test pattern we recomme
Charlie Harrison
2015/12/03 13:35:35
We're moving to a test file per observer. Plus, we
Randy Smith (Not in Mondays)
2015/12/03 21:06:49
Yeah, except we're probably the only review they'r
|
| : public FromGWSPageLoadMetricsObserver { |
| public: |
| - explicit TestFromGWSPageLoadMetricsObserver( |
| - page_load_metrics::PageLoadMetricsObservable* metrics) |
| - : FromGWSPageLoadMetricsObserver(metrics) {} |
| + explicit TestFromGWSPageLoadMetricsObserver(const content::Referrer& referrer) |
| + : FromGWSPageLoadMetricsObserver(), referrer_(referrer) {} |
| void OnCommit(content::NavigationHandle* navigation_handle) override { |
| const GURL& url = navigation_handle->GetURL(); |
| SetCommittedURLAndReferrer( |
| url, content::Referrer::SanitizeForRequest(url, referrer_)); |
| } |
| + private: |
| + const content::Referrer referrer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestFromGWSPageLoadMetricsObserver); |
| +}; |
| + |
| +class TestPageLoadMetricsEmbedderInterface |
| + : public page_load_metrics::PageLoadMetricsEmbedderInterface { |
| + public: |
| + TestPageLoadMetricsEmbedderInterface() |
| + : referrer_(content::Referrer(GURL("https://www.google.com"), |
| + blink::WebReferrerPolicyDefault)) {} |
| + rappor::RapporService* GetRapporService() override { return nullptr; } |
| + bool IsPrerendering(content::WebContents* web_contents) override { |
| + return false; |
| + } |
| + void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { |
| + tracker->AddObserver( |
| + make_scoped_ptr(new TestFromGWSPageLoadMetricsObserver(referrer_))); |
| + } |
| void set_referrer(const content::Referrer& referrer) { referrer_ = referrer; } |
| private: |
| content::Referrer referrer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestPageLoadMetricsEmbedderInterface); |
| }; |
| class PageLoadMetricsObserverTest : public ChromeRenderViewHostTestHarness { |
| @@ -55,23 +66,17 @@ class PageLoadMetricsObserverTest : public ChromeRenderViewHostTestHarness { |
| ChromeRenderViewHostTestHarness::SetUp(); |
| SetContents(CreateTestWebContents()); |
| NavigateAndCommit(GURL("http://www.google.com")); |
| + embedder_interface_ = new TestPageLoadMetricsEmbedderInterface(); |
| observer_ = |
| make_scoped_ptr(new page_load_metrics::MetricsWebContentsObserver( |
| - web_contents(), |
| - make_scoped_ptr(new TestPageLoadMetricsEmbedderInterface()))); |
| + web_contents(), make_scoped_ptr(embedder_interface_))); |
| observer_->WasShown(); |
| - |
| - // Add PageLoadMetricsObservers here. |
| - gws_observer_ = new TestFromGWSPageLoadMetricsObserver(observer_.get()); |
| - observer_->AddObserver(gws_observer_); |
| } |
| base::HistogramTester histogram_tester_; |
| + TestPageLoadMetricsEmbedderInterface* embedder_interface_; |
| scoped_ptr<page_load_metrics::MetricsWebContentsObserver> observer_; |
| - // PageLoadMetricsObservers: |
| - TestFromGWSPageLoadMetricsObserver* gws_observer_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsObserverTest); |
| }; |
| @@ -99,7 +104,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSHTTPToHTTPS) { |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); |
| // HTTPS google.com referral to HTTP example.com. |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin)); |
| NavigateAndCommit(GURL("http://www.example.com")); |
| @@ -120,7 +125,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralFromGWS) { |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault)); |
| NavigateAndCommit(GURL("https://www.example.com")); |
| @@ -141,7 +146,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralFromGWSBackgroundLater) { |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMicroseconds(1); |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault)); |
| NavigateAndCommit(GURL("https://www.example.com")); |
| @@ -164,7 +169,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralsFromCaseInsensitive) { |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); |
| // HTTPS google.com referral to HTTP example.com. |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://wWw.GoOGlE.cOm/webhp"), blink::WebReferrerPolicyOrigin)); |
| NavigateAndCommit(GURL("https://www.example.com")); |
| @@ -185,7 +190,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSOrigin) { |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); |
| // HTTPS google.com referral to HTTP example.com. |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin)); |
| NavigateAndCommit(GURL("https://www.example.com")); |
| @@ -197,7 +202,7 @@ TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSOrigin) { |
| timing2.navigation_start = base::Time::FromDoubleT(10); |
| timing2.first_text_paint = base::TimeDelta::FromMilliseconds(100); |
| // HTTPS google.com referral to HTTP example.com. |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.google.co.in"), blink::WebReferrerPolicyOrigin)); |
| NavigateAndCommit(GURL("https://www.example2.com")); |
| @@ -219,9 +224,9 @@ TEST_F(PageLoadMetricsObserverTest, ReferralNotFromGWS) { |
| page_load_metrics::PageLoadTiming timing; |
| timing.navigation_start = base::Time::FromDoubleT(1); |
| timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); |
| - NavigateAndCommit(GURL("https://www.example.com")); |
| - gws_observer_->set_referrer(content::Referrer( |
| + embedder_interface_->set_referrer(content::Referrer( |
| GURL("https://www.anothersite.com"), blink::WebReferrerPolicyDefault)); |
| + NavigateAndCommit(GURL("https://www.example.com")); |
| observer_->OnMessageReceived( |
| PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), |