Don't show supervised user as "already on this device" while they're being imported.
[chromium-blink-merge.git] / chrome / browser / ui / webui / signin / login_ui_service_unittest.cc
blob3568802c3b6475bcd8096d62322448941b4fd3c2
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
7 #include "base/compiler_specific.h"
8 #include "base/logging.h"
9 #include "testing/gtest/include/gtest/gtest.h"
11 class TestLoginUI : public LoginUIService::LoginUI {
12 public:
13 TestLoginUI() { }
14 ~TestLoginUI() override {}
15 void FocusUI() override {}
16 void CloseUI() override {}
18 private:
19 DISALLOW_COPY_AND_ASSIGN(TestLoginUI);
22 class TestObserver : public LoginUIService::Observer {
23 public:
24 TestObserver() : ui_shown_count_(0),
25 ui_closed_count_(0) {
28 int ui_shown_count() const { return ui_shown_count_; }
29 int ui_closed_count() const { return ui_closed_count_; }
31 private:
32 void OnLoginUIShown(LoginUIService::LoginUI* ui) override {
33 ++ui_shown_count_;
36 void OnLoginUIClosed(LoginUIService::LoginUI* ui) override {
37 ++ui_closed_count_;
40 int ui_shown_count_;
41 int ui_closed_count_;
43 DISALLOW_COPY_AND_ASSIGN(TestObserver);
46 class LoginUIServiceTest : public testing::Test {
47 public:
48 LoginUIServiceTest() : service_(NULL) { }
49 ~LoginUIServiceTest() override {}
51 protected:
52 LoginUIService service_;
53 TestObserver observer_;
55 DISALLOW_COPY_AND_ASSIGN(LoginUIServiceTest);
58 // Test that the observer is called back when login UI is shown
59 // or closed.
60 TEST_F(LoginUIServiceTest, LoginUIServiceObserver) {
61 service_.AddObserver(&observer_);
62 EXPECT_EQ(NULL, service_.current_login_ui());
63 TestLoginUI ui;
64 service_.SetLoginUI(&ui);
65 EXPECT_EQ(1, observer_.ui_shown_count());
67 // If a different UI is closed than the one that was shown, no
68 // notification should be fired.
69 TestLoginUI other_ui;
70 service_.LoginUIClosed(&other_ui);
71 EXPECT_EQ(1, observer_.ui_shown_count());
73 // If the right UI is closed, notification should be fired.
74 service_.LoginUIClosed(&ui);
75 EXPECT_EQ(1, observer_.ui_closed_count());
76 service_.RemoveObserver(&observer_);