diff --git a/src/tests/record.rs b/src/tests/record.rs
index 3c7f2d373c7..8a6d96a1ce2 100644
--- a/src/tests/record.rs
+++ b/src/tests/record.rs
@@ -14,7 +14,7 @@ use std::{
use base64::{engine::general_purpose, Engine};
use futures_channel::oneshot;
use futures_util::future;
-use http::header::CONTENT_TYPE;
+use http::{header::CONTENT_TYPE, HeaderMap, HeaderValue};
use hyper::{
body::to_bytes, server::conn::AddrStream, Body, Error, Request, Response, Server, StatusCode,
Uri,
@@ -278,7 +278,11 @@ async fn record_http(req: Request
, client: Client) -> Result {
- let body = String::from_utf8_lossy(&body);
- assert_eq!(body, exchange.request.body);
- }
- _ => {
- let body = general_purpose::STANDARD.encode(body);
- assert_eq!(body, exchange.request.body);
- }
+ if plain_text {
+ let body = String::from_utf8_lossy(&body);
+ assert_eq!(body, exchange.request.body);
+ } else {
+ let body = general_purpose::STANDARD.encode(body);
+ assert_eq!(body, exchange.request.body);
}
let mut builder = Response::builder();
@@ -394,3 +394,12 @@ fn replay_http(
Ok(response)
}
}
+
+fn is_plain_text(headers: &HeaderMap) -> bool {
+ if let Some(header_value) = headers.get(CONTENT_TYPE) {
+ if let Ok(value) = header_value.to_str() {
+ return value == "text/plain";
+ }
+ }
+ false
+}