File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -476,4 +476,29 @@ mod tests {
476476 ) ;
477477 assert ! ( resolver. get( ) . has_cert_for_sni( "app.example.com" ) ) ;
478478 }
479+
480+ #[ test]
481+ fn expired_update_retains_previous_certificate ( ) {
482+ let original = make_test_cert_data ( ) ;
483+ let mut expired = make_test_cert_data ( ) ;
484+ expired. not_after = 1 ;
485+
486+ let resolver = CertResolver :: new ( ) ;
487+ resolver
488+ . update_cert ( "example.com" , & original)
489+ . expect ( "failed to install original certificate" ) ;
490+ resolver
491+ . update_cert ( "example.com" , & expired)
492+ . expect_err ( "expired certificate must be rejected" ) ;
493+
494+ assert_eq ! (
495+ resolver
496+ . get( )
497+ . get_cert_data( "example.com" )
498+ . expect( "original certificate was lost" )
499+ . not_after,
500+ original. not_after
501+ ) ;
502+ assert ! ( resolver. get( ) . has_cert_for_sni( "app.example.com" ) ) ;
503+ }
479504}
You can’t perform that action at this time.
0 commit comments