// Copyright 2018 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "core/fpdfapi/parser/cpdf_stream_acc.h" #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fxcrt/cfx_memorystream.h" #include "core/fxcrt/fx_stream.h" #include "testing/gtest/include/gtest/gtest.h" namespace { class InvalidStream : public IFX_SeekableReadStream { public: InvalidStream() = default; ~InvalidStream() override = default; // IFX_SeekableReadStream overrides: bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { // Read failure. return false; } FX_FILESIZE GetSize() override { return 1024; } }; } // namespace TEST(CPDF_StreamAccTest, ReadRawDataFailed) { CPDF_Stream stream; stream.InitStreamFromFile(pdfium::MakeRetain(), nullptr); auto stream_acc = pdfium::MakeRetain(&stream); stream_acc->LoadAllDataRaw(); EXPECT_EQ(0u, stream_acc->GetSize()); EXPECT_FALSE(stream_acc->GetData()); }