// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "net/test/test_connection_cost_observer.h" namespace net { TestConnectionCostObserver::TestConnectionCostObserver() = default; TestConnectionCostObserver::~TestConnectionCostObserver() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } void TestConnectionCostObserver::OnConnectionCostChanged( NetworkChangeNotifier::ConnectionCost cost) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); cost_changed_inputs_.push_back(cost); if (run_loop_) { run_loop_->Quit(); } } void TestConnectionCostObserver::WaitForConnectionCostChanged() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); run_loop_ = std::make_unique(); run_loop_->Run(); run_loop_.reset(); } size_t TestConnectionCostObserver::cost_changed_calls() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return cost_changed_inputs_.size(); } std::vector TestConnectionCostObserver::cost_changed_inputs() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return cost_changed_inputs_; } NetworkChangeNotifier::ConnectionCost TestConnectionCostObserver::last_cost_changed_input() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK_GT(cost_changed_inputs_.size(), 0u); return cost_changed_inputs_.back(); } } // namespace net