chromium/content/browser/loader/merkle_integrity_source_stream_unittest.cc

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/342213636): Remove this and spanify to fix the errors.
#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 {};

}  // namespace

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) {}

// https://tools.ietf.org/html/draft-thomson-http-mice-02#section-4.1
TEST_P(MerkleIntegritySourceStreamTest, SingleRecord) {}

TEST_P(MerkleIntegritySourceStreamTest, SingleRecordWrongHash) {}

// The final record may not be larger than the record size.
TEST_P(MerkleIntegritySourceStreamTest, SingleRecordTooLarge) {}

// https://tools.ietf.org/html/draft-thomson-http-mice-02#section-4.2
TEST_P(MerkleIntegritySourceStreamTest, MultipleRecords) {}

TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsAllAtOnce) {}

TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsWrongLastRecordHash) {}

TEST_P(MerkleIntegritySourceStreamTest, MultipleRecordsWrongFirstRecordHash) {}

TEST_P(MerkleIntegritySourceStreamTest, TrailingNetError) {}

// Test that truncations are noticed, by way of the final record not matching
// the hash.
TEST_P(MerkleIntegritySourceStreamTest, Truncated) {}

// Test that the final record is not allowed to be empty.
TEST_P(MerkleIntegritySourceStreamTest, EmptyFinalRecord) {}

TEST_P(MerkleIntegritySourceStreamTest, WholeNumberOfRecords) {}

TEST_P(MerkleIntegritySourceStreamTest, WholeNumberOfRecordsAllAtOnce) {}

}  // namespace content