spdy_http_utils_unittest.cc revision f2477e01787aa58f445919b809d89e252beef54f
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/spdy/spdy_http_utils.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(SpdyHttpUtilsTest, ConvertRequestPriorityToSpdy2Priority) { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(0, ConvertRequestPriorityToSpdyPriority(HIGHEST, SPDY2)); 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(1, ConvertRequestPriorityToSpdyPriority(MEDIUM, SPDY2)); 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(2, ConvertRequestPriorityToSpdyPriority(LOW, SPDY2)); 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(2, ConvertRequestPriorityToSpdyPriority(LOWEST, SPDY2)); 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(3, ConvertRequestPriorityToSpdyPriority(IDLE, SPDY2)); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(SpdyHttpUtilsTest, ConvertRequestPriorityToSpdy3Priority) { 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(0, ConvertRequestPriorityToSpdyPriority(HIGHEST, SPDY3)); 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(1, ConvertRequestPriorityToSpdyPriority(MEDIUM, SPDY3)); 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(2, ConvertRequestPriorityToSpdyPriority(LOW, SPDY3)); 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(3, ConvertRequestPriorityToSpdyPriority(LOWEST, SPDY3)); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(4, ConvertRequestPriorityToSpdyPriority(IDLE, SPDY3)); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(SpdyHttpUtilsTest, ConvertSpdy2PriorityToRequestPriority) { 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(HIGHEST, ConvertSpdyPriorityToRequestPriority(0, SPDY2)); 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(MEDIUM, ConvertSpdyPriorityToRequestPriority(1, SPDY2)); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(LOW, ConvertSpdyPriorityToRequestPriority(2, SPDY2)); 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(IDLE, ConvertSpdyPriorityToRequestPriority(3, SPDY2)); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // These are invalid values, but we should still handle them 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // gracefully. 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (int i = 4; i < kuint8max; ++i) { 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(IDLE, ConvertSpdyPriorityToRequestPriority(i, SPDY2)); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(SpdyHttpUtilsTest, ConvertSpdy3PriorityToRequestPriority) { 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(HIGHEST, ConvertSpdyPriorityToRequestPriority(0, SPDY3)); 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(MEDIUM, ConvertSpdyPriorityToRequestPriority(1, SPDY3)); 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(LOW, ConvertSpdyPriorityToRequestPriority(2, SPDY3)); 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(LOWEST, ConvertSpdyPriorityToRequestPriority(3, SPDY3)); 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(IDLE, ConvertSpdyPriorityToRequestPriority(4, SPDY3)); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // These are invalid values, but we should still handle them 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // gracefully. 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (int i = 5; i < kuint8max; ++i) { 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EXPECT_EQ(IDLE, ConvertSpdyPriorityToRequestPriority(i, SPDY3)); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST(SpdyHttpUtilsTest, ShowHttpHeaderValue){ 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(SPDY_PROXY_AUTH_ORIGIN) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(ShouldShowHttpHeaderValue("proxy-authorization")); 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ShouldShowHttpHeaderValue("accept-encoding")); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ShouldShowHttpHeaderValue("proxy-authorization")); 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(ShouldShowHttpHeaderValue("accept-encoding")); 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 68