in sign/src/sign.rs [379:427]
fn test_sign_case4() {
init();
let mut headers = HeaderMap::new();
headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
let body = r#"
{"key": "value"}
"#;
let signature = sign_v1(
"test-access-key-id",
"test-access-key",
Some("test-security-token"),
Method::POST,
"/logstores/test/shards/2",
&mut headers,
[
("type", "log"),
("count", "1000"),
("cursor", "MTczNzY2OTAzNjAxNzIxODQ1NA=="),
]
.into(),
Some(body.as_bytes()),
)
.unwrap();
assert_eq!(
signature,
"LOG test-access-key-id:K3rw5WXRe77aZ/meSyEa8NNUYFc="
);
assert!(headers.contains_key(LOG_AUTHORIZATION));
assert!(headers.contains_key(DATE));
assert!(headers.contains_key(LOG_API_VERSION));
assert!(headers.contains_key(LOG_SIGNATURE_METHOD));
assert!(headers.contains_key(CONTENT_LENGTH));
assert!(headers.contains_key(LOG_CONTENT_MD5));
assert!(headers.contains_key(LOG_ACS_SECURITY_TOKEN));
assert_eq!(
"CE688F8D1AC3ED309BA9BE0A5ABAFCE5",
headers.get(LOG_CONTENT_MD5).unwrap().to_str().unwrap()
);
assert_eq!(
"test-security-token",
headers
.get(LOG_ACS_SECURITY_TOKEN)
.unwrap()
.to_str()
.unwrap()
);
}