blob: 066f597efe21129994bd2b517d09ce062c90b7b7 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/subresource_filter/content/browser/async_document_subresource_filter_test_utils.h"
#include "base/bind.h"
#include "base/callback_helpers.h"
#include "base/run_loop.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace subresource_filter {
namespace testing {
TestActivationStateCallbackReceiver::TestActivationStateCallbackReceiver() =
default;
TestActivationStateCallbackReceiver::~TestActivationStateCallbackReceiver() =
default;
base::OnceCallback<void(mojom::ActivationState)>
TestActivationStateCallbackReceiver::GetCallback() {
return base::BindOnce(&TestActivationStateCallbackReceiver::Callback,
base::Unretained(this));
}
void TestActivationStateCallbackReceiver::WaitForActivationDecision() {
ASSERT_EQ(0, callback_count_);
base::RunLoop run_loop;
quit_closure_ = run_loop.QuitClosure();
run_loop.Run();
}
void TestActivationStateCallbackReceiver::ExpectReceivedOnce(
const mojom::ActivationState& expected_state) const {
ASSERT_EQ(1, callback_count_);
EXPECT_TRUE(expected_state.Equals(last_activation_state_));
}
void TestActivationStateCallbackReceiver::Callback(
mojom::ActivationState activation_state) {
++callback_count_;
last_activation_state_ = activation_state;
if (quit_closure_)
std::move(quit_closure_).Run();
}
} // namespace testing
} // namespace subresource_filter