Home | History | Annotate | Download | only in test
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_
      6 #define ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_
      7 
      8 #include "ash/system/tray/default_system_tray_delegate.h"
      9 #include "base/time/time.h"
     10 
     11 namespace ash {
     12 namespace test {
     13 
     14 class TestSystemTrayDelegate : public DefaultSystemTrayDelegate {
     15  public:
     16   TestSystemTrayDelegate();
     17   virtual ~TestSystemTrayDelegate();
     18 
     19   // Changes the login status when initially the delegate is created. This will
     20   // be called before AshTestBase::SetUp() to test the case when chrome is
     21   // restarted right after the login (such like a flag is set).
     22   // This value will be reset in AshTestHelper::TearDown,  most test fixtures
     23   // don't need to care its lifecycle.
     24   static void SetInitialLoginStatus(user::LoginStatus login_status);
     25 
     26   // Changes the current login status in the test. This also invokes
     27   // UpdateAfterLoginStatusChange(). Usually this is called in the test code to
     28   // set up a login status. This will fit to most of the test cases, but this
     29   // cannot be set during the initialization. To test the initialization,
     30   // consider using SetInitialLoginStatus() instead.
     31   void SetLoginStatus(user::LoginStatus login_status);
     32 
     33   void set_should_show_display_notification(bool should_show) {
     34     should_show_display_notification_ = should_show;
     35   }
     36 
     37   // Updates the session length limit so that the limit will come from now in
     38   // |new_limit|.
     39   void SetSessionLengthLimitForTest(const base::TimeDelta& new_limit);
     40 
     41   // Clears the session length limit.
     42   void ClearSessionLengthLimit();
     43 
     44   // Overridden from SystemTrayDelegate:
     45   virtual user::LoginStatus GetUserLoginStatus() const OVERRIDE;
     46   virtual bool IsUserSupervised() const OVERRIDE;
     47   virtual bool ShouldShowDisplayNotification() OVERRIDE;
     48   virtual bool GetSessionStartTime(
     49       base::TimeTicks* session_start_time) OVERRIDE;
     50   virtual bool GetSessionLengthLimit(
     51       base::TimeDelta* session_length_limit) OVERRIDE;
     52   virtual void ShutDown() OVERRIDE;
     53   virtual void SignOut() OVERRIDE;
     54 
     55  private:
     56   bool should_show_display_notification_;
     57   user::LoginStatus login_status_;
     58   base::TimeDelta session_length_limit_;
     59   bool session_length_limit_set_;
     60 
     61   DISALLOW_COPY_AND_ASSIGN(TestSystemTrayDelegate);
     62 };
     63 
     64 }  // namespace test
     65 }  // namespace ash
     66 
     67 #endif  // ASH_TEST_TEST_SYSTEM_TRAY_DELEGATE_H_
     68