From bbcd0415f9b517d753520ed918d982b068332f72 Mon Sep 17 00:00:00 2001 From: Kaspars Dambis Date: Mon, 2 Dec 2024 15:40:57 +0200 Subject: [PATCH] Add tests for the backup code length filter --- .../class-two-factor-backup-codes.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/providers/class-two-factor-backup-codes.php b/tests/providers/class-two-factor-backup-codes.php index a926044e..fb134b60 100644 --- a/tests/providers/class-two-factor-backup-codes.php +++ b/tests/providers/class-two-factor-backup-codes.php @@ -194,4 +194,25 @@ public function test_delete_code() { $this->provider->delete_code( $user, $backup_codes[0] ); $this->assertEquals( 1, $this->provider->codes_remaining_for_user( $user ) ); } + + public function test_backup_code_length_filter() { + $user = new WP_User( self::factory()->user->create() ); + + $code_default = $this->provider->generate_codes( $user, array( 'number' => 1 ) ); + + add_filter( + 'two_factor_backup_code_length', + function() { + return 7; + } + ); + + $code_custom_length = $this->provider->generate_codes( $user, array( 'number' => 1 ) ); + + $this->assertNotEquals( strlen( $code_custom_length[0] ), strlen( $code_default[0] ), 'Backup code length can be adjusted via filter' ); + + $this->assertEquals( 7, strlen( $code_custom_length[0] ), 'Backup code length matches the filtered length' ); + + remove_all_filters( 'two_factor_backup_code_length' ); + } }