mirror of
https://github.com/YGGverse/agate.git
synced 2026-04-08 20:45:29 +00:00
add test for wrongly percent-encoded domains
This commit is contained in:
parent
0f6b0ea4ad
commit
a9ccbb07c9
1 changed files with 42 additions and 0 deletions
|
|
@ -332,6 +332,48 @@ fn username() {
|
||||||
assert_eq!(page.header.status, Status::BadRequest);
|
assert_eq!(page.header.status, Status::BadRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
/// - URLS with invalid hostnames are rejected
|
||||||
|
fn percent_encode() {
|
||||||
|
use rustls::{Certificate, ClientConnection, RootCertStore};
|
||||||
|
use std::io::Write;
|
||||||
|
use std::net::TcpStream;
|
||||||
|
|
||||||
|
let mut server = Server::new(&["--addr", "[::]:1988", "--certs", "multicert"]);
|
||||||
|
|
||||||
|
let mut certs = RootCertStore::empty();
|
||||||
|
certs
|
||||||
|
.add(&Certificate(
|
||||||
|
include_bytes!(concat!(
|
||||||
|
env!("CARGO_MANIFEST_DIR"),
|
||||||
|
"/tests/data/multicert/example.com/cert.der"
|
||||||
|
))
|
||||||
|
.to_vec(),
|
||||||
|
))
|
||||||
|
.unwrap();
|
||||||
|
let config = rustls::ClientConfig::builder()
|
||||||
|
.with_safe_defaults()
|
||||||
|
.with_root_certificates(certs)
|
||||||
|
.with_no_client_auth();
|
||||||
|
|
||||||
|
let mut session = ClientConnection::new(
|
||||||
|
std::sync::Arc::new(config),
|
||||||
|
"example.com".try_into().unwrap(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
let mut tcp = TcpStream::connect(addr(1988)).unwrap();
|
||||||
|
let mut tls = rustls::Stream::new(&mut session, &mut tcp);
|
||||||
|
|
||||||
|
write!(tls, "gemini://%/\r\n").unwrap();
|
||||||
|
|
||||||
|
let mut buf = [0; 10];
|
||||||
|
let _ = tls.read(&mut buf);
|
||||||
|
|
||||||
|
assert_eq!(&buf[0..2], b"59");
|
||||||
|
|
||||||
|
server.stop().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
/// - URLS with password are rejected
|
/// - URLS with password are rejected
|
||||||
fn password() {
|
fn password() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue