summaryrefslogtreecommitdiffstats
path: root/chrome/common/notification_service_unittest.cc
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-22 23:01:49 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-22 23:01:49 +0000
commit4906598af29836448e28a876cac46929a6839069 (patch)
treefc7e56bfed4399cd78bd9da217d879e9fba53da9 /chrome/common/notification_service_unittest.cc
parent09ff32419cb6527d68a20dcbfa74e9bfd0871711 (diff)
downloadchromium_src-4906598af29836448e28a876cac46929a6839069.zip
chromium_src-4906598af29836448e28a876cac46929a6839069.tar.gz
chromium_src-4906598af29836448e28a876cac46929a6839069.tar.bz2
The last NotificationRegistrar patch: fix the unittests to use a registrar, and turn off access to AddObserver()/RemoveObserver() entirely.
This eliminates one element of the unittests which tested that removing an observer that doesn't exist is harmless; in NotificationRegistrar-land, doing this will NOTREACHED(). BUG=2381 Review URL: http://codereview.chromium.org/114044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16814 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/notification_service_unittest.cc')
-rw-r--r--chrome/common/notification_service_unittest.cc68
1 files changed, 23 insertions, 45 deletions
diff --git a/chrome/common/notification_service_unittest.cc b/chrome/common/notification_service_unittest.cc
index 4fed35f..d22b162 100644
--- a/chrome/common/notification_service_unittest.cc
+++ b/chrome/common/notification_service_unittest.cc
@@ -2,12 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "chrome/common/notification_registrar.h"
#include "chrome/common/notification_service.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
class NotificationServiceTest: public testing::Test {
+ protected:
+ NotificationRegistrar registrar_;
};
class TestObserver : public NotificationObserver {
@@ -32,7 +35,7 @@ class TestSource {};
} // namespace
-TEST(NotificationServiceTest, Basic) {
+TEST_F(NotificationServiceTest, Basic) {
TestSource test_source;
TestSource other_source;
@@ -47,25 +50,20 @@ TEST(NotificationServiceTest, Basic) {
TestObserver all_types_test_source;
TestObserver idle_test_source;
- NotificationService* service = NotificationService::current();
-
// Make sure it doesn't freak out when there are no observers.
+ NotificationService* service = NotificationService::current();
service->Notify(NotificationType::IDLE,
Source<TestSource>(&test_source),
NotificationService::NoDetails());
- service->AddObserver(&all_types_all_sources,
- NotificationType::ALL,
- NotificationService::AllSources());
- service->AddObserver(&idle_all_sources,
- NotificationType::IDLE,
- NotificationService::AllSources());
- service->AddObserver(&all_types_test_source,
- NotificationType::ALL,
- Source<TestSource>(&test_source));
- service->AddObserver(&idle_test_source,
- NotificationType::IDLE,
- Source<TestSource>(&test_source));
+ registrar_.Add(&all_types_all_sources, NotificationType::ALL,
+ NotificationService::AllSources());
+ registrar_.Add(&idle_all_sources, NotificationType::IDLE,
+ NotificationService::AllSources());
+ registrar_.Add(&all_types_test_source, NotificationType::ALL,
+ Source<TestSource>(&test_source));
+ registrar_.Add(&idle_test_source, NotificationType::IDLE,
+ Source<TestSource>(&test_source));
EXPECT_EQ(0, all_types_all_sources.notification_count());
EXPECT_EQ(0, idle_all_sources.notification_count());
@@ -118,18 +116,7 @@ TEST(NotificationServiceTest, Basic) {
EXPECT_EQ(2, all_types_test_source.notification_count());
EXPECT_EQ(1, idle_test_source.notification_count());
- service->RemoveObserver(&all_types_all_sources,
- NotificationType::ALL,
- NotificationService::AllSources());
- service->RemoveObserver(&idle_all_sources,
- NotificationType::IDLE,
- NotificationService::AllSources());
- service->RemoveObserver(&all_types_test_source,
- NotificationType::ALL,
- Source<TestSource>(&test_source));
- service->RemoveObserver(&idle_test_source,
- NotificationType::IDLE,
- Source<TestSource>(&test_source));
+ registrar_.RemoveAll();
service->Notify(NotificationType::IDLE,
Source<TestSource>(&test_source),
@@ -139,44 +126,35 @@ TEST(NotificationServiceTest, Basic) {
EXPECT_EQ(3, idle_all_sources.notification_count());
EXPECT_EQ(2, all_types_test_source.notification_count());
EXPECT_EQ(1, idle_test_source.notification_count());
-
- // Removing an observer that isn't there is a no-op, this should be fine.
- service->RemoveObserver(&all_types_all_sources,
- NotificationType::ALL,
- NotificationService::AllSources());
}
-TEST(NotificationServiceTest, MultipleRegistration) {
+TEST_F(NotificationServiceTest, MultipleRegistration) {
TestSource test_source;
TestObserver idle_test_source;
NotificationService* service = NotificationService::current();
- service->AddObserver(&idle_test_source,
- NotificationType::IDLE,
- Source<TestSource>(&test_source));
- service->AddObserver(&idle_test_source,
- NotificationType::ALL,
- Source<TestSource>(&test_source));
+ registrar_.Add(&idle_test_source, NotificationType::IDLE,
+ Source<TestSource>(&test_source));
+ registrar_.Add(&idle_test_source, NotificationType::ALL,
+ Source<TestSource>(&test_source));
service->Notify(NotificationType::IDLE,
Source<TestSource>(&test_source),
NotificationService::NoDetails());
EXPECT_EQ(2, idle_test_source.notification_count());
- service->RemoveObserver(&idle_test_source,
- NotificationType::IDLE,
- Source<TestSource>(&test_source));
+ registrar_.Remove(&idle_test_source, NotificationType::IDLE,
+ Source<TestSource>(&test_source));
service->Notify(NotificationType::IDLE,
Source<TestSource>(&test_source),
NotificationService::NoDetails());
EXPECT_EQ(3, idle_test_source.notification_count());
- service->RemoveObserver(&idle_test_source,
- NotificationType::ALL,
- Source<TestSource>(&test_source));
+ registrar_.Remove(&idle_test_source, NotificationType::ALL,
+ Source<TestSource>(&test_source));
service->Notify(NotificationType::IDLE,
Source<TestSource>(&test_source),