1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "net/proxy/dhcp_proxy_script_fetcher.h"
6#include "net/proxy/dhcp_proxy_script_fetcher_factory.h"
7#include "net/url_request/url_request_test_util.h"
8#include "testing/gtest/include/gtest/gtest.h"
9
10namespace net {
11namespace {
12
13TEST(DhcpProxyScriptFetcherFactoryTest, DoNothingWhenDisabled) {
14  DhcpProxyScriptFetcherFactory factory;
15  factory.set_enabled(false);
16  scoped_ptr<DhcpProxyScriptFetcher> fetcher(factory.Create(NULL));
17  EXPECT_EQ("", fetcher->GetFetcherName());
18}
19
20#if defined(OS_WIN)
21TEST(DhcpProxyScriptFetcherFactoryTest, WindowsFetcherOnWindows) {
22  DhcpProxyScriptFetcherFactory factory;
23  factory.set_enabled(true);
24
25  scoped_ptr<TestURLRequestContext> context(new TestURLRequestContext());
26  scoped_ptr<DhcpProxyScriptFetcher> fetcher(factory.Create(context.get()));
27  EXPECT_EQ("win", fetcher->GetFetcherName());
28}
29#endif  // defined(OS_WIN)
30
31TEST(DhcpProxyScriptFetcherFactoryTest, IsSupported) {
32#if defined(OS_WIN)
33  ASSERT_TRUE(DhcpProxyScriptFetcherFactory::IsSupported());
34#else
35  ASSERT_FALSE(DhcpProxyScriptFetcherFactory::IsSupported());
36#endif  // defined(OS_WIN)
37}
38
39TEST(DhcpProxyScriptFetcherFactoryTest, SetEnabled) {
40  DhcpProxyScriptFetcherFactory factory;
41#if defined(OS_WIN)
42  EXPECT_TRUE(factory.enabled());
43#else
44  EXPECT_FALSE(factory.enabled());
45#endif  // defined(OS_WIN)
46
47  factory.set_enabled(false);
48  EXPECT_FALSE(factory.enabled());
49
50  factory.set_enabled(true);
51#if defined(OS_WIN)
52  EXPECT_TRUE(factory.enabled());
53#else
54  EXPECT_FALSE(factory.enabled());
55#endif  // defined(OS_WIN)
56}
57
58}  // namespace
59}  // namespace net
60