[go: nahoru, domu]

blob: d09a9d948843f89baf6264d6cc41621522352355 [file] [log] [blame]
Avi Drissmanea1be232022-09-14 23:29:061// Copyright 2022 The Chromium Authors
Gauthier Ambard9f3a49f2022-01-03 13:45:272// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#import "ios/chrome/browser/ui/settings/content_settings/default_page_mode_table_view_controller.h"
6
Avi Drissmaneac566b02023-08-18 02:56:217#import "base/apple/foundation_util.h"
Gauthier Ambard287c1a1a2023-03-14 10:33:438#import "ios/chrome/browser/shared/ui/table_view/chrome_table_view_controller_test.h"
Gauthier Ambard999088c2022-09-13 08:36:579#import "ios/chrome/grit/ios_strings.h"
10#import "testing/gtest_mac.h"
11#import "ui/base/l10n/l10n_util.h"
Gauthier Ambard9f3a49f2022-01-03 13:45:2712
Gauthier Ambard9f3a49f2022-01-03 13:45:2713class DefaultPageModeTableViewControllerTest
14 : public ChromeTableViewControllerTest {
15 protected:
16 ChromeTableViewController* InstantiateController() override {
17 return [[DefaultPageModeTableViewController alloc]
18 initWithStyle:UITableViewStyleGrouped];
19 }
20};
21
22// Tests that there are 2 items in the Table View.
23TEST_F(DefaultPageModeTableViewControllerTest, TestItems) {
24 CreateController();
25 CheckController();
Gauthier Ambardccb4210c2022-02-10 18:05:0626 CheckTitle(l10n_util::GetNSString(IDS_IOS_DEFAULT_PAGE_MODE_TITLE));
Gauthier Ambard9f3a49f2022-01-03 13:45:2727
28 ASSERT_EQ(1, NumberOfSections());
29 ASSERT_EQ(2, NumberOfItemsInSection(0));
Gauthier Ambard6498e1b2022-02-04 10:07:5230 CheckTextCellText(@"Mobile", 0, 0);
31 CheckTextCellText(@"Desktop", 0, 1);
Gauthier Ambard9f3a49f2022-01-03 13:45:2732
33 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 0);
34 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 1);
35}
36
37// Tests that the checkmark gets correctly updated when set before the model is
38// loaded.
39TEST_F(DefaultPageModeTableViewControllerTest, TestCheckmarkAtLoad) {
40 // Load the controller manually as this is testing setting the DefaultPageMode
41 // before the model is loaded.
42 DefaultPageModeTableViewController* controller =
43 [[DefaultPageModeTableViewController alloc]
44 initWithStyle:UITableViewStyleGrouped];
45
46 [controller setDefaultPageMode:DefaultPageModeDesktop];
47
48 [controller loadModel];
49 // Force the tableView to be built.
50 ASSERT_TRUE([controller view]);
51
52 UITableViewCellAccessoryType first_accesory =
53 [controller.tableViewModel
54 itemAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]
55 .accessoryType;
56 EXPECT_EQ(UITableViewCellAccessoryNone, first_accesory);
57 UITableViewCellAccessoryType second_accesory =
58 [controller.tableViewModel
59 itemAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]]
60 .accessoryType;
61 EXPECT_EQ(UITableViewCellAccessoryCheckmark, second_accesory);
62}
63
64// Tests that the checkmark gets correctly updated.
65TEST_F(DefaultPageModeTableViewControllerTest, TestCheckmark) {
66 ChromeTableViewController* chrome_controller = controller();
67 DefaultPageModeTableViewController* controller =
Avi Drissmaneac566b02023-08-18 02:56:2168 base::apple::ObjCCastStrict<DefaultPageModeTableViewController>(
Gauthier Ambard9f3a49f2022-01-03 13:45:2769 chrome_controller);
70
71 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 0);
72 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 1);
73
74 [controller setDefaultPageMode:DefaultPageModeMobile];
75
76 CheckAccessoryType(UITableViewCellAccessoryCheckmark, 0, 0);
77 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 1);
78
79 [controller setDefaultPageMode:DefaultPageModeDesktop];
80
81 CheckAccessoryType(UITableViewCellAccessoryNone, 0, 0);
82 CheckAccessoryType(UITableViewCellAccessoryCheckmark, 0, 1);
83}