• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
set_should_show_display_notification(bool should_show)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