Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: athena/env/athena_env_unittest.cc

Issue 544953003: Supprot V2 app: step1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "athena/env/public/athena_env.h" 5 #include "athena/env/public/athena_env.h"
6 6
7 #include "athena/test/athena_test_base.h" 7 #include "athena/test/athena_test_base.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "ui/gfx/display.h" 9 #include "ui/gfx/display.h"
10 #include "ui/gfx/screen.h" 10 #include "ui/gfx/screen.h"
11 11
12 namespace athena { 12 namespace athena {
13 13
14 typedef test::AthenaTestBase AthenaEnvTest;
15
16 namespace {
17
18 class TerminatingCallback {
19 public:
20 TerminatingCallback()
21 : on_terminating_count_(0),
22 on_terminating_2_count_(0) {
23 }
24
25 void OnTerminating() {
26 on_terminating_count_ ++;
27 }
28
29 void OnTerminating2() {
30 on_terminating_2_count_ ++;
31 }
32
33 int on_terminating_count() const { return on_terminating_count_; }
34 int on_terminating_2_count() const { return on_terminating_2_count_; }
35
36 void Reset() {
37 on_terminating_count_ = 0;
38 on_terminating_2_count_ = 0;
39 }
40
41 private:
42 int on_terminating_count_;
43 int on_terminating_2_count_;
44
45 DISALLOW_COPY_AND_ASSIGN(TerminatingCallback);
46 };
47
48 } // namespace
49
50 TEST_F(AthenaEnvTest, TerminatingCallback) {
51 TerminatingCallback callback_1;
52 TerminatingCallback callback_2;
53 AthenaEnv* env = AthenaEnv::Get();
54 base::Closure cb_1_1 =
55 base::Bind(&TerminatingCallback::OnTerminating,
56 base::Unretained(&callback_1));
57 base::Closure cb_1_2 =
58 base::Bind(&TerminatingCallback::OnTerminating2,
59 base::Unretained(&callback_1));
60 base::Closure cb_2_1 =
61 base::Bind(&TerminatingCallback::OnTerminating,
62 base::Unretained(&callback_2));
63
64 env->AddTerminatingCallback(cb_1_1);
65 env->AddTerminatingCallback(cb_1_2);
66 env->AddTerminatingCallback(cb_2_1);
67 env->OnTerminating();
68
69 EXPECT_EQ(1, callback_1.on_terminating_count());
70 EXPECT_EQ(1, callback_1.on_terminating_2_count());
71 EXPECT_EQ(1, callback_2.on_terminating_count());
72
73 // Remove callbacks.
74 callback_1.Reset();
75 callback_2.Reset();
76 env->RemoveTerminatingCallback(cb_1_2);
77 env->OnTerminating();
78 EXPECT_EQ(1, callback_1.on_terminating_count());
79 EXPECT_EQ(0, callback_1.on_terminating_2_count());
80 EXPECT_EQ(1, callback_2.on_terminating_count());
81
82 callback_1.Reset();
83 callback_2.Reset();
84 env->RemoveTerminatingCallback(cb_1_1);
85 env->OnTerminating();
86 EXPECT_EQ(0, callback_1.on_terminating_count());
87 EXPECT_EQ(0, callback_1.on_terminating_2_count());
88 EXPECT_EQ(1, callback_2.on_terminating_count());
89
90 // Add removed callback.
91 callback_1.Reset();
92 callback_2.Reset();
93 env->AddTerminatingCallback(cb_1_2);
94 env->OnTerminating();
95 EXPECT_EQ(0, callback_1.on_terminating_count());
96 EXPECT_EQ(1, callback_1.on_terminating_2_count());
97 EXPECT_EQ(1, callback_2.on_terminating_count());
98
99 // Adding empty callback should not fail.
100 env->AddTerminatingCallback(base::Closure());
101 env->OnTerminating();
102 }
103
14 namespace { 104 namespace {
15 105
16 class AthenaShutdownTest : public test::AthenaTestBase { 106 class AthenaShutdownTest : public test::AthenaTestBase {
17 public: 107 public:
18 AthenaShutdownTest() {} 108 AthenaShutdownTest() {}
19 virtual ~AthenaShutdownTest() {} 109 virtual ~AthenaShutdownTest() {}
20 110
21 virtual void TearDown() { 111 virtual void TearDown() {
22 test::AthenaTestBase::TearDown(); 112 test::AthenaTestBase::TearDown();
23 ASSERT_NE( 113 ASSERT_NE(
24 gfx::Display::kInvalidDisplayID, 114 gfx::Display::kInvalidDisplayID,
25 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().id()); 115 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().id());
26 } 116 }
27 117
28 private: 118 private:
29 DISALLOW_COPY_AND_ASSIGN(AthenaShutdownTest); 119 DISALLOW_COPY_AND_ASSIGN(AthenaShutdownTest);
30 }; 120 };
31 121
32 } // namespace athena 122 } // namespace
33 123
34 // gfx::Screen should be accessible after shutdown. 124 // gfx::Screen should be accessible after shutdown.
35 TEST_F(AthenaShutdownTest, Shutdown) { 125 TEST_F(AthenaShutdownTest, Shutdown) {
36 } 126 }
37 127
38 } // namespace athena 128 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698