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 "media/blink/buffered_data_source_host_impl.h" 6#include "testing/gtest/include/gtest/gtest.h" 7 8namespace media { 9 10class BufferedDataSourceHostImplTest : public testing::Test { 11 public: 12 BufferedDataSourceHostImplTest() {} 13 14 void Add() { 15 host_.AddBufferedTimeRanges(&ranges_, base::TimeDelta::FromSeconds(10)); 16 } 17 18 protected: 19 BufferedDataSourceHostImpl host_; 20 Ranges<base::TimeDelta> ranges_; 21 22 DISALLOW_COPY_AND_ASSIGN(BufferedDataSourceHostImplTest); 23}; 24 25TEST_F(BufferedDataSourceHostImplTest, Empty) { 26 EXPECT_FALSE(host_.DidLoadingProgress()); 27 Add(); 28 EXPECT_EQ(0u, ranges_.size()); 29} 30 31TEST_F(BufferedDataSourceHostImplTest, AddBufferedTimeRanges) { 32 host_.AddBufferedByteRange(10, 20); 33 host_.SetTotalBytes(100); 34 Add(); 35 EXPECT_EQ(1u, ranges_.size()); 36 EXPECT_EQ(base::TimeDelta::FromSeconds(1), ranges_.start(0)); 37 EXPECT_EQ(base::TimeDelta::FromSeconds(2), ranges_.end(0)); 38} 39 40TEST_F(BufferedDataSourceHostImplTest, AddBufferedTimeRanges_Merges) { 41 ranges_.Add(base::TimeDelta::FromSeconds(0), base::TimeDelta::FromSeconds(1)); 42 host_.AddBufferedByteRange(10, 20); 43 host_.SetTotalBytes(100); 44 Add(); 45 EXPECT_EQ(1u, ranges_.size()); 46 EXPECT_EQ(base::TimeDelta::FromSeconds(0), ranges_.start(0)); 47 EXPECT_EQ(base::TimeDelta::FromSeconds(2), ranges_.end(0)); 48} 49 50TEST_F(BufferedDataSourceHostImplTest, AddBufferedTimeRanges_Snaps) { 51 host_.AddBufferedByteRange(5, 995); 52 host_.SetTotalBytes(1000); 53 Add(); 54 EXPECT_EQ(1u, ranges_.size()); 55 EXPECT_EQ(base::TimeDelta::FromSeconds(0), ranges_.start(0)); 56 EXPECT_EQ(base::TimeDelta::FromSeconds(10), ranges_.end(0)); 57} 58 59TEST_F(BufferedDataSourceHostImplTest, SetTotalBytes) { 60 host_.AddBufferedByteRange(10, 20); 61 Add(); 62 EXPECT_EQ(0u, ranges_.size()); 63 64 host_.SetTotalBytes(100); 65 Add(); 66 EXPECT_EQ(1u, ranges_.size()); 67} 68 69TEST_F(BufferedDataSourceHostImplTest, DidLoadingProgress) { 70 host_.AddBufferedByteRange(10, 20); 71 EXPECT_TRUE(host_.DidLoadingProgress()); 72 EXPECT_FALSE(host_.DidLoadingProgress()); 73} 74 75} // namespace media 76