proxy_info_unittest.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
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 9namespace net { 10namespace { 11 12TEST(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 43