blob: 864093d4f1c1c04ae09bc095a13bb405406be76a [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.
#ifndef COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_ASYNC_DOCUMENT_SUBRESOURCE_FILTER_TEST_UTILS_H_
#define COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_ASYNC_DOCUMENT_SUBRESOURCE_FILTER_TEST_UTILS_H_
#include "base/bind.h"
#include "base/callback.h"
#include "base/macros.h"
#include "components/subresource_filter/core/mojom/subresource_filter.mojom.h"
namespace subresource_filter {
namespace testing {
// This test class is intended to be used in conjunction with an
// AsyncDocumentSubresourceFilter, and can be used to expect a certain
// activation result occured.
class TestActivationStateCallbackReceiver {
public:
TestActivationStateCallbackReceiver();
~TestActivationStateCallbackReceiver();
base::OnceCallback<void(mojom::ActivationState)> GetCallback();
void WaitForActivationDecision();
void ExpectReceivedOnce(const mojom::ActivationState& expected_state) const;
int callback_count() const { return callback_count_; }
private:
void Callback(mojom::ActivationState activation_state);
mojom::ActivationState last_activation_state_;
int callback_count_ = 0;
base::Closure quit_closure_;
DISALLOW_COPY_AND_ASSIGN(TestActivationStateCallbackReceiver);
};
} // namespace testing
} // namespace subresource_filter
#endif // COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_ASYNC_DOCUMENT_SUBRESOURCE_FILTER_TEST_UTILS_H_