OLD | NEW |
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 "ui/app_list/app_list_model.h" | 5 #include "ui/app_list/app_list_model.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 #include "ui/app_list/app_list_folder_item.h" | 11 #include "ui/app_list/app_list_folder_item.h" |
12 #include "ui/app_list/app_list_item_model.h" | 12 #include "ui/app_list/app_list_item_model.h" |
13 #include "ui/app_list/app_list_model_observer.h" | 13 #include "ui/app_list/app_list_model_observer.h" |
14 #include "ui/app_list/test/app_list_test_model.h" | 14 #include "ui/app_list/test/app_list_test_model.h" |
15 #include "ui/base/models/list_model_observer.h" | 15 #include "ui/base/models/list_model_observer.h" |
16 | 16 |
17 namespace app_list { | 17 namespace app_list { |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 class TestObserver : public AppListModelObserver, | 21 class TestObserver : public AppListModelObserver, |
22 public AppListItemListObserver { | 22 public AppListItemListObserver { |
23 public: | 23 public: |
24 TestObserver() | 24 TestObserver() |
25 : status_changed_count_(0), | 25 : status_changed_count_(0), |
26 users_changed_count_(0), | |
27 signin_changed_count_(0), | 26 signin_changed_count_(0), |
28 items_added_(0), | 27 items_added_(0), |
29 items_removed_(0), | 28 items_removed_(0), |
30 items_moved_(0) { | 29 items_moved_(0) { |
31 } | 30 } |
32 virtual ~TestObserver() { | 31 virtual ~TestObserver() { |
33 } | 32 } |
34 | 33 |
35 // AppListModelObserver | 34 // AppListModelObserver |
36 virtual void OnAppListModelStatusChanged() OVERRIDE { | 35 virtual void OnAppListModelStatusChanged() OVERRIDE { |
37 ++status_changed_count_; | 36 ++status_changed_count_; |
38 } | 37 } |
39 | 38 |
40 virtual void OnAppListModelUsersChanged() OVERRIDE { | |
41 ++users_changed_count_; | |
42 } | |
43 | |
44 virtual void OnAppListModelSigninStatusChanged() OVERRIDE { | 39 virtual void OnAppListModelSigninStatusChanged() OVERRIDE { |
45 ++signin_changed_count_; | 40 ++signin_changed_count_; |
46 } | 41 } |
47 | 42 |
48 // AppListItemListObserver | 43 // AppListItemListObserver |
49 virtual void OnListItemAdded(size_t index, AppListItemModel* item) OVERRIDE { | 44 virtual void OnListItemAdded(size_t index, AppListItemModel* item) OVERRIDE { |
50 items_added_++; | 45 items_added_++; |
51 } | 46 } |
52 | 47 |
53 virtual void OnListItemRemoved(size_t index, | 48 virtual void OnListItemRemoved(size_t index, |
54 AppListItemModel* item) OVERRIDE { | 49 AppListItemModel* item) OVERRIDE { |
55 items_removed_++; | 50 items_removed_++; |
56 } | 51 } |
57 | 52 |
58 virtual void OnListItemMoved(size_t from_index, | 53 virtual void OnListItemMoved(size_t from_index, |
59 size_t to_index, | 54 size_t to_index, |
60 AppListItemModel* item) OVERRIDE { | 55 AppListItemModel* item) OVERRIDE { |
61 items_moved_++; | 56 items_moved_++; |
62 } | 57 } |
63 | 58 |
64 int status_changed_count() const { return status_changed_count_; } | 59 int status_changed_count() const { return status_changed_count_; } |
65 int users_changed_count() const { return users_changed_count_; } | |
66 int signin_changed_count() const { return signin_changed_count_; } | 60 int signin_changed_count() const { return signin_changed_count_; } |
67 size_t items_added() { return items_added_; } | 61 size_t items_added() { return items_added_; } |
68 size_t items_removed() { return items_removed_; } | 62 size_t items_removed() { return items_removed_; } |
69 size_t items_moved() { return items_moved_; } | 63 size_t items_moved() { return items_moved_; } |
70 | 64 |
71 void ResetCounts() { | 65 void ResetCounts() { |
72 status_changed_count_ = 0; | 66 status_changed_count_ = 0; |
73 users_changed_count_ = 0; | |
74 signin_changed_count_ = 0; | 67 signin_changed_count_ = 0; |
75 items_added_ = 0; | 68 items_added_ = 0; |
76 items_removed_ = 0; | 69 items_removed_ = 0; |
77 items_moved_ = 0; | 70 items_moved_ = 0; |
78 } | 71 } |
79 | 72 |
80 private: | 73 private: |
81 int status_changed_count_; | 74 int status_changed_count_; |
82 int users_changed_count_; | |
83 int signin_changed_count_; | 75 int signin_changed_count_; |
84 size_t items_added_; | 76 size_t items_added_; |
85 size_t items_removed_; | 77 size_t items_removed_; |
86 size_t items_moved_; | 78 size_t items_moved_; |
87 | 79 |
88 DISALLOW_COPY_AND_ASSIGN(TestObserver); | 80 DISALLOW_COPY_AND_ASSIGN(TestObserver); |
89 }; | 81 }; |
90 | 82 |
91 } // namespace | 83 } // namespace |
92 | 84 |
(...skipping 30 matching lines...) Expand all Loading... |
123 model_.SetStatus(AppListModel::STATUS_SYNCING); | 115 model_.SetStatus(AppListModel::STATUS_SYNCING); |
124 EXPECT_EQ(1, observer_.status_changed_count()); | 116 EXPECT_EQ(1, observer_.status_changed_count()); |
125 EXPECT_EQ(AppListModel::STATUS_SYNCING, model_.status()); | 117 EXPECT_EQ(AppListModel::STATUS_SYNCING, model_.status()); |
126 model_.SetStatus(AppListModel::STATUS_NORMAL); | 118 model_.SetStatus(AppListModel::STATUS_NORMAL); |
127 EXPECT_EQ(2, observer_.status_changed_count()); | 119 EXPECT_EQ(2, observer_.status_changed_count()); |
128 // Set the same status, no change is expected. | 120 // Set the same status, no change is expected. |
129 model_.SetStatus(AppListModel::STATUS_NORMAL); | 121 model_.SetStatus(AppListModel::STATUS_NORMAL); |
130 EXPECT_EQ(2, observer_.status_changed_count()); | 122 EXPECT_EQ(2, observer_.status_changed_count()); |
131 } | 123 } |
132 | 124 |
133 TEST_F(AppListModelTest, SetUsers) { | |
134 EXPECT_EQ(0u, model_.users().size()); | |
135 AppListModel::Users users; | |
136 users.push_back(AppListModel::User()); | |
137 users[0].name = UTF8ToUTF16("test"); | |
138 model_.SetUsers(users); | |
139 EXPECT_EQ(1, observer_.users_changed_count()); | |
140 ASSERT_EQ(1u, model_.users().size()); | |
141 EXPECT_EQ(UTF8ToUTF16("test"), model_.users()[0].name); | |
142 } | |
143 | |
144 TEST_F(AppListModelTest, SetSignedIn) { | 125 TEST_F(AppListModelTest, SetSignedIn) { |
145 EXPECT_TRUE(model_.signed_in()); | 126 EXPECT_TRUE(model_.signed_in()); |
146 model_.SetSignedIn(false); | 127 model_.SetSignedIn(false); |
147 EXPECT_EQ(1, observer_.signin_changed_count()); | 128 EXPECT_EQ(1, observer_.signin_changed_count()); |
148 EXPECT_FALSE(model_.signed_in()); | 129 EXPECT_FALSE(model_.signed_in()); |
149 model_.SetSignedIn(true); | 130 model_.SetSignedIn(true); |
150 EXPECT_EQ(2, observer_.signin_changed_count()); | 131 EXPECT_EQ(2, observer_.signin_changed_count()); |
151 EXPECT_TRUE(model_.signed_in()); | 132 EXPECT_TRUE(model_.signed_in()); |
152 // Set the same signin state, no change is expected. | 133 // Set the same signin state, no change is expected. |
153 model_.SetSignedIn(true); | 134 model_.SetSignedIn(true); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 EXPECT_TRUE(ItemObservedByFolder( | 285 EXPECT_TRUE(ItemObservedByFolder( |
305 folder.get(), folder->item_list()->item_at(0))); | 286 folder.get(), folder->item_list()->item_at(0))); |
306 EXPECT_TRUE(ItemObservedByFolder( | 287 EXPECT_TRUE(ItemObservedByFolder( |
307 folder.get(), folder->item_list()->item_at(num_observed_apps - 1))); | 288 folder.get(), folder->item_list()->item_at(num_observed_apps - 1))); |
308 // Check that item 4 is not observed. | 289 // Check that item 4 is not observed. |
309 EXPECT_FALSE(ItemObservedByFolder( | 290 EXPECT_FALSE(ItemObservedByFolder( |
310 folder.get(), folder->item_list()->item_at(num_observed_apps))); | 291 folder.get(), folder->item_list()->item_at(num_observed_apps))); |
311 } | 292 } |
312 | 293 |
313 } // namespace app_list | 294 } // namespace app_list |
OLD | NEW |