http_log_util_unittest.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "net/http/http_log_util.h" 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace net { 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST(HttpLogUtilTest, ElideHeaderValueForNetLog) { 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Only elide for appropriate log level. 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Cookie", "name=value")); 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("name=value", ElideHeaderValueForNetLog( 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_ALL_BUT_BYTES, "Cookie", "name=value")); 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Headers are compared case insensitively. 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "cOoKiE", "name=value")); 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // These headers should be completely elided. 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Set-Cookie", "name=value")); 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Set-Cookie2", "name=value")); 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Authorization", "Basic 1234")); 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#if !defined(SPDY_PROXY_AUTH_ORIGIN) 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[10 bytes were stripped]", ElideHeaderValueForNetLog( 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Proxy-Authorization", "Basic 1234")); 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif 3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Unknown headers should pass through. 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("value", ElideHeaderValueForNetLog( 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Boring", "value")); 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Basic and Digest auth challenges are public. 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("Basic realm=test", ElideHeaderValueForNetLog( 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "WWW-Authenticate", "Basic realm=test")); 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("Digest realm=test", ElideHeaderValueForNetLog( 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "WWW-Authenticate", "Digest realm=test")); 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#if !defined(SPDY_PROXY_AUTH_ORIGIN) 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("Basic realm=test", ElideHeaderValueForNetLog( 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Proxy-Authenticate", "Basic realm=test")); 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("Digest realm=test", ElideHeaderValueForNetLog( 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, 5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Proxy-Authenticate", "Digest realm=test")); 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Multi-round mechanisms partially elided. 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("NTLM [4 bytes were stripped]", ElideHeaderValueForNetLog( 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "WWW-Authenticate", "NTLM 1234")); 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#if !defined(SPDY_PROXY_AUTH_ORIGIN) 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("NTLM [4 bytes were stripped]", ElideHeaderValueForNetLog( 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "Proxy-Authenticate", "NTLM 1234")); 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Leave whitespace intact. 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("NTLM [4 bytes were stripped] ", ElideHeaderValueForNetLog( 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_STRIP_PRIVATE_DATA, "WWW-Authenticate", "NTLM 1234 ")); 6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Extra elisions for SPDY_PROXY_AUTH_ORIGIN. 6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#if defined(SPDY_PROXY_AUTH_ORIGIN) 6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[elided]", ElideHeaderValueForNetLog( 6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_ALL_BUT_BYTES, 7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Proxy-Authenticate", "Basic realm=test")); 7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_EQ("[elided]", ElideHeaderValueForNetLog( 7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) net::NetLog::LOG_ALL_BUT_BYTES, "Proxy-Authorization", "Basic 1234")); 7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif 7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namspace net 77