// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_ #define ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_ #include "ash/system/tray/default_system_tray_delegate.h" #include "base/time/time.h" namespace ash { namespace test { class TestSystemTrayDelegate : public DefaultSystemTrayDelegate { public: TestSystemTrayDelegate(); virtual ~TestSystemTrayDelegate(); // Changes the login status when initially the delegate is created. This will // be called before AshTestBase::SetUp() to test the case when chrome is // restarted right after the login (such like a flag is set). // This value will be reset in AshTestHelper::TearDown, most test fixtures // don't need to care its lifecycle. static void SetInitialLoginStatus(user::LoginStatus login_status); // Changes the current login status in the test. This also invokes // UpdateAfterLoginStatusChange(). Usually this is called in the test code to // set up a login status. This will fit to most of the test cases, but this // cannot be set during the initialization. To test the initialization, // consider using SetInitialLoginStatus() instead. void SetLoginStatus(user::LoginStatus login_status); void set_should_show_display_notification(bool should_show) { should_show_display_notification_ = should_show; } // Updates the session length limit so that the limit will come from now in // |new_limit|. void SetSessionLengthLimitForTest(const base::TimeDelta& new_limit); // Clears the session length limit. void ClearSessionLengthLimit(); // Overridden from SystemTrayDelegate: virtual user::LoginStatus GetUserLoginStatus() const OVERRIDE; virtual bool ShouldShowDisplayNotification() OVERRIDE; virtual bool GetSessionStartTime( base::TimeTicks* session_start_time) OVERRIDE; virtual bool GetSessionLengthLimit( base::TimeDelta* session_length_limit) OVERRIDE; virtual void ShutDown() OVERRIDE; virtual void SignOut() OVERRIDE; private: bool should_show_display_notification_; user::LoginStatus login_status_; base::TimeDelta session_length_limit_; bool session_length_limit_set_; DISALLOW_COPY_AND_ASSIGN(TestSystemTrayDelegate); }; } // namespace test } // namespace ash #endif // ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_