#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();
}
}