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

#ifndef QUICHE_HTTP2_DECODER_FRAME_DECODER_STATE_TEST_UTIL_H_
#define QUICHE_HTTP2_DECODER_FRAME_DECODER_STATE_TEST_UTIL_H_

#include "quiche/http2/decoder/frame_decoder_state.h"
#include "quiche/http2/http2_structures.h"
#include "quiche/http2/test_tools/random_decoder_test.h"
#include "quiche/common/platform/api/quiche_export.h"

namespace http2 {
namespace test {

class QUICHE_NO_EXPORT FrameDecoderStatePeer {
 public:
  // Randomizes (i.e. corrupts) the fields of the FrameDecoderState.
  // PayloadDecoderBaseTest::StartDecoding calls this before passing the first
  // decode buffer to the payload decoder, which increases the likelihood of
  // detecting any use of prior states of the decoder on the decoding of
  // future payloads.
  static void Randomize(FrameDecoderState* p, Http2Random* rng);

  // Inject a frame header into the FrameDecoderState.
  // PayloadDecoderBaseTest::StartDecoding calls this just after calling
  // Randomize (above), to simulate a full frame decoder having just finished
  // decoding the common frame header and then calling the appropriate payload
  // decoder based on the frame type in that frame header.
  static void set_frame_header(const Http2FrameHeader& header,
                               FrameDecoderState* p);
};

}  // namespace test
}  // namespace http2

#endif  // QUICHE_HTTP2_DECODER_FRAME_DECODER_STATE_TEST_UTIL_H_
