Home | History | Annotate | Download | only in quic
      1 // Copyright 2014 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/quic/quic_utils_chromium.h"
      6 
      7 #include <map>
      8 
      9 #include "testing/gtest/include/gtest/gtest.h"
     10 
     11 using std::map;
     12 
     13 namespace net {
     14 namespace test {
     15 namespace {
     16 
     17 TEST(QuicUtilsChromiumTest, FindOrNullTest) {
     18   map<int, int> m;
     19   m[0] = 2;
     20 
     21   // Check FindOrNull
     22   int* p1 = FindOrNull(m, 0);
     23   CHECK_EQ(*p1, 2);
     24   ++(*p1);
     25   const map<int, int>& const_m = m;
     26   const int* p2 = FindOrNull(const_m, 0);
     27   CHECK_EQ(*p2, 3);
     28   CHECK(FindOrNull(m, 1) == NULL);
     29 }
     30 
     31 TEST(QuicUtilsChromiumTest, FindOrDieTest) {
     32   std::map<int, int> m;
     33   m[10] = 15;
     34   EXPECT_EQ(15, FindOrDie(m, 10));
     35   // TODO(rtenneti): Use the latest DEATH macros after merging with latest rch's
     36   // changes.
     37   // ASSERT_DEATH(FindOrDie(m, 8), "Map key not found: 8");
     38 
     39   // Make sure the non-const reference returning version works.
     40   FindOrDie(m, 10) = 20;
     41   EXPECT_EQ(20, FindOrDie(m, 10));
     42 
     43   // Make sure we can lookup values in a const map.
     44   const map<int, int>& const_m = m;
     45   EXPECT_EQ(20, FindOrDie(const_m, 10));
     46 }
     47 
     48 }  // namespace
     49 }  // namespace test
     50 }  // namespace net
     51