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
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_TEST_SUPERVISED_USER_API_MOCK_SETUP_MIXIN_H_
#define CHROME_TEST_SUPERVISED_USER_API_MOCK_SETUP_MIXIN_H_
#include <string_view>
#include "base/command_line.h"
#include "base/memory/raw_ptr.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
#include "components/supervised_user/test_support/kids_management_api_server_mock.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
namespace supervised_user {
// Manages an instance of embedded test server which is running the
// KidsManagementApiServerMock.
class KidsManagementApiMockSetupMixin : public InProcessBrowserTestMixin {
public:
static void SetApiHostname(std::string_view hostname);
KidsManagementApiMockSetupMixin() = delete;
KidsManagementApiMockSetupMixin(InProcessBrowserTestMixinHost& host,
InProcessBrowserTest* test_base);
KidsManagementApiMockSetupMixin(const KidsManagementApiMockSetupMixin&) =
delete;
KidsManagementApiMockSetupMixin& operator=(
const KidsManagementApiMockSetupMixin&) = delete;
~KidsManagementApiMockSetupMixin() override;
// InProcessBrowserTestMixin:
void SetUp() override;
void SetUpCommandLine(base::CommandLine* command_line) override;
void SetUpOnMainThread() override;
void TearDownOnMainThread() override;
KidsManagementApiServerMock& api_mock() { return api_mock_; }
private:
raw_ptr<InProcessBrowserTest> test_base_;
// Used exclusively to host KidsManagementApiServerMocks.
net::EmbeddedTestServer embedded_test_server_;
// Mocks server functionalities.
KidsManagementApiServerMock api_mock_;
// Hosts kSupervisedUserProtoFetcherConfig feature parameter value, which
// alters the behavior of api clients (Kids Api Proto Fetchers) to connect to
// the embedded test server which is running this mock.
base::test::ScopedFeatureList feature_list_;
};
} // namespace supervised_user
#endif // CHROME_TEST_SUPERVISED_USER_API_MOCK_SETUP_MIXIN_H_
|