blob: 8e4278f62f90083322d8bf0c6055cb5c38709483 [file] [log] [blame]
// 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 "chrome/browser/notifications/notification_display_service_tester.h"
#include "chrome/browser/notifications/notification.h"
#include "chrome/browser/notifications/notification_display_service.h"
#include "chrome/browser/notifications/notification_display_service_factory.h"
#include "chrome/browser/notifications/stub_notification_display_service.h"
#include "chrome/browser/profiles/profile.h"
#include "components/keyed_service/core/keyed_service.h"
NotificationDisplayServiceTester::NotificationDisplayServiceTester(
Profile* profile)
: profile_(profile) {
DCHECK(profile_);
display_service_ = static_cast<StubNotificationDisplayService*>(
NotificationDisplayServiceFactory::GetInstance()->SetTestingFactoryAndUse(
profile_, &StubNotificationDisplayService::FactoryForTests));
}
NotificationDisplayServiceTester::~NotificationDisplayServiceTester() {
NotificationDisplayServiceFactory::GetInstance()->SetTestingFactory(profile_,
nullptr);
}
void NotificationDisplayServiceTester::SetNotificationAddedClosure(
base::RepeatingClosure closure) {
display_service_->SetNotificationAddedClosure(std::move(closure));
}
std::vector<Notification>
NotificationDisplayServiceTester::GetDisplayedNotificationsForType(
NotificationCommon::Type type) {
return display_service_->GetDisplayedNotificationsForType(type);
}
void NotificationDisplayServiceTester::RemoveNotification(
NotificationCommon::Type type,
const std::string& notification_id,
bool by_user,
bool silent) {
display_service_->RemoveNotification(type, notification_id, by_user, silent);
}
void NotificationDisplayServiceTester::RemoveAllNotifications(
NotificationCommon::Type type,
bool by_user) {
display_service_->RemoveAllNotifications(type, by_user);
}