summaryrefslogtreecommitdiffstats
path: root/store/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'store/src/lib.rs')
-rw-r--r--store/src/lib.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/store/src/lib.rs b/store/src/lib.rs
index 38893d68..85fe97b6 100644
--- a/store/src/lib.rs
+++ b/store/src/lib.rs
@@ -704,7 +704,11 @@ impl From<rusqlite::Error> for Error {
#[cfg(test)]
mod store_test {
- use super::{core, Store, Error};
+ use super::{core, Store, Error, TPK, Fingerprint};
+
+ macro_rules! bytes {
+ ( $x:expr ) => { include_bytes!(concat!("../../openpgp/tests/data/keys/", $x)) };
+ }
#[test]
fn store_network_policy_mismatch() {
@@ -722,5 +726,19 @@ mod store_test {
let store = Store::open(&ctx2, "default");
assert_match!(Err(Error::CoreError(core::Error::NetworkPolicyViolation(_))) = store);
}
+
+ #[test]
+ fn add_then_import_wrong_key() {
+ let ctx = core::Context::configure("org.sequoia-pgp.tests")
+ .ephemeral()
+ .network_policy(core::NetworkPolicy::Offline)
+ .build().unwrap();
+ let mut store = Store::open(&ctx, "default").unwrap();
+ let tpk = TPK::from_bytes(bytes!("testy.pgp")).unwrap();
+ let fp = Fingerprint::from_bytes(b"bbbbbbbbbbbbbbbbbbbb");
+ let binding = store.add("Mister B.", &fp).unwrap();
+ let r = binding.import(&tpk);
+ assert_match!(Err(Error::Conflict) = r);
+ }
}