1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// 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.
#ifndef COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_
#define COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_
#include "base/test/task_environment.h"
#include "components/manta/base_provider.h"
#include "components/manta/manta_service_callbacks.h"
#include "services/network/test/test_url_loader_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace manta {
// Helper utilities that take care of common fakes, useful for unit test of
// particular providers.
// A provider (e.g. FooProvider) unittest should have:
// * a FakeFooProvider that extends both FooProvider and FakeBaseProvider so
// that it mocks the FooProvider's functions by using
// `FakeBaseProvider::RequestInternal`.
// * a FooProviderTest fixture that extends BaseProviderTest and implement a
// `CreateFooProvider` function to return a FakeFooProvider instance.
class FakeBaseProvider : virtual public BaseProvider {
public:
FakeBaseProvider(
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
signin::IdentityManager* identity_manager);
FakeBaseProvider(const FakeBaseProvider&) = delete;
FakeBaseProvider& operator=(const FakeBaseProvider&) = delete;
~FakeBaseProvider() override;
protected:
// Overrides BaseProvider:
void RequestInternal(const GURL& url,
const std::string& oauth_consumer_name,
const net::NetworkTrafficAnnotationTag& annotation_tag,
manta::proto::Request& request,
const MantaMetricType metric_type,
MantaProtoResponseCallback done_callback,
const base::TimeDelta timeout) override;
};
class BaseProviderTest : public testing::Test {
public:
BaseProviderTest();
BaseProviderTest(const BaseProviderTest&) = delete;
BaseProviderTest& operator=(const BaseProviderTest&) = delete;
~BaseProviderTest() override;
// Overrides testing::Test:
void SetUp() override;
void SetEndpointMockResponse(const GURL& request_url,
const std::string& response_data,
net::HttpStatusCode response_code,
net::Error error);
protected:
base::test::TaskEnvironment task_environment_;
std::unique_ptr<signin::IdentityTestEnvironment> identity_test_env_;
network::TestURLLoaderFactory test_url_loader_factory_;
};
} // namespace manta
#endif // COMPONENTS_MANTA_BASE_PROVIDER_TEST_HELPER_H_
|