| 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) |
| ); |
| } |