Index: content/common/notification_service_unittest.cc |
=================================================================== |
--- content/common/notification_service_unittest.cc (revision 106380) |
+++ content/common/notification_service_unittest.cc (working copy) |
@@ -1,165 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "content/common/notification_service.h" |
-#include "content/public/browser/notification_types.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-// Bogus class to act as a NotificationSource for the messages. |
-class TestSource {}; |
- |
-class TestObserver : public content::NotificationObserver { |
-public: |
- TestObserver() : notification_count_(0) {} |
- |
- int notification_count() { return notification_count_; } |
- |
- void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- ++notification_count_; |
- } |
- |
-private: |
- int notification_count_; |
-}; |
- |
-} // namespace |
- |
- |
-class NotificationServiceTest : public testing::Test { |
- protected: |
- content::NotificationRegistrar registrar_; |
-}; |
- |
-TEST_F(NotificationServiceTest, Basic) { |
- TestSource test_source; |
- TestSource other_source; |
- |
- // Check the equality operators defined for NotificationSource |
- EXPECT_TRUE(content::Source<TestSource>(&test_source) == |
- content::Source<TestSource>(&test_source)); |
- EXPECT_TRUE(content::Source<TestSource>(&test_source) != |
- content::Source<TestSource>(&other_source)); |
- |
- TestObserver all_types_all_sources; |
- TestObserver idle_all_sources; |
- TestObserver all_types_test_source; |
- TestObserver idle_test_source; |
- |
- // Make sure it doesn't freak out when there are no observers. |
- NotificationService* service = NotificationService::current(); |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- |
- registrar_.Add(&all_types_all_sources, content::NOTIFICATION_ALL, |
- NotificationService::AllSources()); |
- registrar_.Add(&idle_all_sources, content::NOTIFICATION_IDLE, |
- NotificationService::AllSources()); |
- registrar_.Add(&all_types_test_source, content::NOTIFICATION_ALL, |
- content::Source<TestSource>(&test_source)); |
- registrar_.Add(&idle_test_source, content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source)); |
- |
- EXPECT_EQ(0, all_types_all_sources.notification_count()); |
- EXPECT_EQ(0, idle_all_sources.notification_count()); |
- EXPECT_EQ(0, all_types_test_source.notification_count()); |
- EXPECT_EQ(0, idle_test_source.notification_count()); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(1, all_types_all_sources.notification_count()); |
- EXPECT_EQ(1, idle_all_sources.notification_count()); |
- EXPECT_EQ(1, all_types_test_source.notification_count()); |
- EXPECT_EQ(1, idle_test_source.notification_count()); |
- |
- service->Notify(content::NOTIFICATION_BUSY, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(2, all_types_all_sources.notification_count()); |
- EXPECT_EQ(1, idle_all_sources.notification_count()); |
- EXPECT_EQ(2, all_types_test_source.notification_count()); |
- EXPECT_EQ(1, idle_test_source.notification_count()); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&other_source), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(3, all_types_all_sources.notification_count()); |
- EXPECT_EQ(2, idle_all_sources.notification_count()); |
- EXPECT_EQ(2, all_types_test_source.notification_count()); |
- EXPECT_EQ(1, idle_test_source.notification_count()); |
- |
- service->Notify(content::NOTIFICATION_BUSY, |
- content::Source<TestSource>(&other_source), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(4, all_types_all_sources.notification_count()); |
- EXPECT_EQ(2, idle_all_sources.notification_count()); |
- EXPECT_EQ(2, all_types_test_source.notification_count()); |
- EXPECT_EQ(1, idle_test_source.notification_count()); |
- |
- // Try send with NULL source. |
- service->Notify(content::NOTIFICATION_IDLE, |
- NotificationService::AllSources(), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(5, all_types_all_sources.notification_count()); |
- 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()); |
- |
- registrar_.RemoveAll(); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- |
- EXPECT_EQ(5, all_types_all_sources.notification_count()); |
- 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()); |
-} |
- |
-TEST_F(NotificationServiceTest, MultipleRegistration) { |
- TestSource test_source; |
- |
- TestObserver idle_test_source; |
- |
- NotificationService* service = NotificationService::current(); |
- |
- registrar_.Add(&idle_test_source, content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source)); |
- registrar_.Add(&idle_test_source, content::NOTIFICATION_ALL, |
- content::Source<TestSource>(&test_source)); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- EXPECT_EQ(2, idle_test_source.notification_count()); |
- |
- registrar_.Remove(&idle_test_source, content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source)); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- EXPECT_EQ(3, idle_test_source.notification_count()); |
- |
- registrar_.Remove(&idle_test_source, content::NOTIFICATION_ALL, |
- content::Source<TestSource>(&test_source)); |
- |
- service->Notify(content::NOTIFICATION_IDLE, |
- content::Source<TestSource>(&test_source), |
- NotificationService::NoDetails()); |
- EXPECT_EQ(3, idle_test_source.notification_count()); |
-} |