blob: b6ca43700d66968d1c841977f71de76080b78c0c [file] [log] [blame]
// Copyright 2016 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 "ios/web/public/test/http_server_util.h"
#include "base/memory/ptr_util.h"
#include "base/path_service.h"
#import "ios/web/public/test/http_server.h"
#include "ios/web/public/test/response_providers/file_based_response_provider.h"
#include "ios/web/public/test/response_providers/html_response_provider.h"
namespace web {
namespace test {
void SetUpSimpleHttpServer(const std::map<GURL, std::string>& responses) {
SetUpHttpServer(base::MakeUnique<HtmlResponseProvider>(responses));
}
void SetUpSimpleHttpServerWithSetCookies(
const std::map<GURL, std::pair<std::string, std::string>>& responses) {
SetUpHttpServer(base::MakeUnique<HtmlResponseProvider>(responses));
}
void SetUpFileBasedHttpServer() {
base::FilePath path;
PathService::Get(base::DIR_MODULE, &path);
SetUpHttpServer(base::MakeUnique<FileBasedResponseProvider>(path));
}
void SetUpHttpServer(std::unique_ptr<web::ResponseProvider> provider) {
web::test::HttpServer& server = web::test::HttpServer::GetSharedInstance();
DCHECK(server.IsRunning());
server.RemoveAllResponseProviders();
server.AddResponseProvider(std::move(provider));
}
void AddResponseProvider(std::unique_ptr<web::ResponseProvider> provider) {
web::test::HttpServer& server = web::test::HttpServer::GetSharedInstance();
DCHECK(server.IsRunning());
server.AddResponseProvider(std::move(provider));
}
} // namespace test
} // namespace web