blob: 1acb3eb18e1e5f335e502ed792b6c36eeb76e828 [file] [log] [blame]
// 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<base::RunLoop>();
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<NetworkChangeNotifier::ConnectionCost>
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