OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/settings/import_data_collection_view_controller.h
" | 5 #import "ios/chrome/browser/ui/settings/import_data_collection_view_controller.h
" |
6 | 6 |
7 #include "base/mac/foundation_util.h" | 7 #include "base/mac/foundation_util.h" |
8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" |
9 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item
.h" | 9 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_detail_item
.h" |
10 #import "ios/chrome/browser/ui/collection_view/collection_view_controller_test.h
" | 10 #import "ios/chrome/browser/ui/collection_view/collection_view_controller_test.h
" |
11 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" | 11 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" |
12 #import "ios/chrome/browser/ui/settings/cells/card_multiline_item.h" | 12 #import "ios/chrome/browser/ui/settings/cells/card_multiline_item.h" |
13 #include "ios/chrome/grit/ios_strings.h" | 13 #include "ios/chrome/grit/ios_strings.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 #import "testing/gtest_mac.h" | 15 #import "testing/gtest_mac.h" |
16 #include "testing/platform_test.h" | 16 #include "testing/platform_test.h" |
17 #include "ui/base/l10n/l10n_util_mac.h" | 17 #include "ui/base/l10n/l10n_util_mac.h" |
18 | 18 |
| 19 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 20 #error "This file requires ARC support." |
| 21 #endif |
| 22 |
19 @interface ImportDataControllerTestDelegate | 23 @interface ImportDataControllerTestDelegate |
20 : NSObject<ImportDataControllerDelegate> | 24 : NSObject<ImportDataControllerDelegate> |
21 @property(nonatomic, readonly) BOOL didChooseClearDataPolicyCalled; | 25 @property(nonatomic, readonly) BOOL didChooseClearDataPolicyCalled; |
22 @property(nonatomic, readonly) ShouldClearData shouldClearData; | 26 @property(nonatomic, readonly) ShouldClearData shouldClearData; |
23 @end | 27 @end |
24 | 28 |
25 @implementation ImportDataControllerTestDelegate | 29 @implementation ImportDataControllerTestDelegate |
26 | 30 |
27 @synthesize didChooseClearDataPolicyCalled = _didChooseClearDataPolicyCalled; | 31 @synthesize didChooseClearDataPolicyCalled = _didChooseClearDataPolicyCalled; |
28 @synthesize shouldClearData = _shouldClearData; | 32 @synthesize shouldClearData = _shouldClearData; |
(...skipping 12 matching lines...) Expand all Loading... |
41 : public CollectionViewControllerTest { | 45 : public CollectionViewControllerTest { |
42 public: | 46 public: |
43 ImportDataControllerTestDelegate* delegate() { return delegate_; } | 47 ImportDataControllerTestDelegate* delegate() { return delegate_; } |
44 | 48 |
45 protected: | 49 protected: |
46 void SetUp() override { | 50 void SetUp() override { |
47 CollectionViewControllerTest::SetUp(); | 51 CollectionViewControllerTest::SetUp(); |
48 is_signed_in_ = true; | 52 is_signed_in_ = true; |
49 } | 53 } |
50 | 54 |
51 CollectionViewController* NewController() override NS_RETURNS_RETAINED { | 55 CollectionViewController* InstantiateController() override { |
52 delegate_.reset([[ImportDataControllerTestDelegate alloc] init]); | 56 delegate_ = [[ImportDataControllerTestDelegate alloc] init]; |
53 return [[ImportDataCollectionViewController alloc] | 57 return [[ImportDataCollectionViewController alloc] |
54 initWithDelegate:delegate_ | 58 initWithDelegate:delegate_ |
55 fromEmail:@"fromEmail@gmail.com" | 59 fromEmail:@"fromEmail@gmail.com" |
56 toEmail:@"toEmail@gmail.com" | 60 toEmail:@"toEmail@gmail.com" |
57 isSignedIn:is_signed_in_]; | 61 isSignedIn:is_signed_in_]; |
58 } | 62 } |
59 | 63 |
60 void set_is_signed_in(bool is_signed_in) { is_signed_in_ = is_signed_in; } | 64 void set_is_signed_in(bool is_signed_in) { is_signed_in_ = is_signed_in; } |
61 | 65 |
62 bool is_signed_in_; | 66 bool is_signed_in_; |
63 base::scoped_nsobject<ImportDataControllerTestDelegate> delegate_; | 67 ImportDataControllerTestDelegate* delegate_; |
64 }; | 68 }; |
65 | 69 |
66 TEST_F(ImportDataCollectionViewControllerTest, TestModelSignedIn) { | 70 TEST_F(ImportDataCollectionViewControllerTest, TestModelSignedIn) { |
67 CreateController(); | 71 CreateController(); |
68 CheckController(); | 72 CheckController(); |
69 ASSERT_EQ(2, NumberOfSections()); | 73 ASSERT_EQ(2, NumberOfSections()); |
70 EXPECT_EQ(1, NumberOfItemsInSection(0)); | 74 EXPECT_EQ(1, NumberOfItemsInSection(0)); |
71 CardMultilineItem* item = GetCollectionViewItem(0, 0); | 75 CardMultilineItem* item = GetCollectionViewItem(0, 0); |
72 EXPECT_NSEQ( | 76 EXPECT_NSEQ( |
73 l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER, | 77 l10n_util::GetNSStringF(IDS_IOS_OPTIONS_IMPORT_DATA_HEADER, |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 | 150 |
147 // Tests that the default choice when the user is signed in is Clear Data and | 151 // Tests that the default choice when the user is signed in is Clear Data and |
148 // that tapping continue will correctly select it. Regression test for | 152 // that tapping continue will correctly select it. Regression test for |
149 // crbug.com/649533 | 153 // crbug.com/649533 |
150 TEST_F(ImportDataCollectionViewControllerTest, TestDefaultChoiceSignedIn) { | 154 TEST_F(ImportDataCollectionViewControllerTest, TestDefaultChoiceSignedIn) { |
151 CreateController(); | 155 CreateController(); |
152 | 156 |
153 EXPECT_FALSE(delegate().didChooseClearDataPolicyCalled); | 157 EXPECT_FALSE(delegate().didChooseClearDataPolicyCalled); |
154 UIBarButtonItem* item = controller().navigationItem.rightBarButtonItem; | 158 UIBarButtonItem* item = controller().navigationItem.rightBarButtonItem; |
155 ASSERT_TRUE(item); | 159 ASSERT_TRUE(item); |
| 160 #pragma clang diagnostic push |
| 161 #pragma clang diagnostic ignored "-Warc-performSelector-leaks" |
156 [item.target performSelector:item.action]; | 162 [item.target performSelector:item.action]; |
| 163 #pragma clang diagnostic pop |
157 | 164 |
158 EXPECT_TRUE(delegate().didChooseClearDataPolicyCalled); | 165 EXPECT_TRUE(delegate().didChooseClearDataPolicyCalled); |
159 EXPECT_EQ(SHOULD_CLEAR_DATA_CLEAR_DATA, delegate().shouldClearData); | 166 EXPECT_EQ(SHOULD_CLEAR_DATA_CLEAR_DATA, delegate().shouldClearData); |
160 } | 167 } |
161 | 168 |
162 // Tests that the default choice when the user is signed out is Merge Data and | 169 // Tests that the default choice when the user is signed out is Merge Data and |
163 // that tapping continue will correctly select it. Regression test for | 170 // that tapping continue will correctly select it. Regression test for |
164 // crbug.com/649533 | 171 // crbug.com/649533 |
165 TEST_F(ImportDataCollectionViewControllerTest, TestDefaultChoiceSignedOut) { | 172 TEST_F(ImportDataCollectionViewControllerTest, TestDefaultChoiceSignedOut) { |
166 set_is_signed_in(false); | 173 set_is_signed_in(false); |
167 CreateController(); | 174 CreateController(); |
168 | 175 |
169 EXPECT_FALSE(delegate().didChooseClearDataPolicyCalled); | 176 EXPECT_FALSE(delegate().didChooseClearDataPolicyCalled); |
170 UIBarButtonItem* item = controller().navigationItem.rightBarButtonItem; | 177 UIBarButtonItem* item = controller().navigationItem.rightBarButtonItem; |
171 ASSERT_TRUE(item); | 178 ASSERT_TRUE(item); |
| 179 #pragma clang diagnostic push |
| 180 #pragma clang diagnostic ignored "-Warc-performSelector-leaks" |
172 [item.target performSelector:item.action]; | 181 [item.target performSelector:item.action]; |
| 182 #pragma clang diagnostic pop |
173 | 183 |
174 EXPECT_TRUE(delegate().didChooseClearDataPolicyCalled); | 184 EXPECT_TRUE(delegate().didChooseClearDataPolicyCalled); |
175 EXPECT_EQ(SHOULD_CLEAR_DATA_MERGE_DATA, delegate().shouldClearData); | 185 EXPECT_EQ(SHOULD_CLEAR_DATA_MERGE_DATA, delegate().shouldClearData); |
176 } | 186 } |
177 | 187 |
178 } // namespace | 188 } // namespace |
OLD | NEW |