Skip to content

Commit 9b7d2f7

Browse files
committed
add cors test
1 parent aa04117 commit 9b7d2f7

File tree

3 files changed

+54
-1
lines changed

3 files changed

+54
-1
lines changed

tests/data/server_config_cors.toml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
file_dir = "./data/web"
2+
3+
[http]
4+
port = 8080
5+
addr = "0.0.0.0"
6+
7+
8+
[admin_config]
9+
# bind host
10+
port = 9000
11+
addr = "127.0.0.1"
12+
13+
# this is used to check client request
14+
# put it in http header, Authorization: Bearer $token
15+
token = "token"
16+
17+
18+
[[domains]]
19+
domain = "local.fornetcode.com"
20+
cors = ["http://localhost:9292"]

tests/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use anyhow::Result;
44
use tracing::Level;
55
use tracing_subscriber::EnvFilter;
66

7+
//This does not work because of file_dir config.
78
#[tokio::main]
89
async fn main() -> Result<()> {
910
env::set_var(

tests/tests/http_test.rs

+33-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![allow(unused_variables)]
22
use reqwest::header::LOCATION;
33
use reqwest::redirect::Policy;
4-
use reqwest::{ClientBuilder, StatusCode};
4+
use reqwest::{ClientBuilder, Method, StatusCode};
55
use std::time::Duration;
66
use tokio::time::sleep;
77
use tracing::log::debug;
@@ -333,3 +333,35 @@ async fn alias_start_server_and_client_upload_file() {
333333
)
334334
.await
335335
}
336+
337+
338+
#[tokio::test]
339+
async fn cors() {
340+
clean_web_domain_dir(LOCAL_HOST);
341+
run_server_with_config("server_config_cors.toml");
342+
343+
let domain = LOCAL_HOST.to_owned() + "/27";
344+
let domain = &domain;
345+
let request_prefix = format!("http://{LOCAL_HOST}:8080/27");
346+
let request_prefix = &request_prefix;
347+
348+
tokio::time::sleep(Duration::from_secs(1)).await;
349+
upload_file_and_check(domain, request_prefix, 1, vec!["index.html"]).await;
350+
351+
let client = get_http_client();
352+
let request = client.request(Method::OPTIONS, request_prefix)
353+
.header("Origin", "http://localhost:9292")
354+
.header("Access-Control-Request-Headers","Origin, Accept, Content-Type")
355+
.header("Access-Control-Request-Method", "GET")
356+
.build().unwrap();
357+
let result = client.execute(request).await.unwrap();
358+
assert_eq!(result.status(), StatusCode::OK);
359+
360+
let request = client.request(Method::OPTIONS, request_prefix)
361+
.header("Origin", "http://localhost:9291")
362+
.header("Access-Control-Request-Headers","Origin, Accept, Content-Type")
363+
.header("Access-Control-Request-Method", "GET")
364+
.build().unwrap();
365+
let result = client.execute(request).await.unwrap();
366+
assert_ne!(result.status(), StatusCode::OK);
367+
}

0 commit comments

Comments
 (0)