e2e-tests: vks lookups
This commit is contained in:
parent
7b8f5e1462
commit
564be875e2
|
@ -10,6 +10,7 @@ edition = "2018"
|
||||||
members = [
|
members = [
|
||||||
"database",
|
"database",
|
||||||
"hagridctl",
|
"hagridctl",
|
||||||
|
"high-level-tests",
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
[package]
|
||||||
|
name = "high-level-tests"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
anyhow = "1.0.55"
|
||||||
|
reqwest = { version = "0.11.9", features = ["blocking"] }
|
||||||
|
tokio = { version = "1.17.0", features = ["macros"] }
|
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
use reqwest::Url;
|
||||||
|
use reqwest::blocking::Client;
|
||||||
|
use anyhow::Result;
|
||||||
|
use reqwest::StatusCode;
|
||||||
|
|
||||||
|
static SERVER_URL: &str = "https://keys.openpgp.org";
|
||||||
|
|
||||||
|
fn assert_request(client: &Client, url: Url, status: StatusCode) -> Result<()> {
|
||||||
|
let response = client.head(url)
|
||||||
|
.send()?;
|
||||||
|
assert_eq!(response.status(), status);
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn vks_by_fingerprint() -> Result<()> {
|
||||||
|
let client = Client::new();
|
||||||
|
|
||||||
|
let endpoint = Url::parse(SERVER_URL)?
|
||||||
|
.join("/vks/v1/by-fingerprint/")?;
|
||||||
|
|
||||||
|
let nora_primary = "379D09E0A09685C48312D46E9F4EE06E0E229F37";
|
||||||
|
assert_request(&client, endpoint.join(nora_primary)?, StatusCode::OK)?;
|
||||||
|
let too_short = "379D09E0A09685C48312";
|
||||||
|
assert_request(&client, endpoint.join(too_short)?, StatusCode::NOT_FOUND)?;
|
||||||
|
let too_long = "379D09E0A09685C48312D46E9F4EE06E0E229F37ABC";
|
||||||
|
assert_request(&client, endpoint.join(too_long)?, StatusCode::NOT_FOUND)?;
|
||||||
|
let improbable = "1111111111111111111111111111111111111111";
|
||||||
|
assert_request(&client, endpoint.join(improbable)?, StatusCode::NOT_FOUND)?;
|
||||||
|
// XXX: Api docs say "MUST NOT be prefixed with 0x", but this succeeds
|
||||||
|
let with_0x = "0x379D09E0A09685C48312D46E9F4EE06E0E229F37";
|
||||||
|
assert_request(&client, endpoint.join(with_0x)?, StatusCode::OK)?;
|
||||||
|
let lowercase = "379d09e0a09685c48312d46e9f4ee06e0e229f37";
|
||||||
|
assert_request(&client, endpoint.join(lowercase)?, StatusCode::NOT_FOUND)?;
|
||||||
|
// XXX: query by subkey
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn vks_by_keyid() -> Result<()> {
|
||||||
|
let client = Client::new();
|
||||||
|
|
||||||
|
let endpoint = Url::parse(SERVER_URL)?
|
||||||
|
.join("/vks/v1/by-keyid/")?;
|
||||||
|
|
||||||
|
let nora_primary = "9F4EE06E0E229F37";
|
||||||
|
assert_request(&client, endpoint.join(nora_primary)?, StatusCode::OK)?;
|
||||||
|
let too_short = "9F4EE06E0E229F";
|
||||||
|
assert_request(&client, endpoint.join(too_short)?, StatusCode::NOT_FOUND)?;
|
||||||
|
let too_long = "379D09E0A09685C48312D46E9F4EE06E0E229F37";
|
||||||
|
assert_request(&client, endpoint.join(too_long)?, StatusCode::NOT_FOUND)?;
|
||||||
|
let improbable = "1111111111111111";
|
||||||
|
assert_request(&client, endpoint.join(improbable)?, StatusCode::NOT_FOUND)?;
|
||||||
|
// XXX: Api docs say "MUST NOT be prefixed with 0x", but this succeeds
|
||||||
|
let with_0x = "0x9F4EE06E0E229F37";
|
||||||
|
assert_request(&client, endpoint.join(with_0x)?, StatusCode::OK)?;
|
||||||
|
let lowercase = "9f4ee06e0e229f37";
|
||||||
|
assert_request(&client, endpoint.join(lowercase)?, StatusCode::NOT_FOUND)?;
|
||||||
|
// XXX: query by subkey
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn vks_by_email() -> Result<()> {
|
||||||
|
let client = Client::new();
|
||||||
|
|
||||||
|
let endpoint = Url::parse(SERVER_URL)?
|
||||||
|
.join("/vks/v1/by-email/")?;
|
||||||
|
|
||||||
|
let nora = "nora@sequoia-pgp.org";
|
||||||
|
assert_request(&client, endpoint.join(nora)?, StatusCode::OK)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
Loading…
Reference in New Issue