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