Home | History | Annotate | Download | only in spdy
      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/spdy/spdy_credential_state.h"
      6 
      7 #include "net/base/host_port_pair.h"
      8 #include "testing/platform_test.h"
      9 
     10 namespace net {
     11 
     12 class SpdyCredentialStateTest : public PlatformTest {
     13  public:
     14   SpdyCredentialStateTest()
     15     : state_(4),
     16       origin1_("https://1.com"),
     17       origin2_("https://2.com"),
     18       origin3_("https://3.com"),
     19       origin4_("https://4.com"),
     20       origin5_("https://5.com"),
     21       origin6_("https://6.com"),
     22       origin11_("https://11.com"),
     23       host1_("https://www.1.com:443") {
     24   }
     25 
     26  protected:
     27   SpdyCredentialState state_;
     28   const GURL origin1_;
     29   const GURL origin2_;
     30   const GURL origin3_;
     31   const GURL origin4_;
     32   const GURL origin5_;
     33   const GURL origin6_;
     34   const GURL origin11_;
     35   const GURL host1_;
     36 
     37   DISALLOW_COPY_AND_ASSIGN(SpdyCredentialStateTest);
     38 };
     39 
     40 TEST_F(SpdyCredentialStateTest, HasCredentialReturnsFalseWhenEmpty) {
     41   EXPECT_FALSE(state_.HasCredential(origin1_));
     42   EXPECT_FALSE(state_.HasCredential(origin2_));
     43   EXPECT_FALSE(state_.HasCredential(origin3_));
     44 }
     45 
     46 TEST_F(SpdyCredentialStateTest, HasCredentialReturnsTrueWhenAdded) {
     47   state_.SetHasCredential(origin1_);
     48   EXPECT_TRUE(state_.HasCredential(origin1_));
     49   EXPECT_TRUE(state_.HasCredential(host1_));
     50   EXPECT_FALSE(state_.HasCredential(origin11_));
     51   EXPECT_FALSE(state_.HasCredential(origin2_));
     52   EXPECT_FALSE(state_.HasCredential(origin3_));
     53 }
     54 
     55 TEST_F(SpdyCredentialStateTest, SetCredentialAddsToEndOfList) {
     56   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     57   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     58   EXPECT_EQ(3u, (state_.SetHasCredential(origin3_)));
     59 }
     60 
     61 TEST_F(SpdyCredentialStateTest, SetReturnsPositionIfAlreadyInList) {
     62   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     63   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     64   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     65   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     66 }
     67 
     68 TEST_F(SpdyCredentialStateTest, SetReplacesOldestElementWhenFull) {
     69   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     70   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     71   EXPECT_EQ(3u, (state_.SetHasCredential(origin3_)));
     72   EXPECT_EQ(4u, (state_.SetHasCredential(origin4_)));
     73   EXPECT_EQ(1u, (state_.SetHasCredential(origin5_)));
     74   EXPECT_EQ(2u, (state_.SetHasCredential(origin6_)));
     75   EXPECT_EQ(3u, (state_.SetHasCredential(origin1_)));
     76   EXPECT_EQ(4u, (state_.SetHasCredential(origin2_)));
     77 }
     78 
     79 TEST_F(SpdyCredentialStateTest, ResizeAddsEmptySpaceAtEnd) {
     80   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     81   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     82   EXPECT_EQ(3u, (state_.SetHasCredential(origin3_)));
     83   EXPECT_EQ(4u, (state_.SetHasCredential(origin4_)));
     84   state_.Resize(6);
     85   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     86   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     87   EXPECT_EQ(3u, (state_.SetHasCredential(origin3_)));
     88   EXPECT_EQ(4u, (state_.SetHasCredential(origin4_)));
     89   EXPECT_EQ(5u, (state_.SetHasCredential(origin5_)));
     90   EXPECT_EQ(6u, (state_.SetHasCredential(origin6_)));
     91 }
     92 
     93 TEST_F(SpdyCredentialStateTest, ResizeTrunatesFromEnd) {
     94   EXPECT_EQ(1u, (state_.SetHasCredential(origin1_)));
     95   EXPECT_EQ(2u, (state_.SetHasCredential(origin2_)));
     96   EXPECT_EQ(3u, (state_.SetHasCredential(origin3_)));
     97   EXPECT_EQ(4u, (state_.SetHasCredential(origin4_)));
     98   state_.Resize(2);
     99   EXPECT_TRUE(state_.HasCredential(origin1_));
    100   EXPECT_TRUE(state_.HasCredential(origin2_));
    101   EXPECT_FALSE(state_.HasCredential(origin3_));
    102   EXPECT_FALSE(state_.HasCredential(origin4_));
    103   EXPECT_EQ(1u, (state_.SetHasCredential(origin5_)));
    104   EXPECT_EQ(2u, (state_.SetHasCredential(origin6_)));
    105 }
    106 
    107 
    108 }  // namespace net
    109