Index: chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc |
diff --git a/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc |
index 73611a0e1356f36cb57b75fb400145631bba66c3..dc0151c866a9625e97f199b6b57716335e496792 100644 |
--- a/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc |
+++ b/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc |
@@ -4,7 +4,11 @@ |
#include "chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.h" |
+#include "chrome/browser/page_load_metrics/observers/offliner_user_data.h" |
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h" |
+#include "components/offline_pages/core/background/offliner_stub.h" |
+#include "components/offline_pages/core/background/resource_tracker_observer.h" |
+#include "components/offline_pages/core/background/resource_tracker_observer_stub.h" |
namespace { |
const char kFakeUrl[] = "http://www.google.com/nothingotseehere.html"; |
@@ -15,13 +19,15 @@ namespace page_load_metrics { |
class ResourceTrackingPageLoadMetricsObserverTest |
: public page_load_metrics::PageLoadMetricsObserverTestHarness { |
public: |
- ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) {} |
+ ResourceTrackingPageLoadMetricsObserverTest() : observer_(nullptr) { |
+ resource_watcher_.reset(new offline_pages::ResourceTrackerObserverStub); |
+ } |
protected: |
void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { |
std::unique_ptr<page_load_metrics::ResourceTrackingPageLoadMetricsObserver> |
- observer( |
- new page_load_metrics::ResourceTrackingPageLoadMetricsObserver()); |
+ observer(new page_load_metrics::ResourceTrackingPageLoadMetricsObserver( |
+ resource_watcher())); |
// Keep track of the observer pointer so we can check it in the unit test. |
observer_ = observer.get(); |
tracker->AddObserver(std::move(observer)); |
@@ -31,10 +37,15 @@ class ResourceTrackingPageLoadMetricsObserverTest |
return observer_; |
} |
+ offline_pages::ResourceTrackerObserverStub* resource_watcher() { |
+ return resource_watcher_.get(); |
+ } |
+ |
private: |
// observer_ is owned by the last created PageLoadTracker, and its lifetime is |
// dictated by that tracker's lifetime. |
page_load_metrics::ResourceTrackingPageLoadMetricsObserver* observer_; |
+ std::unique_ptr<offline_pages::ResourceTrackerObserverStub> resource_watcher_; |
}; |
TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) { |
@@ -54,6 +65,12 @@ TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) { |
content::ResourceType::RESOURCE_TYPE_IMAGE, |
}; |
+ // Add some OfflinerUserData to the web_contents so that our tracker will |
+ // be called. |
+ offline_pages::OfflinerStub offliner_stub; |
+ offline_pages::OfflinerUserData::AddToWebContents(web_contents(), |
+ &offliner_stub); |
+ |
// Start the navigation. This will create the page load tracker and register |
// the observers. |
NavigateAndCommit(GURL(kFakeUrl)); |
@@ -63,13 +80,14 @@ TEST_F(ResourceTrackingPageLoadMetricsObserverTest, StartAndFinish) { |
SimulateStartedResource(start_info_2); |
SimulateLoadedResource(done_info); |
- int64_t started = -1; |
- int64_t completed = -1; |
- EXPECT_NE(nullptr, observer()); |
- observer()->GetCountsForTypeForTesting( |
- content::ResourceType::RESOURCE_TYPE_IMAGE, &started, &completed); |
- EXPECT_EQ(2, started); |
- EXPECT_EQ(1, completed); |
+ int64_t resource_watcher_started = -1; |
+ int64_t resource_watcher_completed = -1; |
+ ASSERT_NE(nullptr, resource_watcher()); |
+ resource_watcher()->GetResourcePercentageCounts( |
+ offline_pages::ResourceDataType::IMAGE, &resource_watcher_started, |
+ &resource_watcher_completed); |
+ EXPECT_EQ(2, resource_watcher_started); |
+ EXPECT_EQ(1, resource_watcher_completed); |
} |
} // namespace page_load_metrics |