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

Side by Side Diff: ios/chrome/browser/ui/reading_list/reading_list_coordinator_unittest.mm

Issue 2914303002: [ObjC ARC] Converts ios/chrome/browser/ui/reading_list:unit_tests to ARC. (Closed)
Patch Set: Use pragma to suppress performSelector ARC warning Created 3 years, 6 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 #import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h" 5 #import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h"
6 6
7 #include "base/mac/scoped_nsobject.h"
8 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
9 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/threading/thread_task_runner_handle.h"
10 #include "base/time/default_clock.h" 9 #include "base/time/default_clock.h"
11 #include "components/favicon/core/large_icon_service.h" 10 #include "components/favicon/core/large_icon_service.h"
12 #include "components/favicon/core/test/mock_favicon_service.h" 11 #include "components/favicon/core/test/mock_favicon_service.h"
13 #include "components/reading_list/core/reading_list_entry.h" 12 #include "components/reading_list/core/reading_list_entry.h"
14 #include "components/reading_list/core/reading_list_model_impl.h" 13 #include "components/reading_list/core/reading_list_model_impl.h"
15 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" 14 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
16 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" 15 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
17 #import "ios/chrome/browser/ui/reading_list/reading_list_collection_view_control ler.h" 16 #import "ios/chrome/browser/ui/reading_list/reading_list_collection_view_control ler.h"
18 #import "ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.h" 17 #import "ios/chrome/browser/ui/reading_list/reading_list_collection_view_item.h"
19 #import "ios/chrome/browser/ui/reading_list/reading_list_mediator.h" 18 #import "ios/chrome/browser/ui/reading_list/reading_list_mediator.h"
20 #import "ios/chrome/browser/ui/reading_list/reading_list_utils.h" 19 #import "ios/chrome/browser/ui/reading_list/reading_list_utils.h"
21 #import "ios/chrome/browser/ui/url_loader.h" 20 #import "ios/chrome/browser/ui/url_loader.h"
22 #include "ios/web/public/referrer.h" 21 #include "ios/web/public/referrer.h"
23 #import "ios/web/public/test/web_test_with_web_state.h" 22 #import "ios/web/public/test/web_test_with_web_state.h"
24 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
25 #import "third_party/ocmock/OCMock/OCMock.h" 24 #import "third_party/ocmock/OCMock/OCMock.h"
26 #import "third_party/ocmock/gtest_support.h" 25 #import "third_party/ocmock/gtest_support.h"
27 #include "ui/base/page_transition_types.h" 26 #include "ui/base/page_transition_types.h"
28 27
28 #if !defined(__has_feature) || !__has_feature(objc_arc)
29 #error "This file requires ARC support."
30 #endif
31
29 using favicon::PostReply; 32 using favicon::PostReply;
30 using testing::_; 33 using testing::_;
31 34
32 #pragma mark - UrlLoader 35 #pragma mark - UrlLoader
33 36
34 @interface UrlLoaderStub : NSObject<UrlLoader> { 37 @interface UrlLoaderStub : NSObject<UrlLoader> {
35 GURL _url; 38 GURL _url;
36 web::Referrer _referrer; 39 web::Referrer _referrer;
37 } 40 }
38 41
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 return _referrer; 88 return _referrer;
86 } 89 }
87 90
88 @end 91 @end
89 92
90 #pragma mark - ReadingListCoordinatorTest 93 #pragma mark - ReadingListCoordinatorTest
91 94
92 class ReadingListCoordinatorTest : public web::WebTestWithWebState { 95 class ReadingListCoordinatorTest : public web::WebTestWithWebState {
93 public: 96 public:
94 ReadingListCoordinatorTest() { 97 ReadingListCoordinatorTest() {
95 loader_mock_.reset([[UrlLoaderStub alloc] init]); 98 loader_mock_ = [[UrlLoaderStub alloc] init];
96 99
97 TestChromeBrowserState::Builder builder; 100 TestChromeBrowserState::Builder builder;
98 browser_state_ = builder.Build(); 101 browser_state_ = builder.Build();
99 102
100 reading_list_model_.reset(new ReadingListModelImpl( 103 reading_list_model_.reset(new ReadingListModelImpl(
101 nullptr, nullptr, base::MakeUnique<base::DefaultClock>())); 104 nullptr, nullptr, base::MakeUnique<base::DefaultClock>()));
102 mediator_.reset( 105 mediator_ =
103 [[ReadingListMediator alloc] initWithModel:reading_list_model_.get()]); 106 [[ReadingListMediator alloc] initWithModel:reading_list_model_.get()];
104 large_icon_service_.reset(new favicon::LargeIconService( 107 large_icon_service_.reset(new favicon::LargeIconService(
105 &mock_favicon_service_, base::ThreadTaskRunnerHandle::Get(), 108 &mock_favicon_service_, base::ThreadTaskRunnerHandle::Get(),
106 /*image_fetcher=*/nullptr)); 109 /*image_fetcher=*/nullptr));
107 coordinator_.reset([[ReadingListCoordinator alloc] 110 coordinator_ = [[ReadingListCoordinator alloc]
108 initWithBaseViewController:nil 111 initWithBaseViewController:nil
109 browserState:browser_state_.get() 112 browserState:browser_state_.get()
110 loader:loader_mock_]); 113 loader:loader_mock_];
111 114
112 EXPECT_CALL(mock_favicon_service_, 115 EXPECT_CALL(mock_favicon_service_,
113 GetLargestRawFaviconForPageURL(_, _, _, _, _)) 116 GetLargestRawFaviconForPageURL(_, _, _, _, _))
114 .WillRepeatedly(PostReply<5>(favicon_base::FaviconRawBitmapResult())); 117 .WillRepeatedly(PostReply<5>(favicon_base::FaviconRawBitmapResult()));
115 } 118 }
116 119
117 ~ReadingListCoordinatorTest() override {} 120 ~ReadingListCoordinatorTest() override {}
118 121
119 ReadingListCoordinator* GetCoordinator() { return coordinator_; } 122 ReadingListCoordinator* GetCoordinator() { return coordinator_; }
120 123
121 ReadingListModel* GetReadingListModel() { return reading_list_model_.get(); } 124 ReadingListModel* GetReadingListModel() { return reading_list_model_.get(); }
122 UrlLoaderStub* GetLoaderStub() { return loader_mock_; } 125 UrlLoaderStub* GetLoaderStub() { return loader_mock_; }
123 126
124 ReadingListCollectionViewController* 127 ReadingListCollectionViewController*
125 GetAReadingListCollectionViewController() { 128 GetAReadingListCollectionViewController() {
126 return [[[ReadingListCollectionViewController alloc] 129 return [[ReadingListCollectionViewController alloc]
127 initWithDataSource:mediator_ 130 initWithDataSource:mediator_
128 largeIconService:large_icon_service_.get() 131 largeIconService:large_icon_service_.get()
129 toolbar:nil] autorelease]; 132 toolbar:nil];
130 } 133 }
131 134
132 private: 135 private:
133 base::scoped_nsobject<ReadingListCoordinator> coordinator_; 136 ReadingListCoordinator* coordinator_;
134 base::scoped_nsobject<ReadingListMediator> mediator_; 137 ReadingListMediator* mediator_;
135 std::unique_ptr<ReadingListModelImpl> reading_list_model_; 138 std::unique_ptr<ReadingListModelImpl> reading_list_model_;
136 base::scoped_nsobject<UrlLoaderStub> loader_mock_; 139 UrlLoaderStub* loader_mock_;
137 testing::StrictMock<favicon::MockFaviconService> mock_favicon_service_; 140 testing::StrictMock<favicon::MockFaviconService> mock_favicon_service_;
138 std::unique_ptr<favicon::LargeIconService> large_icon_service_; 141 std::unique_ptr<favicon::LargeIconService> large_icon_service_;
139 std::unique_ptr<TestChromeBrowserState> browser_state_; 142 std::unique_ptr<TestChromeBrowserState> browser_state_;
140 }; 143 };
141 144
142 // Tests that the implementation of ReadingListCoordinator openItemAtIndexPath 145 // Tests that the implementation of ReadingListCoordinator openItemAtIndexPath
143 // opens the entry. 146 // opens the entry.
144 TEST_F(ReadingListCoordinatorTest, OpenItem) { 147 TEST_F(ReadingListCoordinatorTest, OpenItem) {
145 // Setup. 148 // Setup.
146 GURL url("https://chromium.org"); 149 GURL url("https://chromium.org");
147 std::string title("Chromium"); 150 std::string title("Chromium");
148 std::unique_ptr<ReadingListEntry> entry = 151 std::unique_ptr<ReadingListEntry> entry =
149 base::MakeUnique<ReadingListEntry>(url, title, base::Time::FromTimeT(10)); 152 base::MakeUnique<ReadingListEntry>(url, title, base::Time::FromTimeT(10));
150 ReadingListModel* model = GetReadingListModel(); 153 ReadingListModel* model = GetReadingListModel();
151 model->AddEntry(url, title, reading_list::ADDED_VIA_CURRENT_APP); 154 model->AddEntry(url, title, reading_list::ADDED_VIA_CURRENT_APP);
152 155
153 base::scoped_nsobject<ReadingListCollectionViewItem> item( 156 ReadingListCollectionViewItem* item = [[ReadingListCollectionViewItem alloc]
154 [[ReadingListCollectionViewItem alloc] 157 initWithType:0
155 initWithType:0 158 url:url
156 url:url 159 distillationState:ReadingListUIDistillationStatusSuccess];
157 distillationState:ReadingListUIDistillationStatusSuccess]);
158 160
159 // Action. 161 // Action.
160 [GetCoordinator() readingListCollectionViewController: 162 [GetCoordinator() readingListCollectionViewController:
161 GetAReadingListCollectionViewController() 163 GetAReadingListCollectionViewController()
162 openItem:item]; 164 openItem:item];
163 165
164 // Tests. 166 // Tests.
165 UrlLoaderStub* loader = GetLoaderStub(); 167 UrlLoaderStub* loader = GetLoaderStub();
166 EXPECT_EQ(url, loader.url); 168 EXPECT_EQ(url, loader.url);
167 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(ui::PAGE_TRANSITION_AUTO_BOOKMARK, 169 EXPECT_TRUE(ui::PageTransitionCoreTypeIs(ui::PAGE_TRANSITION_AUTO_BOOKMARK,
168 loader.transition)); 170 loader.transition));
169 EXPECT_EQ(NO, loader.rendererInitiated); 171 EXPECT_EQ(NO, loader.rendererInitiated);
170 } 172 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698