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