Home | History | Annotate | Download | only in transport
      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