1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef NET_HTTP_TEST_UPLOAD_DATA_STREAM_NOT_ALLOW_HTTP1_H_
6 #define NET_HTTP_TEST_UPLOAD_DATA_STREAM_NOT_ALLOW_HTTP1_H_
7 
8 #include "net/base/upload_data_stream.h"
9 
10 namespace net {
11 
12 // UploadDataStreamNotAllowHTTP1 simply disallows HTTP/1 and uploads content.
13 class UploadDataStreamNotAllowHTTP1 : public UploadDataStream {
14  public:
UploadDataStreamNotAllowHTTP1(const std::string & content)15   explicit UploadDataStreamNotAllowHTTP1(const std::string& content)
16       : UploadDataStream(true, 0), content_(content) {}
17   UploadDataStreamNotAllowHTTP1(const UploadDataStreamNotAllowHTTP1&) = delete;
18   UploadDataStreamNotAllowHTTP1& operator=(
19       const UploadDataStreamNotAllowHTTP1&) = delete;
20 
21   bool AllowHTTP1() const override;
22 
23  private:
24   int InitInternal(const NetLogWithSource& net_log) override;
25   int ReadInternal(IOBuffer* buf, int buf_len) override;
26   void ResetInternal() override;
27 
28   std::string content_;
29 };
30 
31 }  // namespace net
32 
33 #endif  // NET_HTTP_TEST_UPLOAD_DATA_STREAM_NOT_ALLOW_HTTP1_H_