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

Unified Diff: chrome/browser/extensions/api/notifications/extension_notification_handler_unittest.cc

Issue 2875673002: Minimize the delegate dependencies for native extension notifications. (Closed)
Patch Set: review Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/notifications/extension_notification_handler_unittest.cc
diff --git a/chrome/browser/extensions/api/notifications/extension_notification_handler_unittest.cc b/chrome/browser/extensions/api/notifications/extension_notification_handler_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..239e8681b72086505856271afa1705dc15a1ef6d
--- /dev/null
+++ b/chrome/browser/extensions/api/notifications/extension_notification_handler_unittest.cc
@@ -0,0 +1,98 @@
+// Copyright 2017 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 <string>
+
+#include "base/strings/nullable_string16.h"
+#include "chrome/browser/extensions/api/notifications/extension_notification_handler.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
+#include "content/public/test/test_browser_thread_bundle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace extensions {
+namespace {
+
+static const char kChromeExtensionOrigin[] =
+ "chrome-extension://gclcddgeeaknflkijpcbplmhbkonmlij/";
+static const char kChromeExtensionId[] = "gclcddgeeaknflkijpcbplmhbkonmlij";
+static const char kChromeNotificationId[] =
+ "gclcddgeeaknflkijpcbplmhbkonmlij-id1";
+
+class TestExtensionNotificationHandler : public ExtensionNotificationHandler {
+ public:
+ // Set expected arguments for this test handler.
+ void SetTestExpectations(const std::string& extension_id,
+ const std::string& event_name,
+ size_t param_count) {
+ extension_id_ = extension_id;
+ event_name_ = event_name;
+ param_count_ = param_count;
+ }
+
+ protected:
+ void SendEvent(Profile* profile,
+ const std::string& extension_id,
+ events::HistogramValue histogram_value,
+ const std::string& event_name,
+ EventRouter::UserGestureState user_gesture,
+ std::unique_ptr<base::ListValue> args) final {
+ EXPECT_EQ(event_name_, event_name);
+ EXPECT_EQ(extension_id_, extension_id);
+ EXPECT_EQ(param_count_, args->GetSize());
+ }
+
+ private:
+ std::string extension_id_;
+ std::string event_name_;
+ size_t param_count_;
+};
+} // namespace
+
+class ExtensionNotificationHandlerTest : public testing::Test {
+ public:
+ ExtensionNotificationHandlerTest()
+ : thread_bundle_(content::TestBrowserThreadBundle::DEFAULT) {}
+
+ private:
+ content::TestBrowserThreadBundle thread_bundle_;
+};
+
+TEST_F(ExtensionNotificationHandlerTest, CloseHandler) {
+ EXPECT_TRUE(true);
+ TestingProfile::Builder builder;
+ std::unique_ptr<TestingProfile> profile = builder.Build();
+
+ TestExtensionNotificationHandler handler;
+ handler.SetTestExpectations(kChromeExtensionId, "notifications.onClosed", 2);
+ handler.OnClose(profile.get(), kChromeExtensionOrigin, kChromeNotificationId,
+ false);
+}
+
+TEST_F(ExtensionNotificationHandlerTest, ClickHandler) {
+ EXPECT_TRUE(true);
+ TestingProfile::Builder builder;
+ std::unique_ptr<TestingProfile> profile = builder.Build();
+
+ TestExtensionNotificationHandler handler;
+ handler.SetTestExpectations(kChromeExtensionId, "notifications.onClicked", 1);
+ handler.OnClick(profile.get(), kChromeExtensionOrigin, kChromeNotificationId,
+ -1, base::NullableString16() /* reply */);
+}
+
+TEST_F(ExtensionNotificationHandlerTest, ClickHandlerButton) {
+ EXPECT_TRUE(true);
+ TestingProfile::Builder builder;
+ std::unique_ptr<TestingProfile> profile = builder.Build();
+
+ TestExtensionNotificationHandler handler;
+ handler.SetTestExpectations(kChromeExtensionId,
+ "notifications.onButtonClicked", 2);
+ handler.OnClick(profile.get(), kChromeExtensionOrigin, kChromeNotificationId,
+ 1, base::NullableString16() /* reply */);
+}
+
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698