@@ -146,6 +146,23 @@ fn add_key_to_non_keyring() {
146
146
keyring. invalidate ( ) . unwrap ( )
147
147
}
148
148
149
+ #[ test]
150
+ fn add_keyring_to_non_keyring ( ) {
151
+ let mut keyring = utils:: new_test_keyring ( ) ;
152
+ let expected = "stuff" . as_bytes ( ) ;
153
+ let key = keyring
154
+ . add_key :: < User , _ , _ > ( "add_keyring_to_non_keyring" , expected)
155
+ . unwrap ( ) ;
156
+
157
+ let mut not_a_keyring = utils:: key_as_keyring ( & key) ;
158
+ let err = not_a_keyring
159
+ . add_keyring ( "add_keyring_to_non_keyring" )
160
+ . unwrap_err ( ) ;
161
+ assert_eq ! ( err, errno:: Errno ( libc:: ENOTDIR ) ) ;
162
+
163
+ keyring. invalidate ( ) . unwrap ( )
164
+ }
165
+
149
166
#[ test]
150
167
fn add_key ( ) {
151
168
let mut keyring = utils:: new_test_keyring ( ) ;
@@ -158,10 +175,22 @@ fn add_key() {
158
175
}
159
176
160
177
#[ test]
161
- fn update_key_via_add ( ) {
178
+ fn add_keyring ( ) {
162
179
let mut keyring = utils:: new_test_keyring ( ) ;
180
+ let new_keyring = keyring. add_keyring ( "add_keyring" ) . unwrap ( ) ;
163
181
164
- let description = "update_key_via_add" ;
182
+ let ( keys, keyrings) = new_keyring. read ( ) . unwrap ( ) ;
183
+ assert ! ( keys. is_empty( ) ) ;
184
+ assert ! ( keyrings. is_empty( ) ) ;
185
+
186
+ keyring. invalidate ( ) . unwrap ( )
187
+ }
188
+
189
+ #[ test]
190
+ fn add_key_replace ( ) {
191
+ let mut keyring = utils:: new_test_keyring ( ) ;
192
+
193
+ let description = "add_key_replace" ;
165
194
166
195
let payload = "payload" . as_bytes ( ) ;
167
196
let key = keyring. add_key :: < User , _ , _ > ( description, payload) . unwrap ( ) ;
@@ -175,3 +204,24 @@ fn update_key_via_add() {
175
204
176
205
keyring. invalidate ( ) . unwrap ( )
177
206
}
207
+
208
+ #[ test]
209
+ fn add_keyring_replace ( ) {
210
+ let mut keyring = utils:: new_test_keyring ( ) ;
211
+
212
+ let description = "add_keyring_replace" ;
213
+ let new_keyring = keyring. add_keyring ( description) . unwrap ( ) ;
214
+
215
+ let ( keys, keyrings) = new_keyring. read ( ) . unwrap ( ) ;
216
+ assert ! ( keys. is_empty( ) ) ;
217
+ assert ! ( keyrings. is_empty( ) ) ;
218
+
219
+ let updated_keyring = keyring. add_keyring ( description) . unwrap ( ) ;
220
+ assert_ne ! ( new_keyring, updated_keyring) ;
221
+
222
+ let ( keys, keyrings) = updated_keyring. read ( ) . unwrap ( ) ;
223
+ assert ! ( keys. is_empty( ) ) ;
224
+ assert ! ( keyrings. is_empty( ) ) ;
225
+
226
+ keyring. invalidate ( ) . unwrap ( )
227
+ }
0 commit comments