Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / ui / webui / signin / login_ui_service_unittest.cc
blobfa14bf18cf066b6bb9959627977b92c41c084e2d
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 virtual ~TestLoginUI() { }
15 virtual void FocusUI() OVERRIDE { }
16 virtual 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 virtual void OnLoginUIShown(LoginUIService::LoginUI* ui) OVERRIDE {
33 ++ui_shown_count_;
36 virtual 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 virtual ~LoginUIServiceTest() { }
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_);