| 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
|
|
|