| Index: ui/app_list/cocoa/apps_search_box_controller_unittest.mm
|
| diff --git a/ui/app_list/cocoa/apps_search_box_controller_unittest.mm b/ui/app_list/cocoa/apps_search_box_controller_unittest.mm
|
| index a822733f41546e41f9d2565feecec4ddfd958465..d410380c8563bf641115517e5f36e5f1a486aaa8 100644
|
| --- a/ui/app_list/cocoa/apps_search_box_controller_unittest.mm
|
| +++ b/ui/app_list/cocoa/apps_search_box_controller_unittest.mm
|
| @@ -9,6 +9,7 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #import "testing/gtest_mac.h"
|
| #include "ui/app_list/app_list_menu.h"
|
| +#include "ui/app_list/app_list_model_observer.h"
|
| #include "ui/app_list/search_box_model.h"
|
| #include "ui/app_list/test/app_list_test_model.h"
|
| #include "ui/app_list/test/app_list_test_view_delegate.h"
|
| @@ -74,7 +75,8 @@
|
| namespace app_list {
|
| namespace test {
|
|
|
| -class AppsSearchBoxControllerTest : public ui::CocoaTest {
|
| +class AppsSearchBoxControllerTest : public ui::CocoaTest,
|
| + public AppListModelObserver {
|
| public:
|
| AppsSearchBoxControllerTest() {
|
| Init();
|
| @@ -86,12 +88,14 @@ class AppsSearchBoxControllerTest : public ui::CocoaTest {
|
| NSMakeRect(0, 0, 400, 100)]);
|
| delegate_.reset([[TestAppsSearchBoxDelegate alloc] init]);
|
| [apps_search_box_controller_ setDelegate:delegate_];
|
| + [delegate_ appListModel]->AddObserver(this);
|
|
|
| ui::CocoaTest::SetUp();
|
| [[test_window() contentView] addSubview:[apps_search_box_controller_ view]];
|
| }
|
|
|
| virtual void TearDown() OVERRIDE {
|
| + [delegate_ appListModel]->RemoveObserver(this);
|
| [apps_search_box_controller_ setDelegate:nil];
|
| ui::CocoaTest::TearDown();
|
| }
|
| @@ -104,6 +108,13 @@ class AppsSearchBoxControllerTest : public ui::CocoaTest {
|
| }
|
|
|
| protected:
|
| + // Overridden from app_list::AppListModelObserver:
|
| + virtual void OnAppListModelUsersChanged() OVERRIDE {
|
| + [apps_search_box_controller_ rebuildMenu];
|
| + }
|
| +
|
| + virtual void OnAppListModelSigninStatusChanged() OVERRIDE {}
|
| +
|
| base::scoped_nsobject<TestAppsSearchBoxDelegate> delegate_;
|
| base::scoped_nsobject<AppsSearchBoxController> apps_search_box_controller_;
|
|
|
| @@ -222,5 +233,33 @@ TEST_F(AppsSearchBoxControllerTest, SearchBoxMenu) {
|
| [settings_item title]);
|
| }
|
|
|
| +// Test adding another user, and changing an existing one.
|
| +TEST_F(AppsSearchBoxControllerTest, SearchBoxMenuChangingUsers) {
|
| + app_list::AppListModel::Users users = [delegate_ appListModel]->users();
|
| + EXPECT_EQ(2u, users.size());
|
| + ui::MenuModel* menu_model
|
| + = [apps_search_box_controller_ appListMenu]->menu_model();
|
| + // Adding one to account for the empty item at index 0 in Cocoa popup menus.
|
| + int non_user_items = menu_model->GetItemCount() - users.size() + 1;
|
| +
|
| + NSPopUpButton* menu_control = [apps_search_box_controller_ menuControl];
|
| + EXPECT_EQ(2, [[menu_control menu] numberOfItems] - non_user_items);
|
| + EXPECT_NSEQ(base::SysUTF16ToNSString(users[0].name),
|
| + [[[menu_control menu] itemAtIndex:1] title]);
|
| +
|
| + users[0].name = ASCIIToUTF16("renamed user");
|
| + app_list::AppListModel::User new_user;
|
| + new_user.name = ASCIIToUTF16("user3");
|
| + users.push_back(new_user);
|
| + [delegate_ appListModel]->SetUsers(users);
|
| +
|
| + // Should now be an extra item, and it should have correct titles.
|
| + EXPECT_EQ(3, [[menu_control menu] numberOfItems] - non_user_items);
|
| + EXPECT_NSEQ(base::SysUTF16ToNSString(users[0].name),
|
| + [[[menu_control menu] itemAtIndex:1] title]);
|
| + EXPECT_NSEQ(base::SysUTF16ToNSString(new_user.name),
|
| + [[[menu_control menu] itemAtIndex:3] title]);
|
| +}
|
| +
|
| } // namespace test
|
| } // namespace app_list
|
|
|