910e62b5创建于 1月15日历史提交
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/badging/test_badge_manager_delegate.h"

#include "chrome/browser/badging/badge_manager.h"
#include "chrome/browser/badging/badge_manager_delegate.h"
#include "chrome/browser/profiles/profile.h"

namespace badging {

TestBadgeManagerDelegate::TestBadgeManagerDelegate(Profile* profile,
                                                   BadgeManager* badge_manager)
    : BadgeManagerDelegate(profile, badge_manager) {}

TestBadgeManagerDelegate::~TestBadgeManagerDelegate() = default;

void TestBadgeManagerDelegate::SetOnBadgeChanged(
    base::RepeatingCallback<void()> on_badge_changed) {
  on_badge_changed_ = on_badge_changed;
}

void TestBadgeManagerDelegate::OnAppBadgeUpdated(const webapps::AppId& app_id) {
  const auto& value = badge_manager()->GetBadgeValue(app_id);
  if (!value)
    cleared_badges_.push_back(app_id);
  else
    set_badges_.push_back(std::make_pair(app_id, value.value()));

  if (on_badge_changed_)
    on_badge_changed_.Run();
}

void TestBadgeManagerDelegate::ResetBadges() {
  cleared_badges_.clear();
  set_badges_.clear();
}

}  // namespace badging