chromium/ios/web/public/test/http_server/http_server_util.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_PUBLIC_TEST_HTTP_SERVER_HTTP_SERVER_UTIL_H_
#define IOS_WEB_PUBLIC_TEST_HTTP_SERVER_HTTP_SERVER_UTIL_H_

#include <map>
#include <memory>

#include "url/gurl.h"

namespace web {

class ResponseProvider;

namespace test {

// Sets up a web::test::HttpServer with a simple HtmlResponseProvider. The
// HtmlResponseProvider will use the `responses` map to resolve URLs.
void SetUpSimpleHttpServer(const std::map<GURL, std::string>& responses);

// Sets up a web::test::HttpServer with a single custom provider.
// Takes ownership of the provider.
void SetUpHttpServer(std::unique_ptr<web::ResponseProvider> provider);

// Adds a single custom provider.
// Takes ownership of the provider.
void AddResponseProvider(std::unique_ptr<web::ResponseProvider> provider);
}  // namespace test
}  // namespace web

#endif  // IOS_WEB_PUBLIC_TEST_HTTP_SERVER_HTTP_SERVER_UTIL_H_