#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "content/browser/loader/merkle_integrity_source_stream.h"
#include "base/base64.h"
#include "base/memory/raw_ptr.h"
#include "net/base/io_buffer.h"
#include "net/base/test_completion_callback.h"
#include "net/filter/mock_source_stream.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
const int kBigBufferSize = …;
const int kSmallBufferSize = …;
const char kMIEmptyBody[] = …;
const char kMISingleRecord[] = …;
const char kMIMultipleRecords[] = …;
const char kMIWholeNumberOfRecords[] = …;
enum class ReadResultType { … };
struct MerkleIntegrityTestParam { … };
}
class MerkleIntegritySourceStreamTest
: public ::testing::TestWithParam<MerkleIntegrityTestParam> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(MerkleIntegritySourceStreamTest, EmptyStream) { … }
TEST_P(MerkleIntegritySourceStreamTest, EmptyStreamWrongHash) { … }
TEST_P(MerkleIntegritySourceStreamTest, TooShortMIHeader) { … }
TEST_P(MerkleIntegritySourceStreamTest, MalformedMIHeader) { … }
TEST_P(MerkleIntegritySourceStreamTest, WrongMIAttributeName) { … }
TEST_P(MerkleIntegritySourceStreamTest, HashTooShort) { … }
TEST_P(MerkleIntegritySourceStreamTest, HashTooLong) { … }
TEST_P(MerkleIntegritySourceStreamTest, RecordSizeOnly) { … }
TEST_P(MerkleIntegritySourceStreamTest, TruncatedRecordSize) { … }
TEST_P(MerkleIntegritySourceStreamTest, RecordSizeOnlyWrongHash) { … }
TEST_P(MerkleIntegritySourceStreamTest, RecordSizeHuge) { … }
TEST_P(MerkleIntegritySourceStreamTest, RecordSizeTooBig) { … }
TEST_P(MerkleIntegritySourceStreamTest, RecordSizeZero) { … }
TEST_P(MerkleIntegritySourceStreamTest, SingleRecord) { … }
TEST_P(MerkleIntegritySourceStreamTest, SingleRecordWrongHash) { … }
TEST_P(MerkleIntegritySourceStreamTest, SingleRecordTooLarge) { … }
TEST_P(MerkleIntegritySourceStreamTest, MultipleRecords) { … }
TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsAllAtOnce) { … }
TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsWrongLastRecordHash) { … }
TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsWrongFirstRecordHash) { … }
TEST_P(MerkleIntegritySourceStreamTest, TrailingNetError) { … }
TEST_P(MerkleIntegritySourceStreamTest, Truncated) { … }
TEST_P(MerkleIntegritySourceStreamTest, EmptyFinalRecord) { … }
TEST_P(MerkleIntegritySourceStreamTest, WholeNumberOfRecords) { … }
TEST_P(MerkleIntegritySourceStreamTest, WholeNumberOfRecordsAllAtOnce) { … }
}