|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "net/http/http_log_util.h" | 
|  |  | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace net { | 
|  |  | 
|  | TEST(HttpLogUtilTest, ElideHeaderValueForNetLog) { | 
|  | // Only elide for appropriate log level. | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), "Cookie", | 
|  | "name=value")); | 
|  | EXPECT_EQ("name=value", ElideHeaderValueForNetLog( | 
|  | NetLogCaptureMode::IncludeCookiesAndCredentials(), | 
|  | "Cookie", "name=value")); | 
|  |  | 
|  | // Headers are compared case insensitively. | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), "cOoKiE", | 
|  | "name=value")); | 
|  |  | 
|  | // These headers should be completely elided. | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Set-Cookie", "name=value")); | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Set-Cookie2", "name=value")); | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Authorization", "Basic 1234")); | 
|  | EXPECT_EQ("[10 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Proxy-Authorization", "Basic 1234")); | 
|  |  | 
|  | // Unknown headers should pass through. | 
|  | EXPECT_EQ("value", ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Boring", "value")); | 
|  |  | 
|  | // Basic and Digest auth challenges are public. | 
|  | EXPECT_EQ("Basic realm=test", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "WWW-Authenticate", "Basic realm=test")); | 
|  | EXPECT_EQ("Digest realm=test", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "WWW-Authenticate", "Digest realm=test")); | 
|  | EXPECT_EQ("Basic realm=test", ElideHeaderValueForNetLog( | 
|  | NetLogCaptureMode::Default(), | 
|  | "Proxy-Authenticate", "Basic realm=test")); | 
|  | EXPECT_EQ( | 
|  | "Digest realm=test", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Proxy-Authenticate", "Digest realm=test")); | 
|  |  | 
|  | // Multi-round mechanisms partially elided. | 
|  | EXPECT_EQ("NTLM [4 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "WWW-Authenticate", "NTLM 1234")); | 
|  | EXPECT_EQ("NTLM [4 bytes were stripped]", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "Proxy-Authenticate", "NTLM 1234")); | 
|  |  | 
|  | // Leave whitespace intact. | 
|  | EXPECT_EQ("NTLM  [4 bytes were stripped] ", | 
|  | ElideHeaderValueForNetLog(NetLogCaptureMode::Default(), | 
|  | "WWW-Authenticate", "NTLM  1234 ")); | 
|  | } | 
|  |  | 
|  | }  // namespace net |