Index: base/observer_list_unittest.cc |
=================================================================== |
--- base/observer_list_unittest.cc (revision 96023) |
+++ base/observer_list_unittest.cc (working copy) |
@@ -61,10 +61,9 @@ |
Foo* doomed_; |
}; |
-template <typename ObserverListType> |
class AddInObserve : public Foo { |
public: |
- explicit AddInObserve(ObserverListType* observer_list) |
+ explicit AddInObserve(ObserverList<Foo>* observer_list) |
: added(false), |
observer_list(observer_list), |
adder(1) { |
@@ -77,11 +76,14 @@ |
} |
bool added; |
- ObserverListType* observer_list; |
+ ObserverList<Foo>* observer_list; |
Adder adder; |
}; |
+class ObserverListThreadSafeTest : public testing::Test { |
+}; |
+ |
static const int kThreadRunTime = 2000; // ms to run the multi-threaded test. |
// A thread for use in the ThreadSafeObserver test |
@@ -355,22 +357,10 @@ |
ThreadSafeObserverHarness(3, true); |
} |
-TEST(ObserverListThreadSafeTest, OutlivesMessageLoop) { |
- MessageLoop* loop = new MessageLoop; |
- scoped_refptr<ObserverListThreadSafe<Foo> > observer_list( |
- new ObserverListThreadSafe<Foo>); |
- |
- Adder a(1); |
- observer_list->AddObserver(&a); |
- delete loop; |
- // Test passes if we don't crash here. |
- observer_list->Notify(&Foo::Observe, 1); |
-} |
- |
TEST(ObserverListTest, Existing) { |
ObserverList<Foo> observer_list(ObserverList<Foo>::NOTIFY_EXISTING_ONLY); |
Adder a(1); |
- AddInObserve<ObserverList<Foo> > b(&observer_list); |
+ AddInObserve b(&observer_list); |
observer_list.AddObserver(&a); |
observer_list.AddObserver(&b); |
@@ -387,31 +377,6 @@ |
EXPECT_EQ(1, b.adder.total); |
} |
-// Same as above, but for ObserverListThreadSafe |
-TEST(ObserverListThreadSafeTest, Existing) { |
- MessageLoop loop; |
- scoped_refptr<ObserverListThreadSafe<Foo> > observer_list( |
- new ObserverListThreadSafe<Foo>(ObserverList<Foo>::NOTIFY_EXISTING_ONLY)); |
- Adder a(1); |
- AddInObserve<ObserverListThreadSafe<Foo> > b(observer_list.get()); |
- |
- observer_list->AddObserver(&a); |
- observer_list->AddObserver(&b); |
- |
- observer_list->Notify(&Foo::Observe, 1); |
- loop.RunAllPending(); |
- |
- EXPECT_TRUE(b.added); |
- // B's adder should not have been notified because it was added during |
- // notificaiton. |
- EXPECT_EQ(0, b.adder.total); |
- |
- // Notify again to make sure b's adder is notified. |
- observer_list->Notify(&Foo::Observe, 1); |
- loop.RunAllPending(); |
- EXPECT_EQ(1, b.adder.total); |
-} |
- |
class AddInClearObserve : public Foo { |
public: |
explicit AddInClearObserve(ObserverList<Foo>* list) |