165283d55c6d848284f658b484dde32778b029cf
[platform/framework/web/crosswalk.git] / src / net / proxy / proxy_info_unittest.cc
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/base/net_errors.h"
6 #include "net/proxy/proxy_info.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace net {
10 namespace {
11
12 TEST(ProxyInfoTest, ProxyInfoIsDirectOnly) {
13   // Test the is_direct_only() predicate.
14   ProxyInfo info;
15
16   // An empty ProxyInfo is not considered direct.
17   EXPECT_FALSE(info.is_direct_only());
18
19   info.UseDirect();
20   EXPECT_TRUE(info.is_direct_only());
21
22   info.UsePacString("DIRECT");
23   EXPECT_TRUE(info.is_direct_only());
24
25   info.UsePacString("PROXY myproxy:80");
26   EXPECT_FALSE(info.is_direct_only());
27
28   info.UsePacString("DIRECT; PROXY myproxy:80");
29   EXPECT_TRUE(info.is_direct());
30   EXPECT_FALSE(info.is_direct_only());
31
32   info.UsePacString("PROXY myproxy:80; DIRECT");
33   EXPECT_FALSE(info.is_direct());
34   EXPECT_FALSE(info.is_direct_only());
35   // After falling back to direct, we shouldn't consider it DIRECT only.
36   EXPECT_TRUE(info.Fallback(ERR_PROXY_CONNECTION_FAILED, BoundNetLog()));
37   EXPECT_TRUE(info.is_direct());
38   EXPECT_FALSE(info.is_direct_only());
39 }
40
41 }  // namespace
42 }  // namespace net