blob: 3c12718f3828b2a895e1efbe3ad9e3e74b08ccca [file] [log] [blame]
// Copyright 2013 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/web_resource/resource_request_allowed_notifier_test_util.h"
namespace web_resource {
TestRequestAllowedNotifier::TestRequestAllowedNotifier(
PrefService* local_state,
network::NetworkConnectionTracker* network_connection_tracker)
: ResourceRequestAllowedNotifier(
local_state,
nullptr,
base::BindOnce(
[](network::NetworkConnectionTracker* tracker) {
return tracker;
},
network_connection_tracker)),
override_requests_allowed_(false),
requests_allowed_(true) {}
TestRequestAllowedNotifier::~TestRequestAllowedNotifier() {
}
void TestRequestAllowedNotifier::InitWithEulaAcceptNotifier(
Observer* observer,
std::unique_ptr<EulaAcceptedNotifier> eula_notifier) {
test_eula_notifier_.swap(eula_notifier);
Init(observer, false /* leaky */);
}
void TestRequestAllowedNotifier::SetRequestsAllowedOverride(bool allowed) {
override_requests_allowed_ = true;
requests_allowed_ = allowed;
}
void TestRequestAllowedNotifier::NotifyObserver() {
// Force the allowed state and requested state to true. This forces
// MaybeNotifyObserver to always notify observers, as MaybeNotifyObserver
// checks ResourceRequestsAllowed and requested state.
override_requests_allowed_ = true;
requests_allowed_ = true;
SetObserverRequestedForTesting(true);
MaybeNotifyObserver();
}
ResourceRequestAllowedNotifier::State
TestRequestAllowedNotifier::GetResourceRequestsAllowedState() {
if (override_requests_allowed_)
return requests_allowed_ ? ALLOWED : DISALLOWED_NETWORK_DOWN;
return ResourceRequestAllowedNotifier::GetResourceRequestsAllowedState();
}
EulaAcceptedNotifier* TestRequestAllowedNotifier::CreateEulaNotifier() {
return test_eula_notifier_.release();
}
} // namespace web_resource