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

Side by Side Diff: ios/chrome/browser/metrics/tab_usage_recorder_unittest.mm

Issue 2894653002: [ObjC ARC] Converts ios/chrome/browser/metrics:unit_tests_internal to ARC. (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « ios/chrome/browser/metrics/size_class_recorder_unittest.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <memory> 5 #include <memory>
6 6
7 #include "base/mac/scoped_nsobject.h"
8 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
9 #include "base/metrics/histogram_samples.h" 8 #include "base/metrics/histogram_samples.h"
10 #include "base/stl_util.h" 9 #include "base/stl_util.h"
11 #include "base/test/histogram_tester.h" 10 #include "base/test/histogram_tester.h"
12 #import "ios/chrome/browser/metrics/previous_session_info.h" 11 #import "ios/chrome/browser/metrics/previous_session_info.h"
13 #include "ios/chrome/browser/metrics/tab_usage_recorder.h" 12 #include "ios/chrome/browser/metrics/tab_usage_recorder.h"
14 #import "ios/chrome/browser/metrics/tab_usage_recorder_delegate.h" 13 #import "ios/chrome/browser/metrics/tab_usage_recorder_delegate.h"
15 #import "ios/chrome/browser/tabs/tab.h" 14 #import "ios/chrome/browser/tabs/tab.h"
16 #include "ios/testing/ocmock_complex_type_helper.h" 15 #include "ios/testing/ocmock_complex_type_helper.h"
17 #include "ios/web/public/test/test_web_thread.h" 16 #include "ios/web/public/test/test_web_thread.h"
18 #import "ios/web/web_state/ui/crw_web_controller.h" 17 #import "ios/web/web_state/ui/crw_web_controller.h"
19 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
20 #include "testing/platform_test.h" 19 #include "testing/platform_test.h"
21 #include "third_party/ocmock/ocmock_extensions.h" 20 #include "third_party/ocmock/ocmock_extensions.h"
22 21
22 #if !defined(__has_feature) || !__has_feature(objc_arc)
23 #error "This file requires ARC support."
24 #endif
25
23 @interface TURTestTabMock : OCMockComplexTypeHelper { 26 @interface TURTestTabMock : OCMockComplexTypeHelper {
24 GURL _url; 27 GURL _url;
25 } 28 }
26 29
27 @property(nonatomic, assign) const GURL& url; 30 @property(nonatomic, assign) const GURL& url;
28 @end 31 @end
29 32
30 @implementation TURTestTabMock 33 @implementation TURTestTabMock
31 - (const GURL&)url { 34 - (const GURL&)url {
32 return _url; 35 return _url;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 id MockTab(bool inMemory) { 101 id MockTab(bool inMemory) {
99 id tab_mock = [[TURTestTabMock alloc] 102 id tab_mock = [[TURTestTabMock alloc]
100 initWithRepresentedObject:[OCMockObject mockForClass:[Tab class]]]; 103 initWithRepresentedObject:[OCMockObject mockForClass:[Tab class]]];
101 id web_controller_mock = 104 id web_controller_mock =
102 [OCMockObject mockForClass:[CRWWebController class]]; 105 [OCMockObject mockForClass:[CRWWebController class]];
103 [[[tab_mock stub] andReturn:web_controller_mock] webController]; 106 [[[tab_mock stub] andReturn:web_controller_mock] webController];
104 [[[tab_mock stub] andReturnBool:false] isPrerenderTab]; 107 [[[tab_mock stub] andReturnBool:false] isPrerenderTab];
105 [tab_mock setUrl:webUrl_]; 108 [tab_mock setUrl:webUrl_];
106 [[[web_controller_mock stub] andReturnBool:inMemory] isViewAlive]; 109 [[[web_controller_mock stub] andReturnBool:inMemory] isViewAlive];
107 [[web_controller_mock stub] removeObserver:OCMOCK_ANY]; 110 [[web_controller_mock stub] removeObserver:OCMOCK_ANY];
108 return [tab_mock autorelease]; 111 return tab_mock;
109 } 112 }
110 113
111 GURL webUrl_; 114 GURL webUrl_;
112 GURL nativeUrl_; 115 GURL nativeUrl_;
113 std::unique_ptr<base::MessageLoop> loop_; 116 std::unique_ptr<base::MessageLoop> loop_;
114 std::unique_ptr<web::TestWebThread> ui_thread_; 117 std::unique_ptr<web::TestWebThread> ui_thread_;
115 std::unique_ptr<base::HistogramTester> histogram_tester_; 118 std::unique_ptr<base::HistogramTester> histogram_tester_;
116 std::unique_ptr<TabUsageRecorderForTesting> tab_usage_recorder_; 119 std::unique_ptr<TabUsageRecorderForTesting> tab_usage_recorder_;
117 }; 120 };
118 121
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 // Should record nothing. 308 // Should record nothing.
306 tab_usage_recorder_->RecordPageLoadStart(tab_mock_b); 309 tab_usage_recorder_->RecordPageLoadStart(tab_mock_b);
307 histogram_tester_->ExpectTotalCount(kTimeAfterLastRestore, 1); 310 histogram_tester_->ExpectTotalCount(kTimeAfterLastRestore, 1);
308 } 311 }
309 312
310 // Verifies that metrics are recorded correctly when a renderer terminates. 313 // Verifies that metrics are recorded correctly when a renderer terminates.
311 TEST_F(TabUsageRecorderTest, RendererTerminated) { 314 TEST_F(TabUsageRecorderTest, RendererTerminated) {
312 Tab* terminated_tab = MockTab(false); 315 Tab* terminated_tab = MockTab(false);
313 316
314 // Set up the delegate to return |kAliveTabsCountAtRenderTermination|. 317 // Set up the delegate to return |kAliveTabsCountAtRenderTermination|.
315 base::scoped_nsobject<MockTabUsageRecorderDelegate> delegate( 318 MockTabUsageRecorderDelegate* delegate =
316 [[MockTabUsageRecorderDelegate alloc] init]); 319 [[MockTabUsageRecorderDelegate alloc] init];
317 [delegate setLiveTabsCount:kAliveTabsCountAtRendererTermination]; 320 [delegate setLiveTabsCount:kAliveTabsCountAtRendererTermination];
318 tab_usage_recorder_->SetDelegate(delegate); 321 tab_usage_recorder_->SetDelegate(delegate);
319 322
320 base::TimeTicks now = base::TimeTicks::Now(); 323 base::TimeTicks now = base::TimeTicks::Now();
321 324
322 // Add |kExpiredTimesAddedCount| expired timestamps and one recent timestamp 325 // Add |kExpiredTimesAddedCount| expired timestamps and one recent timestamp
323 // to the termination timestamp list. 326 // to the termination timestamp list.
324 for (int seconds = kExpiredTimesAddedCount; seconds > 0; seconds--) { 327 for (int seconds = kExpiredTimesAddedCount; seconds > 0; seconds--) {
325 int expired_time_delta = kSecondsBeforeRendererTermination + seconds; 328 int expired_time_delta = kSecondsBeforeRendererTermination + seconds;
326 tab_usage_recorder_->AddTimeToDeque( 329 tab_usage_recorder_->AddTimeToDeque(
(...skipping 30 matching lines...) Expand all
357 360
358 tab_usage_recorder_->RendererTerminated(tab_mock_b, false); 361 tab_usage_recorder_->RendererTerminated(tab_mock_b, false);
359 tab_usage_recorder_->RecordTabSwitched(tab_mock_a, tab_mock_b); 362 tab_usage_recorder_->RecordTabSwitched(tab_mock_a, tab_mock_b);
360 363
361 histogram_tester_->ExpectUniqueSample( 364 histogram_tester_->ExpectUniqueSample(
362 kSelectedTabHistogramName, 365 kSelectedTabHistogramName,
363 TabUsageRecorder::EVICTED_DUE_TO_RENDERER_TERMINATION, 1); 366 TabUsageRecorder::EVICTED_DUE_TO_RENDERER_TERMINATION, 1);
364 } 367 }
365 368
366 } // namespace 369 } // namespace
OLDNEW
« no previous file with comments | « ios/chrome/browser/metrics/size_class_recorder_unittest.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698