blob: c9c687a89ef1c87111b425620f470a9e1740161e [file] [log] [blame]
use super::*;
#[test]
fn trusted_full_audit_locked() {
// (Pass) A a trusted entry for a crate when locked
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, mut imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
audits.trusted.insert(
"transitive-third-party1".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
);
imports.publisher.insert(
"transitive-third-party1".to_owned(),
vec![publisher_entry(ver(DEFAULT_VER), 1)],
);
let store = Store::mock(config, audits, imports);
assert_report_snapshot!("trusted_full_audit_locked", metadata, store);
}
#[test]
fn trusted_wrong_user_id_locked() {
// (Fail) A trusted entry for a crate with the wrong user when locked
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, mut imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
audits.trusted.insert(
"transitive-third-party1".to_owned(),
vec![trusted_entry(2, SAFE_TO_DEPLOY)],
);
imports.publisher.insert(
"transitive-third-party1".to_owned(),
vec![publisher_entry(ver(DEFAULT_VER), 1)],
);
let store = Store::mock(config, audits, imports);
assert_report_snapshot!("trusted_wrong_user_id_locked", metadata, store);
}
#[test]
fn trusted_delta_audit_locked() {
// (Pass) A trusted entry plus delta-audit for a crate when locked
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, mut imports) = builtin_files_full_audited(&metadata);
audits.audits.insert(
"transitive-third-party1".to_owned(),
vec![delta_audit(ver(5), ver(DEFAULT_VER), SAFE_TO_DEPLOY)],
);
audits.trusted.insert(
"transitive-third-party1".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
);
imports.publisher.insert(
"transitive-third-party1".to_owned(),
vec![publisher_entry(ver(5), 1)],
);
let store = Store::mock(config, audits, imports);
assert_report_snapshot!("trusted_delta_audit_locked", metadata, store);
}
#[test]
fn trusted_delta_audit_wrong_user_id_locked() {
// (Fail) A trusted entry plus delta-audit for a crate with the wrong user when locked
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, mut imports) = builtin_files_full_audited(&metadata);
audits.audits.insert(
"transitive-third-party1".to_owned(),
vec![delta_audit(ver(5), ver(DEFAULT_VER), SAFE_TO_DEPLOY)],
);
audits.trusted.insert(
"transitive-third-party1".to_owned(),
vec![trusted_entry(2, SAFE_TO_DEPLOY)],
);
imports.publisher.insert(
"transitive-third-party1".to_owned(),
vec![publisher_entry(ver(5), 1)],
);
let store = Store::mock(config, audits, imports);
assert_report_snapshot!("trusted_delta_audit_wrong_user_id_locked", metadata, store);
}
#[test]
fn trusted_suggest_local() {
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
audits.trusted.insert(
"other-crate".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
);
let mut network = Network::new_mock();
MockRegistryBuilder::new()
.user(1, "testuser", "Test user")
.package(
"transitive-third-party1",
&[reg_published_by(ver(DEFAULT_VER), Some(1), "2022-12-12")],
)
.serve(&mut network);
let cfg = mock_cfg(&metadata);
let store = Store::mock_online(&cfg, config, audits, imports, &network, true).unwrap();
assert_report_snapshot!("trusted_suggest_local", metadata, store, Some(&network));
}
#[test]
fn trusted_suggest_import() {
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (mut config, mut audits, imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
config.imports.insert(
FOREIGN.to_owned(),
crate::format::RemoteImport {
url: vec![FOREIGN_URL.to_owned()],
..Default::default()
},
);
let new_foreign_audits = AuditsFile {
criteria: SortedMap::new(),
audits: SortedMap::new(),
wildcard_audits: SortedMap::new(),
trusted: [(
"other-crate".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
)]
.into_iter()
.collect(),
};
let mut network = Network::new_mock();
network.mock_serve_toml(FOREIGN_URL, &new_foreign_audits);
MockRegistryBuilder::new()
.user(1, "testuser", "Test user")
.package(
"transitive-third-party1",
&[reg_published_by(ver(DEFAULT_VER), Some(1), "2022-12-12")],
)
.serve(&mut network);
let cfg = mock_cfg(&metadata);
let store = Store::mock_online(&cfg, config, audits, imports, &network, true).unwrap();
assert_report_snapshot!("trusted_suggest_import", metadata, store, Some(&network));
}
#[test]
fn trusted_suggest_import_multiple() {
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (mut config, mut audits, imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
config.imports.insert(
FOREIGN.to_owned(),
crate::format::RemoteImport {
url: vec![FOREIGN_URL.to_owned()],
..Default::default()
},
);
config.imports.insert(
OTHER_FOREIGN.to_owned(),
crate::format::RemoteImport {
url: vec![OTHER_FOREIGN_URL.to_owned()],
..Default::default()
},
);
let new_foreign_audits = AuditsFile {
criteria: SortedMap::new(),
audits: SortedMap::new(),
wildcard_audits: SortedMap::new(),
trusted: [(
"other-crate".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
)]
.into_iter()
.collect(),
};
let mut network = Network::new_mock();
network.mock_serve_toml(FOREIGN_URL, &new_foreign_audits);
network.mock_serve_toml(OTHER_FOREIGN_URL, &new_foreign_audits);
MockRegistryBuilder::new()
.user(1, "testuser", "Test user")
.package(
"transitive-third-party1",
&[reg_published_by(ver(DEFAULT_VER), Some(1), "2022-12-12")],
)
.serve(&mut network);
let cfg = mock_cfg(&metadata);
let store = Store::mock_online(&cfg, config, audits, imports, &network, true).unwrap();
assert_report_snapshot!(
"trusted_suggest_import_multiple",
metadata,
store,
Some(&network)
);
}
#[test]
fn trusted_suggest_local_ambiguous() {
let _enter = TEST_RUNTIME.enter();
let mock = MockMetadata::simple();
let metadata = mock.metadata();
let (config, mut audits, imports) = builtin_files_full_audited(&metadata);
audits.audits.remove("transitive-third-party1");
audits.trusted.insert(
"other-crate".to_owned(),
vec![trusted_entry(1, SAFE_TO_DEPLOY)],
);
let mut network = Network::new_mock();
MockRegistryBuilder::new()
.user(1, "testuser", "Test user")
.user(2, "otheruser", "Other user")
.package(
"transitive-third-party1",
&[
reg_published_by(ver(9), Some(2), "2022-12-12"),
reg_published_by(ver(DEFAULT_VER), Some(1), "2022-12-12"),
],
)
.serve(&mut network);
let cfg = mock_cfg(&metadata);
let store = Store::mock_online(&cfg, config, audits, imports, &network, true).unwrap();
assert_report_snapshot!(
"trusted_suggest_local_ambiguous",
metadata,
store,
Some(&network)
);
}