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

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

Issue 2185743002: Remove ash::ScopedObserverWithDuplicatedSources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
(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/shelf/scoped_observer_with_duplicated_sources.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 class TestObserver {
10 public:
11 TestObserver() {}
12 ~TestObserver() {}
13
14 private:
15 DISALLOW_COPY_AND_ASSIGN(TestObserver);
16 };
17
18 class TestSource {
19 public:
20 TestSource() : observer_count_(0) {}
21 ~TestSource() {}
22
23 void AddObserver(TestObserver* observer) { observer_count_++; }
24 void RemoveObserver(TestObserver* observer) { observer_count_--; }
25
26 int GetObserverCount() { return observer_count_; }
27
28 private:
29 int observer_count_;
30
31 DISALLOW_COPY_AND_ASSIGN(TestSource);
32 };
33
34 TEST(ScopedObserverWithDuplicatedSourcesTest, DuplicatedSource) {
35 TestObserver observer;
36 TestSource source1;
37 TestSource source2;
38
39 ScopedObserverWithDuplicatedSources<TestSource, TestObserver> observers(
40 &observer);
41 EXPECT_EQ(0, source1.GetObserverCount());
42 EXPECT_FALSE(observers.IsObserving(&source1));
43 EXPECT_EQ(0, source2.GetObserverCount());
44 EXPECT_FALSE(observers.IsObserving(&source2));
45
46 // Add |source1|.
47 observers.Add(&source1);
48 EXPECT_EQ(1, source1.GetObserverCount());
49 EXPECT_TRUE(observers.IsObserving(&source1));
50 // AddObserver of TestSource is called only once.
51 observers.Add(&source1);
52 EXPECT_EQ(1, source1.GetObserverCount());
53 EXPECT_TRUE(observers.IsObserving(&source1));
54
55 // Add |source2|.
56 observers.Add(&source2);
57 EXPECT_EQ(1, source2.GetObserverCount());
58 EXPECT_TRUE(observers.IsObserving(&source2));
59
60 // Remove |source1|.
61 observers.Remove(&source1);
62 EXPECT_EQ(1, source1.GetObserverCount());
63 EXPECT_TRUE(observers.IsObserving(&source1));
64
65 // Remove |source2|.
66 observers.Remove(&source2);
67 EXPECT_EQ(0, source2.GetObserverCount());
68 EXPECT_FALSE(observers.IsObserving(&source2));
69
70 // Remove |source1| again.
71 observers.Remove(&source1);
72 // In this time, |observer| is removed from |source1|.
73 EXPECT_EQ(0, source1.GetObserverCount());
74 EXPECT_FALSE(observers.IsObserving(&source1));
75 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698