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