chromium/chromeos/ash/components/tether/fake_notification_presenter.cc

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ash/components/tether/fake_notification_presenter.h"

#include "base/functional/bind.h"
#include "base/memory/ptr_util.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace ash::tether {

FakeNotificationPresenter::FakeNotificationPresenter()
    : potential_hotspot_state_(
          NotificationPresenter::PotentialHotspotNotificationState::
              NO_HOTSPOT_NOTIFICATION_SHOWN),
      is_setup_required_notification_shown_(false),
      is_connection_failed_notification_shown_(false) {}

FakeNotificationPresenter::~FakeNotificationPresenter() = default;

std::optional<std::string>
FakeNotificationPresenter::GetPotentialHotspotRemoteDeviceId() {
  EXPECT_EQ(potential_hotspot_state_,
            NotificationPresenter::PotentialHotspotNotificationState::
                SINGLE_HOTSPOT_NEARBY_SHOWN);
  return potential_hotspot_tether_host_id_;
}

void FakeNotificationPresenter::NotifyPotentialHotspotNearby(
    const std::string& device_id,
    const std::string& device_name,
    int signal_strength) {
  potential_hotspot_state_ = NotificationPresenter::
      PotentialHotspotNotificationState::SINGLE_HOTSPOT_NEARBY_SHOWN;
  potential_hotspot_tether_host_id_ = device_id;
}

void FakeNotificationPresenter::NotifyMultiplePotentialHotspotsNearby() {
  potential_hotspot_state_ = NotificationPresenter::
      PotentialHotspotNotificationState::MULTIPLE_HOTSPOTS_NEARBY_SHOWN;
}

NotificationPresenter::PotentialHotspotNotificationState
FakeNotificationPresenter::GetPotentialHotspotNotificationState() {
  return potential_hotspot_state_;
}

void FakeNotificationPresenter::RemovePotentialHotspotNotification() {
  potential_hotspot_state_ = NotificationPresenter::
      PotentialHotspotNotificationState::NO_HOTSPOT_NOTIFICATION_SHOWN;
}

void FakeNotificationPresenter::NotifySetupRequired(
    const std::string& device_name,
    int signal_strength) {
  is_setup_required_notification_shown_ = true;
}

void FakeNotificationPresenter::RemoveSetupRequiredNotification() {
  is_setup_required_notification_shown_ = false;
}

void FakeNotificationPresenter::NotifyConnectionToHostFailed() {
  is_connection_failed_notification_shown_ = true;
}

void FakeNotificationPresenter::RemoveConnectionToHostFailedNotification() {
  is_connection_failed_notification_shown_ = false;
}

}  // namespace ash::tether