| Index: media/filters/chunk_demuxer_unittest.cc
 | 
| diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
 | 
| index 56f2c7ca78312beb0dd66ce370fdf83f5e4dc411..4a557e6d7a74d506a2f6c415a8bcf05ab98497fd 100644
 | 
| --- a/media/filters/chunk_demuxer_unittest.cc
 | 
| +++ b/media/filters/chunk_demuxer_unittest.cc
 | 
| @@ -473,21 +473,21 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|    }
 | 
|  #endif
 | 
|  
 | 
| -  void AppendData(const uint8_t* data, size_t length) {
 | 
| -    AppendData(kSourceId, data, length);
 | 
| +  bool AppendData(const uint8_t* data, size_t length) {
 | 
| +    return AppendData(kSourceId, data, length);
 | 
|    }
 | 
|  
 | 
| -  void AppendCluster(const std::string& source_id,
 | 
| +  bool AppendCluster(const std::string& source_id,
 | 
|                       std::unique_ptr<Cluster> cluster) {
 | 
| -    AppendData(source_id, cluster->data(), cluster->size());
 | 
| +    return AppendData(source_id, cluster->data(), cluster->size());
 | 
|    }
 | 
|  
 | 
| -  void AppendCluster(std::unique_ptr<Cluster> cluster) {
 | 
| -    AppendCluster(kSourceId, std::move(cluster));
 | 
| +  bool AppendCluster(std::unique_ptr<Cluster> cluster) {
 | 
| +    return AppendCluster(kSourceId, std::move(cluster));
 | 
|    }
 | 
|  
 | 
| -  void AppendCluster(int timecode, int block_count) {
 | 
| -    AppendCluster(GenerateCluster(timecode, block_count));
 | 
| +  bool AppendCluster(int timecode, int block_count) {
 | 
| +    return AppendCluster(GenerateCluster(timecode, block_count));
 | 
|    }
 | 
|  
 | 
|    void AppendSingleStreamCluster(const std::string& source_id, int track_number,
 | 
| @@ -509,9 +509,9 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      }
 | 
|      ASSERT_NE(block_duration, 0);
 | 
|      int end_timecode = timecode + block_count * block_duration;
 | 
| -    AppendCluster(source_id,
 | 
| -                  GenerateSingleStreamCluster(
 | 
| -                      timecode, end_timecode, track_number, block_duration));
 | 
| +    ASSERT_TRUE(AppendCluster(
 | 
| +        source_id, GenerateSingleStreamCluster(timecode, end_timecode,
 | 
| +                                               track_number, block_duration)));
 | 
|    }
 | 
|  
 | 
|    struct BlockInfo {
 | 
| @@ -650,7 +650,7 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|                                   const std::string& block_descriptions) {
 | 
|      std::vector<BlockInfo> blocks;
 | 
|      ParseBlockDescriptions(track_number, block_descriptions, &blocks);
 | 
| -    AppendCluster(source_id, GenerateCluster(blocks, false));
 | 
| +    ASSERT_TRUE(AppendCluster(source_id, GenerateCluster(blocks, false)));
 | 
|    }
 | 
|  
 | 
|    struct MuxedStreamInfo {
 | 
| @@ -721,24 +721,24 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|    }
 | 
|  
 | 
|    void AppendMuxedCluster(const std::vector<MuxedStreamInfo> msi) {
 | 
| -    AppendCluster(kSourceId, GenerateMuxedCluster(msi));
 | 
| +    ASSERT_TRUE(AppendCluster(kSourceId, GenerateMuxedCluster(msi)));
 | 
|    }
 | 
|  
 | 
| -  void AppendData(const std::string& source_id,
 | 
| +  bool AppendData(const std::string& source_id,
 | 
|                    const uint8_t* data,
 | 
|                    size_t length) {
 | 
|      EXPECT_CALL(host_, OnBufferedTimeRangesChanged(_)).Times(AnyNumber());
 | 
|  
 | 
| -    demuxer_->AppendData(
 | 
| +    return demuxer_->AppendData(
 | 
|          source_id, data, length, append_window_start_for_next_append_,
 | 
|          append_window_end_for_next_append_, ×tamp_offset_map_[source_id]);
 | 
|    }
 | 
|  
 | 
| -  void AppendDataInPieces(const uint8_t* data, size_t length) {
 | 
| -    AppendDataInPieces(data, length, 7);
 | 
| +  bool AppendDataInPieces(const uint8_t* data, size_t length) {
 | 
| +    return AppendDataInPieces(data, length, 7);
 | 
|    }
 | 
|  
 | 
| -  void AppendDataInPieces(const uint8_t* data,
 | 
| +  bool AppendDataInPieces(const uint8_t* data,
 | 
|                            size_t length,
 | 
|                            size_t piece_size) {
 | 
|      const uint8_t* start = data;
 | 
| @@ -746,21 +746,24 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      while (start < end) {
 | 
|        size_t append_size = std::min(piece_size,
 | 
|                                      static_cast<size_t>(end - start));
 | 
| -      AppendData(start, append_size);
 | 
| +      if (!AppendData(start, append_size))
 | 
| +        return false;
 | 
|        start += append_size;
 | 
|      }
 | 
| +    return true;
 | 
|    }
 | 
|  
 | 
| -  void AppendInitSegment(int stream_flags) {
 | 
| -    AppendInitSegmentWithSourceId(kSourceId, stream_flags);
 | 
| +  bool AppendInitSegment(int stream_flags) {
 | 
| +    return AppendInitSegmentWithSourceId(kSourceId, stream_flags);
 | 
|    }
 | 
|  
 | 
| -  void AppendInitSegmentWithSourceId(const std::string& source_id,
 | 
| +  bool AppendInitSegmentWithSourceId(const std::string& source_id,
 | 
|                                       int stream_flags) {
 | 
| -    AppendInitSegmentWithEncryptedInfo(source_id, stream_flags, false, false);
 | 
| +    return AppendInitSegmentWithEncryptedInfo(source_id, stream_flags, false,
 | 
| +                                              false);
 | 
|    }
 | 
|  
 | 
| -  void AppendInitSegmentWithEncryptedInfo(const std::string& source_id,
 | 
| +  bool AppendInitSegmentWithEncryptedInfo(const std::string& source_id,
 | 
|                                            int stream_flags,
 | 
|                                            bool is_audio_encrypted,
 | 
|                                            bool is_video_encrypted) {
 | 
| @@ -769,7 +772,7 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      CreateInitSegment(stream_flags,
 | 
|                        is_audio_encrypted, is_video_encrypted,
 | 
|                        &info_tracks, &info_tracks_size);
 | 
| -    AppendData(source_id, info_tracks.get(), info_tracks_size);
 | 
| +    return AppendData(source_id, info_tracks.get(), info_tracks_size);
 | 
|    }
 | 
|  
 | 
|    void AppendGarbage() {
 | 
| @@ -779,7 +782,7 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|          new uint8_t[garbage_cluster_size]);
 | 
|      for (int i = 0; i < garbage_cluster_size; ++i)
 | 
|        garbage_cluster[i] = i;
 | 
| -    AppendData(garbage_cluster.get(), garbage_cluster_size);
 | 
| +    ASSERT_FALSE(AppendData(garbage_cluster.get(), garbage_cluster_size));
 | 
|    }
 | 
|  
 | 
|    void InitDoneCalled(PipelineStatus expected_status,
 | 
| @@ -869,10 +872,8 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      if (AddId(kSourceId, stream_flags) != ChunkDemuxer::kOk)
 | 
|        return false;
 | 
|  
 | 
| -    AppendInitSegmentWithEncryptedInfo(
 | 
| -        kSourceId, stream_flags,
 | 
| -        is_audio_encrypted, is_video_encrypted);
 | 
| -    return true;
 | 
| +    return AppendInitSegmentWithEncryptedInfo(
 | 
| +        kSourceId, stream_flags, is_audio_encrypted, is_video_encrypted);
 | 
|    }
 | 
|  
 | 
|    bool InitDemuxerAudioAndVideoSourcesText(const std::string& audio_id,
 | 
| @@ -900,11 +901,11 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      // set expectation to not be added during CreateInitDoneCB() could fix this.
 | 
|      ExpectInitMediaLogs(audio_flags);
 | 
|      EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -    AppendInitSegmentWithSourceId(audio_id, audio_flags);
 | 
| +    EXPECT_TRUE(AppendInitSegmentWithSourceId(audio_id, audio_flags));
 | 
|  
 | 
|      ExpectInitMediaLogs(video_flags);
 | 
|      EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -    AppendInitSegmentWithSourceId(video_id, video_flags);
 | 
| +    EXPECT_TRUE(AppendInitSegmentWithSourceId(video_id, video_flags));
 | 
|      return true;
 | 
|    }
 | 
|  
 | 
| @@ -952,7 +953,7 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      // Expect duration adjustment since actual duration differs slightly from
 | 
|      // duration in the init segment.
 | 
|      EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2746)));
 | 
| -    AppendData(bear1->data(), bear1->data_size());
 | 
| +    EXPECT_TRUE(AppendData(bear1->data(), bear1->data_size()));
 | 
|      // Last audio frame has timestamp 2721 and duration 24 (estimated from max
 | 
|      // seen so far for audio track).
 | 
|      // Last video frame has timestamp 2703 and duration 33 (from TrackEntry
 | 
| @@ -966,21 +967,21 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      // generated from media/test/data/bear-640x360.webm and
 | 
|      // media/test/data/bear-320x240.webm respectively.
 | 
|      EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -    AppendData(bear2->data(), 4340);
 | 
| +    EXPECT_TRUE(AppendData(bear2->data(), 4340));
 | 
|  
 | 
|      // Append a media segment that goes from [0.527000, 1.014000).
 | 
|      EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2));
 | 
|      EXPECT_MEDIA_LOG(GeneratedSplice(20000, 527000));
 | 
| -    AppendData(bear2->data() + 55290, 18785);
 | 
| +    EXPECT_TRUE(AppendData(bear2->data() + 55290, 18785));
 | 
|      CheckExpectedRanges("{ [0,1027) [1201,2736) }");
 | 
|  
 | 
|      // Append initialization segment for bear1 & fill gap with [779-1197)
 | 
|      // segment.
 | 
|      EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -    AppendData(bear1->data(), 4370);
 | 
| +    EXPECT_TRUE(AppendData(bear1->data(), 4370));
 | 
|      EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(23));
 | 
|      EXPECT_MEDIA_LOG(GeneratedSplice(26000, 779000));
 | 
| -    AppendData(bear1->data() + 72737, 28183);
 | 
| +    EXPECT_TRUE(AppendData(bear1->data() + 72737, 28183));
 | 
|      CheckExpectedRanges("{ [0,2736) }");
 | 
|  
 | 
|      MarkEndOfStream(PIPELINE_OK);
 | 
| @@ -1327,7 +1328,7 @@ class ChunkDemuxerTest : public ::testing::Test {
 | 
|      // Read a WebM file into memory and send the data to the demuxer.
 | 
|      scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile(filename);
 | 
|      EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -    AppendDataInPieces(buffer->data(), buffer->data_size(), 512);
 | 
| +    EXPECT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 512));
 | 
|  
 | 
|      // Verify that the timestamps on the first few packets match what we
 | 
|      // expect.
 | 
| @@ -1445,8 +1446,13 @@ TEST_F(ChunkDemuxerTest, Init) {
 | 
|      if (has_video)
 | 
|        stream_flags |= HAS_VIDEO;
 | 
|  
 | 
| -    ASSERT_TRUE(InitDemuxerWithEncryptionInfo(
 | 
| -        stream_flags, is_audio_encrypted, is_video_encrypted));
 | 
| +    if (has_audio || has_video) {
 | 
| +      ASSERT_TRUE(InitDemuxerWithEncryptionInfo(
 | 
| +          stream_flags, is_audio_encrypted, is_video_encrypted));
 | 
| +    } else {
 | 
| +      ASSERT_FALSE(InitDemuxerWithEncryptionInfo(
 | 
| +          stream_flags, is_audio_encrypted, is_video_encrypted));
 | 
| +    }
 | 
|  
 | 
|      DemuxerStream* audio_stream = demuxer_->GetStream(DemuxerStream::AUDIO);
 | 
|      if (has_audio) {
 | 
| @@ -1581,10 +1587,10 @@ TEST_F(ChunkDemuxerTest, SingleTextTrackIdChange) {
 | 
|        HAS_TEXT | HAS_AUDIO | HAS_VIDEO | USE_ALTERNATE_TEXT_TRACK_ID, false,
 | 
|        false, &info_tracks, &info_tracks_size);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  demuxer_->AppendData(kSourceId, info_tracks.get(), info_tracks_size,
 | 
| -                       append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_TRUE(demuxer_->AppendData(
 | 
| +      kSourceId, info_tracks.get(), info_tracks_size,
 | 
| +      append_window_start_for_next_append_, append_window_end_for_next_append_,
 | 
| +      ×tamp_offset_map_[kSourceId]));
 | 
|  
 | 
|    AppendMuxedCluster(
 | 
|        MuxedStreamInfo(kAudioTrackNum, "46K 69K", 23),
 | 
| @@ -1617,8 +1623,9 @@ TEST_F(ChunkDemuxerTest, AudioVideoTrackIdsChange) {
 | 
|    CheckExpectedRanges("{ [0,46) }");
 | 
|  
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegment(HAS_AUDIO | HAS_VIDEO | USE_ALTERNATE_AUDIO_TRACK_ID |
 | 
| -                    USE_ALTERNATE_VIDEO_TRACK_ID);
 | 
| +  ASSERT_TRUE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO |
 | 
| +                                USE_ALTERNATE_AUDIO_TRACK_ID |
 | 
| +                                USE_ALTERNATE_VIDEO_TRACK_ID));
 | 
|    AppendMuxedCluster(MuxedStreamInfo(kAlternateAudioTrackNum, "46K 69K", 63),
 | 
|                       MuxedStreamInfo(kAlternateVideoTrackNum, "60K", 23));
 | 
|    CheckExpectedRanges("{ [0,92) }");
 | 
| @@ -1653,7 +1660,7 @@ TEST_F(ChunkDemuxerTest, InitSegmentSetsNeedRandomAccessPointFlag) {
 | 
|    CheckExpectedRanges("{ [23,46) }");
 | 
|  
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegment(HAS_TEXT | HAS_AUDIO | HAS_VIDEO);
 | 
| +  ASSERT_TRUE(AppendInitSegment(HAS_TEXT | HAS_AUDIO | HAS_VIDEO));
 | 
|    AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "46K 69K", 23),
 | 
|                       MuxedStreamInfo(kVideoTrackNum, "60 90K", 30),
 | 
|                       MuxedStreamInfo(kTextTrackNum, "80K 90K"));
 | 
| @@ -1677,7 +1684,7 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeAllInitSegmentsAppended) {
 | 
|  
 | 
|    ExpectInitMediaLogs(HAS_AUDIO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegmentWithSourceId("audio", HAS_AUDIO);
 | 
| +  ASSERT_TRUE(AppendInitSegmentWithSourceId("audio", HAS_AUDIO));
 | 
|  
 | 
|    ShutdownDemuxer();
 | 
|  }
 | 
| @@ -1696,7 +1703,8 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeAllInitSegmentsAppendedText) {
 | 
|  
 | 
|    ExpectInitMediaLogs(HAS_VIDEO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegmentWithSourceId("video_and_text", HAS_VIDEO | HAS_TEXT);
 | 
| +  ASSERT_TRUE(
 | 
| +      AppendInitSegmentWithSourceId("video_and_text", HAS_VIDEO | HAS_TEXT));
 | 
|  
 | 
|    ShutdownDemuxer();
 | 
|  }
 | 
| @@ -1735,7 +1743,7 @@ TEST_F(ChunkDemuxerTest, Shutdown_EndOfStreamWhileWaitingForData) {
 | 
|  // arrives.
 | 
|  TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    InSequence s;
 | 
|  
 | 
| @@ -1747,7 +1755,7 @@ TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) {
 | 
|  
 | 
|    Checkpoint(1);
 | 
|  
 | 
| -  AppendCluster(kDefaultSecondCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
 | 
|  
 | 
|    message_loop_.RunUntilIdle();
 | 
|  
 | 
| @@ -1757,7 +1765,7 @@ TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) {
 | 
|  // Test that parsing errors are handled for clusters appended after init.
 | 
|  TEST_F(ChunkDemuxerTest, ErrorWhileParsingClusterAfterInit) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
|    EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED));
 | 
| @@ -1779,7 +1787,7 @@ TEST_F(ChunkDemuxerTest, SeekWhileParsingCluster) {
 | 
|    int second_append_size = cluster_a->size() - first_append_size;
 | 
|  
 | 
|    // Append the first part of the cluster.
 | 
| -  AppendData(cluster_a->data(), first_append_size);
 | 
| +  ASSERT_TRUE(AppendData(cluster_a->data(), first_append_size));
 | 
|  
 | 
|    ExpectRead(DemuxerStream::AUDIO, 0);
 | 
|    ExpectRead(DemuxerStream::VIDEO, 0);
 | 
| @@ -1788,11 +1796,12 @@ TEST_F(ChunkDemuxerTest, SeekWhileParsingCluster) {
 | 
|    Seek(base::TimeDelta::FromSeconds(5));
 | 
|  
 | 
|    // Append the rest of the cluster.
 | 
| -  AppendData(cluster_a->data() + first_append_size, second_append_size);
 | 
| +  ASSERT_TRUE(
 | 
| +      AppendData(cluster_a->data() + first_append_size, second_append_size));
 | 
|  
 | 
|    // Append the new cluster and verify that only the blocks
 | 
|    // in the new cluster are returned.
 | 
| -  AppendCluster(GenerateCluster(5000, 6));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(5000, 6)));
 | 
|    GenerateExpectedReads(5000, 6);
 | 
|  }
 | 
|  
 | 
| @@ -1802,17 +1811,17 @@ TEST_F(ChunkDemuxerTest, AppendDataBeforeInit) {
 | 
|    int info_tracks_size = 0;
 | 
|    CreateInitSegment(HAS_AUDIO | HAS_VIDEO,
 | 
|                      false, false, &info_tracks, &info_tracks_size);
 | 
| -  demuxer_->AppendData(kSourceId, info_tracks.get(), info_tracks_size,
 | 
| -                       append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_FALSE(demuxer_->AppendData(
 | 
| +      kSourceId, info_tracks.get(), info_tracks_size,
 | 
| +      append_window_start_for_next_append_, append_window_end_for_next_append_,
 | 
| +      ×tamp_offset_map_[kSourceId]));
 | 
|  }
 | 
|  
 | 
|  // Make sure Read() callbacks are dispatched with the proper data.
 | 
|  TEST_F(ChunkDemuxerTest, Read) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    bool audio_read_done = false;
 | 
|    bool video_read_done = false;
 | 
| @@ -1829,27 +1838,27 @@ TEST_F(ChunkDemuxerTest, Read) {
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, OutOfOrderClusters) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|    EXPECT_MEDIA_LOG(GeneratedSplice(13000, 10000));
 | 
| -  AppendCluster(GenerateCluster(10, 4));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(10, 4)));
 | 
|  
 | 
|    // Make sure that AppendCluster() does not fail with a cluster that has
 | 
|    // overlaps with the previously appended cluster.
 | 
|    EXPECT_MEDIA_LOG(SkippingSpliceAlreadySpliced(0));
 | 
| -  AppendCluster(GenerateCluster(5, 4));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(5, 4)));
 | 
|  
 | 
|    // Verify that AppendData() can still accept more data.
 | 
|    std::unique_ptr<Cluster> cluster_c(GenerateCluster(45, 2));
 | 
|    EXPECT_MEDIA_LOG(GeneratedSplice(6000, 45000));
 | 
| -  demuxer_->AppendData(kSourceId, cluster_c->data(), cluster_c->size(),
 | 
| -                       append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_TRUE(demuxer_->AppendData(
 | 
| +      kSourceId, cluster_c->data(), cluster_c->size(),
 | 
| +      append_window_start_for_next_append_, append_window_end_for_next_append_,
 | 
| +      ×tamp_offset_map_[kSourceId]));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, NonMonotonicButAboveClusterTimecode) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    ClusterBuilder cb;
 | 
|  
 | 
| @@ -1864,19 +1873,19 @@ TEST_F(ChunkDemuxerTest, NonMonotonicButAboveClusterTimecode) {
 | 
|    EXPECT_MEDIA_LOG(WebMOutOfOrderTimecode());
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
|    EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED));
 | 
| -  AppendCluster(cb.Finish());
 | 
| +  ASSERT_FALSE(AppendCluster(cb.Finish()));
 | 
|  
 | 
|    // Verify that AppendData() ignores data after the error.
 | 
|    std::unique_ptr<Cluster> cluster_b(GenerateCluster(20, 2));
 | 
| -  demuxer_->AppendData(kSourceId, cluster_b->data(), cluster_b->size(),
 | 
| -                       append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_FALSE(demuxer_->AppendData(
 | 
| +      kSourceId, cluster_b->data(), cluster_b->size(),
 | 
| +      append_window_start_for_next_append_, append_window_end_for_next_append_,
 | 
| +      ×tamp_offset_map_[kSourceId]));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, BackwardsAndBeforeClusterTimecode) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    ClusterBuilder cb;
 | 
|  
 | 
| @@ -1891,20 +1900,20 @@ TEST_F(ChunkDemuxerTest, BackwardsAndBeforeClusterTimecode) {
 | 
|    EXPECT_MEDIA_LOG(WebMNegativeTimecodeOffset("-2"));
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
|    EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED));
 | 
| -  AppendCluster(cb.Finish());
 | 
| +  ASSERT_FALSE(AppendCluster(cb.Finish()));
 | 
|  
 | 
|    // Verify that AppendData() ignores data after the error.
 | 
|    std::unique_ptr<Cluster> cluster_b(GenerateCluster(6, 2));
 | 
| -  demuxer_->AppendData(kSourceId, cluster_b->data(), cluster_b->size(),
 | 
| -                       append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_FALSE(demuxer_->AppendData(
 | 
| +      kSourceId, cluster_b->data(), cluster_b->size(),
 | 
| +      append_window_start_for_next_append_, append_window_end_for_next_append_,
 | 
| +      ×tamp_offset_map_[kSourceId]));
 | 
|  }
 | 
|  
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, PerStreamMonotonicallyIncreasingTimestamps) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    ClusterBuilder cb;
 | 
|  
 | 
| @@ -1919,7 +1928,7 @@ TEST_F(ChunkDemuxerTest, PerStreamMonotonicallyIncreasingTimestamps) {
 | 
|    EXPECT_MEDIA_LOG(WebMOutOfOrderTimecode());
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
|    EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED));
 | 
| -  AppendCluster(cb.Finish());
 | 
| +  ASSERT_FALSE(AppendCluster(cb.Finish()));
 | 
|  }
 | 
|  
 | 
|  // Test the case where a cluster is passed to AppendCluster() before
 | 
| @@ -1933,7 +1942,7 @@ TEST_F(ChunkDemuxerTest, ClusterBeforeInitSegment) {
 | 
|  
 | 
|    EXPECT_MEDIA_LOG(WebMClusterBeforeFirstInfo());
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
| -  AppendCluster(GenerateCluster(0, 1));
 | 
| +  ASSERT_FALSE(AppendCluster(GenerateCluster(0, 1)));
 | 
|  }
 | 
|  
 | 
|  // Test cases where we get an MarkEndOfStream() call during initialization.
 | 
| @@ -1970,7 +1979,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWithNoMediaAppend) {
 | 
|  TEST_F(ChunkDemuxerTest, DecodeErrorEndOfStream) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|    CheckExpectedRanges(kDefaultFirstClusterRange);
 | 
|  
 | 
|    EXPECT_CALL(host_,
 | 
| @@ -1982,7 +1991,7 @@ TEST_F(ChunkDemuxerTest, DecodeErrorEndOfStream) {
 | 
|  TEST_F(ChunkDemuxerTest, NetworkErrorEndOfStream) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|    CheckExpectedRanges(kDefaultFirstClusterRange);
 | 
|  
 | 
|    EXPECT_CALL(host_,
 | 
| @@ -2043,7 +2052,7 @@ class EndOfStreamHelper {
 | 
|  TEST_F(ChunkDemuxerTest, EndOfStreamWithPendingReads) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(GenerateCluster(0, 2));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2)));
 | 
|  
 | 
|    bool audio_read_done_1 = false;
 | 
|    bool video_read_done_1 = false;
 | 
| @@ -2078,7 +2087,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWithPendingReads) {
 | 
|  TEST_F(ChunkDemuxerTest, ReadsAfterEndOfStream) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(GenerateCluster(0, 2));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2)));
 | 
|  
 | 
|    bool audio_read_done_1 = false;
 | 
|    bool video_read_done_1 = false;
 | 
| @@ -2117,7 +2126,7 @@ TEST_F(ChunkDemuxerTest, ReadsAfterEndOfStream) {
 | 
|  TEST_F(ChunkDemuxerTest, EndOfStreamDuringCanceledSeek) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(0, 10);
 | 
| +  ASSERT_TRUE(AppendCluster(0, 10));
 | 
|    EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(138)));
 | 
|    MarkEndOfStream(PIPELINE_OK);
 | 
|  
 | 
| @@ -2216,7 +2225,7 @@ TEST_F(ChunkDemuxerTest, AppendingInPieces) {
 | 
|  
 | 
|    ExpectInitMediaLogs(HAS_AUDIO | HAS_VIDEO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendDataInPieces(buffer.get(), buffer_size);
 | 
| +  ASSERT_TRUE(AppendDataInPieces(buffer.get(), buffer_size));
 | 
|  
 | 
|    GenerateExpectedReads(0, 9);
 | 
|  }
 | 
| @@ -2348,7 +2357,7 @@ TEST_F(ChunkDemuxerTest, IncrementalClusterParsing) {
 | 
|    // Append data one byte at a time until one or both reads complete.
 | 
|    int i = 0;
 | 
|    for (; i < cluster->size() && !(audio_read_done || video_read_done); ++i) {
 | 
| -    AppendData(cluster->data() + i, 1);
 | 
| +    ASSERT_TRUE(AppendData(cluster->data() + i, 1));
 | 
|      message_loop_.RunUntilIdle();
 | 
|    }
 | 
|  
 | 
| @@ -2371,7 +2380,7 @@ TEST_F(ChunkDemuxerTest, IncrementalClusterParsing) {
 | 
|  
 | 
|    // Append the remaining data.
 | 
|    ASSERT_LT(i, cluster->size());
 | 
| -  AppendData(cluster->data() + i, cluster->size() - i);
 | 
| +  ASSERT_TRUE(AppendData(cluster->data() + i, cluster->size() - i));
 | 
|  
 | 
|    message_loop_.RunUntilIdle();
 | 
|  
 | 
| @@ -2390,9 +2399,9 @@ TEST_F(ChunkDemuxerTest, ParseErrorDuringInit) {
 | 
|  
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
|    uint8_t tmp = 0;
 | 
| -  demuxer_->AppendData(kSourceId, &tmp, 1, append_window_start_for_next_append_,
 | 
| -                       append_window_end_for_next_append_,
 | 
| -                       ×tamp_offset_map_[kSourceId]);
 | 
| +  ASSERT_FALSE(demuxer_->AppendData(
 | 
| +      kSourceId, &tmp, 1, append_window_start_for_next_append_,
 | 
| +      append_window_end_for_next_append_, ×tamp_offset_map_[kSourceId]));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, AVHeadersWithAudioOnlyType) {
 | 
| @@ -2413,7 +2422,7 @@ TEST_F(ChunkDemuxerTest, AVHeadersWithAudioOnlyType) {
 | 
|    // Video track is unexpected per mimetype.
 | 
|    EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("a video", true));
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
| -  AppendInitSegment(HAS_AUDIO | HAS_VIDEO);
 | 
| +  ASSERT_FALSE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, AVHeadersWithVideoOnlyType) {
 | 
| @@ -2434,7 +2443,7 @@ TEST_F(ChunkDemuxerTest, AVHeadersWithVideoOnlyType) {
 | 
|    // Audio track is unexpected per mimetype.
 | 
|    EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("an audio", true));
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
| -  AppendInitSegment(HAS_AUDIO | HAS_VIDEO);
 | 
| +  ASSERT_FALSE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, AudioOnlyHeaderWithAVType) {
 | 
| @@ -2456,7 +2465,7 @@ TEST_F(ChunkDemuxerTest, AudioOnlyHeaderWithAVType) {
 | 
|    // Video track is also expected per mimetype.
 | 
|    EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("a video", false));
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
| -  AppendInitSegment(HAS_AUDIO);
 | 
| +  ASSERT_FALSE(AppendInitSegment(HAS_AUDIO));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, VideoOnlyHeaderWithAVType) {
 | 
| @@ -2478,19 +2487,19 @@ TEST_F(ChunkDemuxerTest, VideoOnlyHeaderWithAVType) {
 | 
|    // Audio track is also expected per mimetype.
 | 
|    EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("an audio", false));
 | 
|    EXPECT_MEDIA_LOG(StreamParsingFailed());
 | 
| -  AppendInitSegment(HAS_VIDEO);
 | 
| +  ASSERT_FALSE(AppendInitSegment(HAS_VIDEO));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, MultipleHeaders) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    // Append another identical initialization segment.
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegment(HAS_AUDIO | HAS_VIDEO);
 | 
| +  ASSERT_TRUE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultSecondCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
 | 
|  
 | 
|    GenerateExpectedReads(0, 9);
 | 
|  }
 | 
| @@ -2501,11 +2510,13 @@ TEST_F(ChunkDemuxerTest, AddSeparateSourcesForAudioAndVideo) {
 | 
|    ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
 | 
|  
 | 
|    // Append audio and video data into separate source ids.
 | 
| -  AppendCluster(audio_id,
 | 
| -      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)));
 | 
|    GenerateAudioStreamExpectedReads(0, 4);
 | 
| -  AppendCluster(video_id,
 | 
| -      GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(video_id,
 | 
| +                            GenerateSingleStreamCluster(0, 132, kVideoTrackNum,
 | 
| +                                                        kVideoBlockDuration)));
 | 
|    GenerateVideoStreamExpectedReads(0, 4);
 | 
|  }
 | 
|  
 | 
| @@ -2521,11 +2532,13 @@ TEST_F(ChunkDemuxerTest, AddSeparateSourcesForAudioAndVideoText) {
 | 
|    ASSERT_TRUE(InitDemuxerAudioAndVideoSourcesText(audio_id, video_id, true));
 | 
|  
 | 
|    // Append audio and video data into separate source ids.
 | 
| -  AppendCluster(audio_id,
 | 
| -      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)));
 | 
|    GenerateAudioStreamExpectedReads(0, 4);
 | 
| -  AppendCluster(video_id,
 | 
| -      GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(video_id,
 | 
| +                            GenerateSingleStreamCluster(0, 132, kVideoTrackNum,
 | 
| +                                                        kVideoBlockDuration)));
 | 
|    GenerateVideoStreamExpectedReads(0, 4);
 | 
|  }
 | 
|  
 | 
| @@ -2544,7 +2557,7 @@ TEST_F(ChunkDemuxerTest, AddIdFailures) {
 | 
|  
 | 
|    ExpectInitMediaLogs(HAS_AUDIO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegmentWithSourceId(audio_id, HAS_AUDIO);
 | 
| +  ASSERT_TRUE(AppendInitSegmentWithSourceId(audio_id, HAS_AUDIO));
 | 
|  
 | 
|    // Adding an id after append should fail.
 | 
|    ASSERT_EQ(AddId(video_id, HAS_VIDEO), ChunkDemuxer::kReachedIdLimit);
 | 
| @@ -2557,10 +2570,12 @@ TEST_F(ChunkDemuxerTest, RemoveId) {
 | 
|    ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
 | 
|  
 | 
|    // Append audio and video data into separate source ids.
 | 
| -  AppendCluster(audio_id,
 | 
| -      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id,
 | 
| -      GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(video_id,
 | 
| +                            GenerateSingleStreamCluster(0, 132, kVideoTrackNum,
 | 
| +                                                        kVideoBlockDuration)));
 | 
|  
 | 
|    // Read() from audio should return normal buffers.
 | 
|    GenerateAudioStreamExpectedReads(0, 4);
 | 
| @@ -2593,7 +2608,7 @@ TEST_F(ChunkDemuxerTest, SeekCanceled) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
|    // Append cluster at the beginning of the stream.
 | 
| -  AppendCluster(GenerateCluster(0, 4));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 | 
|  
 | 
|    // Seek to an unbuffered region.
 | 
|    Seek(base::TimeDelta::FromSeconds(50));
 | 
| @@ -2623,7 +2638,7 @@ TEST_F(ChunkDemuxerTest, SeekCanceledWhileWaitingForSeek) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
|    // Append cluster at the beginning of the stream.
 | 
| -  AppendCluster(GenerateCluster(0, 4));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 | 
|  
 | 
|    // Start waiting for a seek.
 | 
|    base::TimeDelta seek_time1 = base::TimeDelta::FromSeconds(50);
 | 
| @@ -2653,12 +2668,12 @@ TEST_F(ChunkDemuxerTest, SeekAudioAndVideoSources) {
 | 
|    std::string video_id = "video1";
 | 
|    ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
 | 
|  
 | 
| -  AppendCluster(
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
|        audio_id,
 | 
| -      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(
 | 
| -      video_id,
 | 
| -      GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(video_id,
 | 
| +                            GenerateSingleStreamCluster(0, 132, kVideoTrackNum,
 | 
| +                                                        kVideoBlockDuration)));
 | 
|  
 | 
|    // Read() should return buffers at 0.
 | 
|    bool audio_read_done = false;
 | 
| @@ -2687,12 +2702,12 @@ TEST_F(ChunkDemuxerTest, SeekAudioAndVideoSources) {
 | 
|    EXPECT_FALSE(audio_read_done);
 | 
|    EXPECT_FALSE(video_read_done);
 | 
|  
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(
 | 
| -                    3000, 3092, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(
 | 
| -                    3000, 3132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(3000, 3092, kAudioTrackNum,
 | 
| +                                            kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(3000, 3132, kVideoTrackNum,
 | 
| +                                            kVideoBlockDuration)));
 | 
|  
 | 
|    message_loop_.RunUntilIdle();
 | 
|  
 | 
| @@ -2781,48 +2796,34 @@ TEST_F(ChunkDemuxerTest, EndOfStreamDuringPendingSeek) {
 | 
|  
 | 
|  // Test ranges in an audio-only stream.
 | 
|  TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioIdOnly) {
 | 
| -  EXPECT_CALL(*this, DemuxerOpened());
 | 
| -  demuxer_->Initialize(
 | 
| -      &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK), true);
 | 
| -
 | 
| -  ASSERT_EQ(AddId(kSourceId, HAS_AUDIO), ChunkDemuxer::kOk);
 | 
| -  ExpectInitMediaLogs(HAS_AUDIO);
 | 
| -  EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegment(HAS_AUDIO);
 | 
| +  ASSERT_TRUE(InitDemuxer(HAS_AUDIO));
 | 
|  
 | 
|    // Test a simple cluster.
 | 
| -  AppendCluster(
 | 
| -      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [0,92) }");
 | 
|  
 | 
|    // Append a disjoint cluster to check for two separate ranges.
 | 
| -  AppendCluster(GenerateSingleStreamCluster(
 | 
| -      150, 219, kAudioTrackNum, kAudioBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster(
 | 
| +      150, 219, kAudioTrackNum, kAudioBlockDuration)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [0,92) [150,219) }");
 | 
|  }
 | 
|  
 | 
|  // Test ranges in a video-only stream.
 | 
|  TEST_F(ChunkDemuxerTest, GetBufferedRanges_VideoIdOnly) {
 | 
| -  EXPECT_CALL(*this, DemuxerOpened());
 | 
| -  demuxer_->Initialize(
 | 
| -      &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK), true);
 | 
| -
 | 
| -  ASSERT_EQ(AddId(kSourceId, HAS_VIDEO), ChunkDemuxer::kOk);
 | 
| -  ExpectInitMediaLogs(HAS_VIDEO);
 | 
| -  EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendInitSegment(HAS_VIDEO);
 | 
| +  ASSERT_TRUE(InitDemuxer(HAS_VIDEO));
 | 
|  
 | 
|    // Test a simple cluster.
 | 
| -  AppendCluster(
 | 
| -      GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster(0, 132, kVideoTrackNum,
 | 
| +                                                        kVideoBlockDuration)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [0,132) }");
 | 
|  
 | 
|    // Append a disjoint cluster to check for two separate ranges.
 | 
| -  AppendCluster(GenerateSingleStreamCluster(
 | 
| -      200, 299, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster(
 | 
| +      200, 299, kVideoTrackNum, kVideoBlockDuration)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [0,132) [200,299) }");
 | 
|  }
 | 
| @@ -2839,10 +2840,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|    // Buffered Range: 0 -> 23
 | 
|    // Audio block duration is smaller than video block duration,
 | 
|    // so the buffered ranges should correspond to the audio blocks.
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(0, 23, kAudioTrackNum, 23));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(0, 33, kVideoTrackNum, 33));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(0, 23, kAudioTrackNum, 23)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(0, 33, kVideoTrackNum, 33)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) }");
 | 
|    CheckExpectedRangesForMediaSource("{ [0,23) }");
 | 
| @@ -2850,10 +2851,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|    // Audio blocks: 300 -> 400
 | 
|    // Video blocks: 320 -> 420
 | 
|    // Buffered Range: 320 -> 400  (jagged start and end across SourceBuffers)
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) [300,400) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) [320,420) }");
 | 
|    CheckExpectedRangesForMediaSource("{ [0,23) [320,400) }");
 | 
| @@ -2861,10 +2862,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|    // Audio block: 520 -> 590
 | 
|    // Video block: 500 -> 570
 | 
|    // Buffered Range: 520 -> 570  (jagged start and end across SourceBuffers)
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) [300,400) [520,590) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) [320,420) [500,570) }");
 | 
|    CheckExpectedRangesForMediaSource("{ [0,23) [320,400) [520,570) }");
 | 
| @@ -2872,10 +2873,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|    // Audio block: 720 -> 750
 | 
|    // Video block: 700 -> 770
 | 
|    // Buffered Range: 720 -> 750  (complete overlap of audio)
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO,
 | 
|                        "{ [0,23) [300,400) [520,590) [720,750) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO,
 | 
| @@ -2885,10 +2886,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|    // Audio block: 900 -> 970
 | 
|    // Video block: 920 -> 950
 | 
|    // Buffered Range: 920 -> 950  (complete overlap of video)
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO,
 | 
|                        "{ [0,23) [300,400) [520,590) [720,750) [900,970) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO,
 | 
| @@ -2898,10 +2899,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) {
 | 
|  
 | 
|    // Appending within buffered range should not affect buffered ranges.
 | 
|    EXPECT_MEDIA_LOG(GeneratedSplice(40000, 930000));
 | 
| -  AppendCluster(audio_id,
 | 
| -                GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20));
 | 
| -  AppendCluster(video_id,
 | 
| -                GenerateSingleStreamCluster(930, 950, kVideoTrackNum, 20));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id, GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id, GenerateSingleStreamCluster(930, 950, kVideoTrackNum, 20)));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO,
 | 
|                        "{ [0,23) [300,400) [520,590) [720,750) [900,970) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO,
 | 
| @@ -3077,7 +3078,7 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodes) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
|    // Create a cluster where the video timecode begins 25ms after the audio.
 | 
| -  AppendCluster(GenerateCluster(0, 25, 8));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 25, 8)));
 | 
|  
 | 
|    Seek(base::TimeDelta::FromSeconds(0));
 | 
|    GenerateExpectedReads(0, 25, 8);
 | 
| @@ -3087,7 +3088,7 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodes) {
 | 
|  
 | 
|    // Generate a cluster to fulfill this seek, where audio timecode begins 25ms
 | 
|    // after the video.
 | 
| -  AppendCluster(GenerateCluster(5025, 5000, 8));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(5025, 5000, 8)));
 | 
|    GenerateExpectedReads(5025, 5000, 8);
 | 
|  }
 | 
|  
 | 
| @@ -3098,10 +3099,14 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodesSeparateSources) {
 | 
|  
 | 
|    // Generate two streams where the video stream starts 5ms after the audio
 | 
|    // stream and append them.
 | 
| -  AppendCluster(audio_id, GenerateSingleStreamCluster(
 | 
| -      25, 4 * kAudioBlockDuration + 25, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id, GenerateSingleStreamCluster(
 | 
| -      30, 4 * kVideoBlockDuration + 30, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(25, 4 * kAudioBlockDuration + 25,
 | 
| +                                  kAudioTrackNum, kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id,
 | 
| +      GenerateSingleStreamCluster(30, 4 * kVideoBlockDuration + 30,
 | 
| +                                  kVideoTrackNum, kVideoBlockDuration)));
 | 
|  
 | 
|    // Both streams should be able to fulfill a seek to 25.
 | 
|    Seek(base::TimeDelta::FromMilliseconds(25));
 | 
| @@ -3116,10 +3121,14 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodesOutOfRange) {
 | 
|  
 | 
|    // Generate two streams where the video stream starts 10s after the audio
 | 
|    // stream and append them.
 | 
| -  AppendCluster(audio_id, GenerateSingleStreamCluster(0,
 | 
| -      4 * kAudioBlockDuration + 0, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id, GenerateSingleStreamCluster(10000,
 | 
| -      4 * kVideoBlockDuration + 10000, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(0, 4 * kAudioBlockDuration + 0,
 | 
| +                                  kAudioTrackNum, kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id,
 | 
| +      GenerateSingleStreamCluster(10000, 4 * kVideoBlockDuration + 10000,
 | 
| +                                  kVideoTrackNum, kVideoBlockDuration)));
 | 
|  
 | 
|    // Should not be able to fulfill a seek to 0.
 | 
|    base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(0);
 | 
| @@ -3186,8 +3195,8 @@ TEST_F(ChunkDemuxerTest, EndOfStreamStillSetAfterSeek) {
 | 
|    base::TimeDelta kLastAudioTimestamp = base::TimeDelta::FromMilliseconds(92);
 | 
|    base::TimeDelta kLastVideoTimestamp = base::TimeDelta::FromMilliseconds(99);
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| -  AppendCluster(kDefaultSecondCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
 | 
|    MarkEndOfStream(PIPELINE_OK);
 | 
|  
 | 
|    DemuxerStream::Status status;
 | 
| @@ -3231,12 +3240,12 @@ TEST_F(ChunkDemuxerTest, EndOfStreamDuringSeek) {
 | 
|  
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    base::TimeDelta seek_time = base::TimeDelta::FromSeconds(0);
 | 
|    demuxer_->StartWaitingForSeek(seek_time);
 | 
|  
 | 
| -  AppendCluster(kDefaultSecondCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
 | 
|    EXPECT_CALL(host_, SetDuration(
 | 
|        base::TimeDelta::FromMilliseconds(kDefaultSecondClusterEndTimestamp)));
 | 
|    MarkEndOfStream(PIPELINE_OK);
 | 
| @@ -3393,7 +3402,7 @@ TEST_F(ChunkDemuxerTest, TimestampPositiveOffset) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
|    ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(30)));
 | 
| -  AppendCluster(GenerateCluster(0, 2));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2)));
 | 
|  
 | 
|    Seek(base::TimeDelta::FromMilliseconds(30000));
 | 
|  
 | 
| @@ -3404,7 +3413,7 @@ TEST_F(ChunkDemuxerTest, TimestampNegativeOffset) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
|    ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(-1)));
 | 
| -  AppendCluster(GenerateCluster(1000, 2));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(1000, 2)));
 | 
|  
 | 
|    GenerateExpectedReads(0, 2);
 | 
|  }
 | 
| @@ -3418,10 +3427,14 @@ TEST_F(ChunkDemuxerTest, TimestampOffsetSeparateStreams) {
 | 
|        audio_id, base::TimeDelta::FromMilliseconds(-2500)));
 | 
|    ASSERT_TRUE(SetTimestampOffset(
 | 
|        video_id, base::TimeDelta::FromMilliseconds(-2500)));
 | 
| -  AppendCluster(audio_id, GenerateSingleStreamCluster(2500,
 | 
| -      2500 + kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id, GenerateSingleStreamCluster(2500,
 | 
| -      2500 + kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(2500, 2500 + kAudioBlockDuration * 4,
 | 
| +                                  kAudioTrackNum, kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id,
 | 
| +      GenerateSingleStreamCluster(2500, 2500 + kVideoBlockDuration * 4,
 | 
| +                                  kVideoTrackNum, kVideoBlockDuration)));
 | 
|    GenerateAudioStreamExpectedReads(0, 4);
 | 
|    GenerateVideoStreamExpectedReads(0, 4);
 | 
|  
 | 
| @@ -3431,10 +3444,14 @@ TEST_F(ChunkDemuxerTest, TimestampOffsetSeparateStreams) {
 | 
|        audio_id, base::TimeDelta::FromMilliseconds(27300)));
 | 
|    ASSERT_TRUE(SetTimestampOffset(
 | 
|        video_id, base::TimeDelta::FromMilliseconds(27300)));
 | 
| -  AppendCluster(audio_id, GenerateSingleStreamCluster(
 | 
| -      0, kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration));
 | 
| -  AppendCluster(video_id, GenerateSingleStreamCluster(
 | 
| -      0, kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      audio_id,
 | 
| +      GenerateSingleStreamCluster(0, kAudioBlockDuration * 4, kAudioTrackNum,
 | 
| +                                  kAudioBlockDuration)));
 | 
| +  ASSERT_TRUE(AppendCluster(
 | 
| +      video_id,
 | 
| +      GenerateSingleStreamCluster(0, kVideoBlockDuration * 4, kVideoTrackNum,
 | 
| +                                  kVideoBlockDuration)));
 | 
|    GenerateVideoStreamExpectedReads(27300, 4);
 | 
|    GenerateAudioStreamExpectedReads(27300, 4);
 | 
|  }
 | 
| @@ -3444,7 +3461,7 @@ TEST_F(ChunkDemuxerTest, IsParsingMediaSegmentMidMediaSegment) {
 | 
|  
 | 
|    std::unique_ptr<Cluster> cluster = GenerateCluster(0, 2);
 | 
|    // Append only part of the cluster data.
 | 
| -  AppendData(cluster->data(), cluster->size() - 13);
 | 
| +  ASSERT_TRUE(AppendData(cluster->data(), cluster->size() - 13));
 | 
|  
 | 
|    // Confirm we're in the middle of parsing a media segment.
 | 
|    ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId));
 | 
| @@ -3487,7 +3504,7 @@ TEST_F(ChunkDemuxerTest, EmitBuffersDuringAbort) {
 | 
|  
 | 
|    scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("bear-1280x720.ts");
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendData(kSourceId, buffer->data(), buffer->data_size());
 | 
| +  ASSERT_TRUE(AppendData(kSourceId, buffer->data(), buffer->data_size()));
 | 
|  
 | 
|    // Confirm we're in the middle of parsing a media segment.
 | 
|    ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId));
 | 
| @@ -3535,7 +3552,7 @@ TEST_F(ChunkDemuxerTest, SeekCompleteDuringAbort) {
 | 
|  
 | 
|    scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("bear-1280x720.ts");
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
| -  AppendData(kSourceId, buffer->data(), buffer->data_size());
 | 
| +  ASSERT_TRUE(AppendData(kSourceId, buffer->data(), buffer->data_size()));
 | 
|  
 | 
|    // Confirm we're in the middle of parsing a media segment.
 | 
|    ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId));
 | 
| @@ -3628,7 +3645,7 @@ TEST_F(ChunkDemuxerTest, WebMIsParsingMediaSegmentDetection) {
 | 
|    EXPECT_MEDIA_LOG(GeneratedSplice(22000, 2000));
 | 
|    for (size_t i = 0; i < sizeof(kBuffer); i++) {
 | 
|      DVLOG(3) << "Appending and testing index " << i;
 | 
| -    AppendData(kBuffer + i, 1);
 | 
| +    ASSERT_TRUE(AppendData(kBuffer + i, 1));
 | 
|      bool expected_return_value = kExpectedReturnValues[i];
 | 
|      EXPECT_EQ(expected_return_value,
 | 
|                demuxer_->IsParsingMediaSegment(kSourceId));
 | 
| @@ -3640,9 +3657,9 @@ TEST_F(ChunkDemuxerTest, DurationChange) {
 | 
|    const int kStreamDuration = kDefaultDuration().InMilliseconds();
 | 
|  
 | 
|    // Add data leading up to the currently set duration.
 | 
| -  AppendCluster(GenerateCluster(kStreamDuration - kAudioBlockDuration,
 | 
| -                                kStreamDuration - kVideoBlockDuration,
 | 
| -                                2));
 | 
| +  ASSERT_TRUE(
 | 
| +      AppendCluster(GenerateCluster(kStreamDuration - kAudioBlockDuration,
 | 
| +                                    kStreamDuration - kVideoBlockDuration, 2)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [201191,201224) }");
 | 
|  
 | 
| @@ -3652,7 +3669,8 @@ TEST_F(ChunkDemuxerTest, DurationChange) {
 | 
|    const int kNewStreamDurationVideo = kStreamDuration + kVideoBlockDuration;
 | 
|    EXPECT_CALL(host_, SetDuration(
 | 
|        base::TimeDelta::FromMilliseconds(kNewStreamDurationVideo)));
 | 
| -  AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2));
 | 
| +  ASSERT_TRUE(
 | 
| +      AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2)));
 | 
|  
 | 
|    CheckExpectedRanges("{ [201191,201247) }");
 | 
|  
 | 
| @@ -3661,9 +3679,9 @@ TEST_F(ChunkDemuxerTest, DurationChange) {
 | 
|    const int kFinalStreamDuration = kStreamDuration + kAudioBlockDuration * 3;
 | 
|    EXPECT_CALL(host_, SetDuration(
 | 
|        base::TimeDelta::FromMilliseconds(kFinalStreamDuration)));
 | 
| -  AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration,
 | 
| -                                kStreamDuration + kVideoBlockDuration,
 | 
| -                                3));
 | 
| +  ASSERT_TRUE(
 | 
| +      AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration,
 | 
| +                                    kStreamDuration + kVideoBlockDuration, 3)));
 | 
|  
 | 
|    // See that the range has increased appropriately (but not to the full
 | 
|    // duration of 201293, since there is not enough video appended for that).
 | 
| @@ -3676,13 +3694,13 @@ TEST_F(ChunkDemuxerTest, DurationChangeTimestampOffset) {
 | 
|    EXPECT_CALL(host_, SetDuration(
 | 
|        kDefaultDuration() + base::TimeDelta::FromMilliseconds(
 | 
|            kVideoBlockDuration * 2)));
 | 
| -  AppendCluster(GenerateCluster(0, 4));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4)));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, EndOfStreamTruncateDuration) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|  
 | 
|    EXPECT_CALL(host_, SetDuration(
 | 
|        base::TimeDelta::FromMilliseconds(kDefaultFirstClusterEndTimestamp)));
 | 
| @@ -3692,7 +3710,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamTruncateDuration) {
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, ZeroLengthAppend) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
| -  AppendData(NULL, 0);
 | 
| +  ASSERT_TRUE(AppendData(NULL, 0));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, AppendAfterEndOfStream) {
 | 
| @@ -3701,12 +3719,12 @@ TEST_F(ChunkDemuxerTest, AppendAfterEndOfStream) {
 | 
|    EXPECT_CALL(host_, SetDuration(_))
 | 
|        .Times(AnyNumber());
 | 
|  
 | 
| -  AppendCluster(kDefaultFirstCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultFirstCluster()));
 | 
|    MarkEndOfStream(PIPELINE_OK);
 | 
|  
 | 
|    demuxer_->UnmarkEndOfStream();
 | 
|  
 | 
| -  AppendCluster(kDefaultSecondCluster());
 | 
| +  ASSERT_TRUE(AppendCluster(kDefaultSecondCluster()));
 | 
|    MarkEndOfStream(PIPELINE_OK);
 | 
|  }
 | 
|  
 | 
| @@ -3725,8 +3743,8 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeInitialize) {
 | 
|  TEST_F(ChunkDemuxerTest, EndOfStreamWhileWaitingForGapToBeFilled) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(0, 10);
 | 
| -  AppendCluster(300, 10);
 | 
| +  ASSERT_TRUE(AppendCluster(0, 10));
 | 
| +  ASSERT_TRUE(AppendCluster(300, 10));
 | 
|    CheckExpectedRanges("{ [0,132) [300,432) }");
 | 
|  
 | 
|    GenerateExpectedReads(0, 10);
 | 
| @@ -3753,7 +3771,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWhileWaitingForGapToBeFilled) {
 | 
|  
 | 
|    demuxer_->UnmarkEndOfStream();
 | 
|  
 | 
| -  AppendCluster(138, 22);
 | 
| +  ASSERT_TRUE(AppendCluster(138, 22));
 | 
|  
 | 
|    message_loop_.RunUntilIdle();
 | 
|  
 | 
| @@ -3796,7 +3814,7 @@ TEST_F(ChunkDemuxerTest, CanceledSeekDuringInitialPreroll) {
 | 
|    Seek(seek_time);
 | 
|  
 | 
|    // Append data to satisfy the seek.
 | 
| -  AppendCluster(seek_time.InMilliseconds(), 10);
 | 
| +  ASSERT_TRUE(AppendCluster(seek_time.InMilliseconds(), 10));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, SetMemoryLimitType) {
 | 
| @@ -4147,7 +4165,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_WebMFile_AudioOnly) {
 | 
|    ExpectInitMediaLogs(HAS_AUDIO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
|    EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2));
 | 
| -  AppendDataInPieces(buffer->data(), buffer->data_size(), 128);
 | 
| +  ASSERT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 128));
 | 
|  
 | 
|    DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO);
 | 
|    CheckExpectedBuffers(stream, "50KP 50K 62K 86K 109K 122K 125K 128K");
 | 
| @@ -4174,7 +4192,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) {
 | 
|    ExpectInitMediaLogs(HAS_AUDIO);
 | 
|    EXPECT_CALL(*this, InitSegmentReceivedMock(_));
 | 
|    EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2));
 | 
| -  AppendDataInPieces(buffer->data(), buffer->data_size(), 512);
 | 
| +  ASSERT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 512));
 | 
|    CheckExpectedRanges("{ }");
 | 
|  
 | 
|    DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO);
 | 
| @@ -4187,7 +4205,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) {
 | 
|    EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(21));
 | 
|    EXPECT_CALL(host_, SetDuration(_)).Times(AnyNumber());
 | 
|    ASSERT_TRUE(SetTimestampOffset(kSourceId, duration_1));
 | 
| -  AppendDataInPieces(buffer2->data(), buffer2->data_size(), 512);
 | 
| +  ASSERT_TRUE(AppendDataInPieces(buffer2->data(), buffer2->data_size(), 512));
 | 
|    CheckExpectedRanges("{ [2746,5519) }");
 | 
|  
 | 
|    Seek(duration_1);
 | 
| @@ -4374,11 +4392,11 @@ TEST_F(ChunkDemuxerTest, SeekCompletesWithoutTextCues) {
 | 
|  TEST_F(ChunkDemuxerTest, ClusterWithUnknownSize) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(GenerateCluster(0, 0, 4, true));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 0, 4, true)));
 | 
|    CheckExpectedRanges("{ [0,46) }");
 | 
|  
 | 
|    // A new cluster indicates end of the previous cluster with unknown size.
 | 
| -  AppendCluster(GenerateCluster(46, 66, 5, true));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(46, 66, 5, true)));
 | 
|    CheckExpectedRanges("{ [0,115) }");
 | 
|  }
 | 
|  
 | 
| @@ -4391,7 +4409,7 @@ TEST_F(ChunkDemuxerTest, CuesBetweenClustersWithUnknownSize) {
 | 
|    data.insert(data.end(), kCuesHeader, kCuesHeader + sizeof(kCuesHeader));
 | 
|    cluster = GenerateCluster(46, 66, 5, true);
 | 
|    data.insert(data.end(), cluster->data(), cluster->data() + cluster->size());
 | 
| -  AppendData(&*data.begin(), data.size());
 | 
| +  ASSERT_TRUE(AppendData(&*data.begin(), data.size()));
 | 
|  
 | 
|    CheckExpectedRanges("{ [0,115) }");
 | 
|  }
 | 
| @@ -4399,9 +4417,9 @@ TEST_F(ChunkDemuxerTest, CuesBetweenClustersWithUnknownSize) {
 | 
|  TEST_F(ChunkDemuxerTest, CuesBetweenClusters) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|  
 | 
| -  AppendCluster(GenerateCluster(0, 0, 4));
 | 
| -  AppendData(kCuesHeader, sizeof(kCuesHeader));
 | 
| -  AppendCluster(GenerateCluster(46, 66, 5));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(0, 0, 4)));
 | 
| +  ASSERT_TRUE(AppendData(kCuesHeader, sizeof(kCuesHeader)));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateCluster(46, 66, 5)));
 | 
|    CheckExpectedRanges("{ [0,115) }");
 | 
|  }
 | 
|  
 | 
| @@ -4458,13 +4476,13 @@ TEST_F(ChunkDemuxerTest, EvictCodedFramesTest) {
 | 
|  TEST_F(ChunkDemuxerTest, SegmentMissingAudioFrame_AudioOnly) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO));
 | 
|    EXPECT_MEDIA_LOG(SegmentMissingFrames("audio"));
 | 
| -  AppendCluster(GenerateEmptyCluster(0));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0)));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, SegmentMissingVideoFrame_VideoOnly) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_VIDEO));
 | 
|    EXPECT_MEDIA_LOG(SegmentMissingFrames("video"));
 | 
| -  AppendCluster(GenerateEmptyCluster(0));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0)));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, SegmentMissingAudioFrame_AudioVideo) {
 | 
| @@ -4482,7 +4500,7 @@ TEST_F(ChunkDemuxerTest, SegmentMissingVideoFrame_AudioVideo) {
 | 
|  TEST_F(ChunkDemuxerTest, SegmentMissingAudioVideoFrames) {
 | 
|    ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO));
 | 
|    EXPECT_MEDIA_LOG(SegmentMissingFrames("audio or video"));
 | 
| -  AppendCluster(GenerateEmptyCluster(0));
 | 
| +  ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0)));
 | 
|  }
 | 
|  
 | 
|  TEST_F(ChunkDemuxerTest, RelaxedKeyframe_FirstSegmentMissingKeyframe) {
 | 
| @@ -4675,7 +4693,7 @@ TEST_F(ChunkDemuxerTest,
 | 
|    ASSERT_GT(video_start, 0);
 | 
|    ASSERT_LT(video_start, cluster->size() - 3);
 | 
|  
 | 
| -  AppendData(kSourceId, cluster->data(), video_start);
 | 
| +  ASSERT_TRUE(AppendData(kSourceId, cluster->data(), video_start));
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,30) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO, "{ }");
 | 
|  
 | 
| @@ -4683,8 +4701,8 @@ TEST_F(ChunkDemuxerTest,
 | 
|                     base::TimeDelta::FromMilliseconds(30));
 | 
|  
 | 
|    // Append the remainder of the cluster
 | 
| -  AppendData(kSourceId, cluster->data() + video_start,
 | 
| -             cluster->size() - video_start);
 | 
| +  ASSERT_TRUE(AppendData(kSourceId, cluster->data() + video_start,
 | 
| +                         cluster->size() - video_start));
 | 
|  
 | 
|    CheckExpectedRanges(DemuxerStream::AUDIO, "{ [30,90) }");
 | 
|    CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,91) }");
 | 
| 
 |