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

Side by Side Diff: ash/launcher/scoped_observer_with_duplicated_sources_unittest.cc

Issue 23534023: ash: Minor cleanup, move more files from launcher to shelf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « ash/launcher/scoped_observer_with_duplicated_sources.h ('k') | ash/shelf/overflow_bubble.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 #include "ash/launcher/scoped_observer_with_duplicated_sources.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 class TestObserver {
11 public:
12 TestObserver() {}
13 ~TestObserver() {}
14
15 private:
16 DISALLOW_COPY_AND_ASSIGN(TestObserver);
17 };
18
19 class TestSource {
20 public:
21 TestSource() : observer_count_(0) {}
22 ~TestSource() {}
23
24 void AddObserver(TestObserver* observer) {
25 observer_count_++;
26 }
27 void RemoveObserver(TestObserver* observer) {
28 observer_count_--;
29 }
30
31 int GetObserverCount() {
32 return observer_count_;
33 }
34
35 private:
36 int observer_count_;
37
38 DISALLOW_COPY_AND_ASSIGN(TestSource);
39 };
40
41 TEST(ScopedObserverWithDuplicatedSourcesTest, DuplicatedSource) {
42 TestObserver observer;
43 TestSource source1;
44 TestSource source2;
45
46 ScopedObserverWithDuplicatedSources<TestSource, TestObserver>
47 observers(&observer);
48 EXPECT_EQ(0, source1.GetObserverCount());
49 EXPECT_FALSE(observers.IsObserving(&source1));
50 EXPECT_EQ(0, source2.GetObserverCount());
51 EXPECT_FALSE(observers.IsObserving(&source2));
52
53 // Add |source1|.
54 observers.Add(&source1);
55 EXPECT_EQ(1, source1.GetObserverCount());
56 EXPECT_TRUE(observers.IsObserving(&source1));
57 // AddObserver of TestSource is called only once.
58 observers.Add(&source1);
59 EXPECT_EQ(1, source1.GetObserverCount());
60 EXPECT_TRUE(observers.IsObserving(&source1));
61
62 // Add |source2|.
63 observers.Add(&source2);
64 EXPECT_EQ(1, source2.GetObserverCount());
65 EXPECT_TRUE(observers.IsObserving(&source2));
66
67 // Remove |source1|.
68 observers.Remove(&source1);
69 EXPECT_EQ(1, source1.GetObserverCount());
70 EXPECT_TRUE(observers.IsObserving(&source1));
71
72 // Remove |source2|.
73 observers.Remove(&source2);
74 EXPECT_EQ(0, source2.GetObserverCount());
75 EXPECT_FALSE(observers.IsObserving(&source2));
76
77 // Remove |source1| again.
78 observers.Remove(&source1);
79 // In this time, |observer| is removed from |source1|.
80 EXPECT_EQ(0, source1.GetObserverCount());
81 EXPECT_FALSE(observers.IsObserving(&source1));
82 }
OLDNEW
« no previous file with comments | « ash/launcher/scoped_observer_with_duplicated_sources.h ('k') | ash/shelf/overflow_bubble.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698