| Index: ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm
|
| diff --git a/ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm b/ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm
|
| index ca0817bb3b7d0c7201b6f0f7c9e7959367255ad4..31672db7ce4483cc2514fefd37b40d67a4a9db8a 100644
|
| --- a/ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm
|
| +++ b/ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm
|
| @@ -4,6 +4,7 @@
|
|
|
| #include <memory>
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/histogram_samples.h"
|
| #include "base/stl_util.h"
|
| @@ -13,6 +14,8 @@
|
| #import "ios/chrome/browser/metrics/tab_usage_recorder_delegate.h"
|
| #import "ios/chrome/browser/tabs/tab.h"
|
| #include "ios/testing/ocmock_complex_type_helper.h"
|
| +#import "ios/web/public/test/fakes/test_navigation_manager.h"
|
| +#import "ios/web/public/test/fakes/test_web_state.h"
|
| #include "ios/web/public/test/test_web_thread.h"
|
| #import "ios/web/web_state/ui/crw_web_controller.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -25,9 +28,16 @@
|
|
|
| @interface TURTestTabMock : OCMockComplexTypeHelper {
|
| GURL _url;
|
| + GURL _lastCommittedURL;
|
| + GURL _visibleURL;
|
| + web::TestWebState _webState;
|
| }
|
|
|
| @property(nonatomic, assign) const GURL& url;
|
| +@property(nonatomic, assign) const GURL& lastCommittedURL;
|
| +@property(nonatomic, assign) const GURL& visibleURL;
|
| +@property(nonatomic, readonly) web::WebState* webState;
|
| +
|
| @end
|
|
|
| @implementation TURTestTabMock
|
| @@ -37,6 +47,25 @@ @implementation TURTestTabMock
|
| - (void)setUrl:(const GURL&)url {
|
| _url = url;
|
| }
|
| +- (const GURL&)lastCommittedURL {
|
| + return _lastCommittedURL;
|
| +}
|
| +- (void)setLastCommittedURL:(const GURL&)lastCommittedURL {
|
| + _lastCommittedURL = lastCommittedURL;
|
| +}
|
| +- (const GURL&)visibleURL {
|
| + return _visibleURL;
|
| +}
|
| +- (void)setVisibleURL:(const GURL&)visibleURL {
|
| + _visibleURL = visibleURL;
|
| +}
|
| +- (web::WebState*)webState {
|
| + if (!_webState.GetNavigationManager()) {
|
| + _webState.SetNavigationManager(
|
| + base::MakeUnique<web::TestNavigationManager>());
|
| + }
|
| + return &_webState;
|
| +}
|
| @end
|
|
|
| // A mock TabUsageRecorderDelegate which allows the unit tests to control
|
| @@ -106,6 +135,8 @@ id MockTab(bool inMemory) {
|
| [[[tab_mock stub] andReturn:web_controller_mock] webController];
|
| [[[tab_mock stub] andReturnBool:false] isPrerenderTab];
|
| [tab_mock setUrl:webUrl_];
|
| + [tab_mock setLastCommittedURL:webUrl_];
|
| + [tab_mock setVisibleURL:webUrl_];
|
| [[[web_controller_mock stub] andReturnBool:inMemory] isViewAlive];
|
| [[web_controller_mock stub] removeObserver:OCMOCK_ANY];
|
| return tab_mock;
|
| @@ -173,7 +204,11 @@ id MockTab(bool inMemory) {
|
| id tab_mock_a = MockTab(true);
|
| id tab_mock_b = MockTab(false);
|
| [tab_mock_a setUrl:nativeUrl_];
|
| + [tab_mock_a setLastCommittedURL:nativeUrl_];
|
| + [tab_mock_a setVisibleURL:nativeUrl_];
|
| [tab_mock_b setUrl:nativeUrl_];
|
| + [tab_mock_b setLastCommittedURL:nativeUrl_];
|
| + [tab_mock_b setVisibleURL:nativeUrl_];
|
|
|
| // Call reload an arbitrary number of times.
|
| const int kNumReloads = 4;
|
|
|