// Copyright (c) 2009 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 NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
#define NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_

#include <string>
#include <vector>

#include "net/proxy/proxy_config.h"

// A few small helper functions common to the win and linux unittests.

namespace net {

ProxyConfig::ProxyRules MakeProxyRules(
    ProxyConfig::ProxyRules::Type type,
    const char* single_proxy,
    const char* proxy_for_http,
    const char* proxy_for_https,
    const char* proxy_for_ftp,
    const char* socks_proxy);

ProxyConfig::ProxyRules MakeSingleProxyRules(const char* single_proxy);

ProxyConfig::ProxyRules MakeProxyPerSchemeRules(
    const char* proxy_http,
    const char* proxy_https,
    const char* proxy_ftp);

ProxyConfig::ProxyRules MakeProxyPerSchemeRules(
    const char* proxy_http,
    const char* proxy_https,
    const char* proxy_ftp,
    const char* socks_proxy);

typedef std::vector<std::string> BypassList;

// Joins the proxy bypass list using "\n" to make it into a single string.
std::string FlattenProxyBypass(const BypassList& proxy_bypass);

}  // namespace net

#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_