blob: 1e8223d02a936ed12fb91a2f48ad20c3354f3286 [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 CHROME_BROWSER_EXTENSIONS_EXTENSION_WITH_MANAGEMENT_POLICY_APITEST_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_WITH_MANAGEMENT_POLICY_APITEST_H_
#include <string>
#include <vector>
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_management_test_util.h"
#include "components/policy/core/common/mock_configuration_policy_provider.h"
struct ManagementPolicyRequestLog {
std::string all_headers;
std::string host;
};
// The ExtensionSettings policy affects host permissions which impacts several
// API integration tests. This class enables easy declaration of
// ExtensionSettings policies and functions commonly used during these tests.
class ExtensionApiTestWithManagementPolicy
: public extensions::ExtensionApiTest {
public:
ExtensionApiTestWithManagementPolicy();
~ExtensionApiTestWithManagementPolicy() override;
void SetUpInProcessBrowserTestFixture() override;
void SetUpOnMainThread() override;
protected:
policy::MockConfigurationPolicyProvider policy_provider_;
bool BrowsedTo(const std::string& test_host);
void ClearRequestLog();
void MonitorRequestHandler(const net::test_server::HttpRequest& request);
private:
std::vector<ManagementPolicyRequestLog> request_log_;
DISALLOW_COPY_AND_ASSIGN(ExtensionApiTestWithManagementPolicy);
};
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_WITH_MANAGEMENT_POLICY_APITEST_H_