1 // Copyright 2013 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 <gtest/gtest.h> 6 #include "media/cast/transport/cast_transport_defines.h" 7 8 namespace media { 9 namespace cast { 10 namespace transport { 11 12 class FrameIdWrapHelperTest : public ::testing::Test { 13 protected: 14 FrameIdWrapHelperTest() {} 15 virtual ~FrameIdWrapHelperTest() {} 16 17 FrameIdWrapHelper frame_id_wrap_helper_; 18 19 DISALLOW_COPY_AND_ASSIGN(FrameIdWrapHelperTest); 20 }; 21 22 TEST_F(FrameIdWrapHelperTest, FirstFrame) { 23 EXPECT_EQ(kStartFrameId, frame_id_wrap_helper_.MapTo32bitsFrameId(255u)); 24 } 25 26 TEST_F(FrameIdWrapHelperTest, Rollover) { 27 uint32 new_frame_id = 0u; 28 for (int i = 0; i <= 256; ++i) { 29 new_frame_id = 30 frame_id_wrap_helper_.MapTo32bitsFrameId(static_cast<uint8>(i)); 31 } 32 EXPECT_EQ(256u, new_frame_id); 33 } 34 35 TEST_F(FrameIdWrapHelperTest, OutOfOrder) { 36 uint32 new_frame_id = 0u; 37 for (int i = 0; i < 255; ++i) { 38 new_frame_id = 39 frame_id_wrap_helper_.MapTo32bitsFrameId(static_cast<uint8>(i)); 40 } 41 EXPECT_EQ(254u, new_frame_id); 42 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(0u); 43 EXPECT_EQ(256u, new_frame_id); 44 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(255u); 45 EXPECT_EQ(255u, new_frame_id); 46 new_frame_id = frame_id_wrap_helper_.MapTo32bitsFrameId(1u); 47 EXPECT_EQ(257u, new_frame_id); 48 } 49 50 } // namespace transport 51 } // namespace cast 52 } // namespace media 53