Home | History | Annotate | Download | only in proxy
      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
     42