From 545be65cb8f1afaaa9f041a2b1043b8ee768b6a6 Mon Sep 17 00:00:00 2001 From: Matthias Pfefferle Date: Thu, 17 Oct 2024 11:30:47 +0200 Subject: [PATCH] add unit tests --- includes/class-migration.php | 45 ++++++++++++--------- tests/test-class-activitypub-migrate.php | 51 ++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 19 deletions(-) create mode 100644 tests/test-class-activitypub-migrate.php diff --git a/includes/class-migration.php b/includes/class-migration.php index 101d7868..8e1e78c5 100644 --- a/includes/class-migration.php +++ b/includes/class-migration.php @@ -277,25 +277,7 @@ class Migration { * Update actor-mode settings. */ private static function migrate_to_4_0_0() { - $blog_profile = \get_option( 'activitypub_enable_blog_user', false ); - $author_profiles = \get_option( 'activitypub_enable_users', false ); - - if ( - '1' === $blog_profile && - '1' === $author_profiles - ) { - \update_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_AND_BLOG_MODE ); - } elseif ( - '1' === $blog_profile && - '1' !== $author_profiles - ) { - \update_option( 'activitypub_actor_mode', ACTIVITYPUB_BLOG_MODE ); - } elseif ( - '1' !== $blog_profile && - '1' === $author_profiles - ) { - \update_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ); - } + self::migrate_actor_mode(); } /** @@ -359,4 +341,29 @@ class Migration { array( '%s' ) ); } + + /** + * Migrate the actor mode settings. + */ + public static function migrate_actor_mode() { + $blog_profile = \get_option( 'activitypub_enable_blog_user', '0' ); + $author_profiles = \get_option( 'activitypub_enable_users', '0' ); + + if ( + '1' === $blog_profile && + '1' === $author_profiles + ) { + \update_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_AND_BLOG_MODE ); + } elseif ( + '1' === $blog_profile && + '1' !== $author_profiles + ) { + \update_option( 'activitypub_actor_mode', ACTIVITYPUB_BLOG_MODE ); + } elseif ( + '1' !== $blog_profile && + '1' === $author_profiles + ) { + \update_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ); + } + } } diff --git a/tests/test-class-activitypub-migrate.php b/tests/test-class-activitypub-migrate.php new file mode 100644 index 00000000..01ead327 --- /dev/null +++ b/tests/test-class-activitypub-migrate.php @@ -0,0 +1,51 @@ +assertEquals( ACTIVITYPUB_ACTOR_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + + \update_option( 'activitypub_enable_blog_user', '0' ); + \update_option( 'activitypub_enable_users', '1' ); + \delete_option( 'activitypub_actor_mode' ); + + \Activitypub\Migration::migrate_actor_mode(); + + $this->assertEquals( ACTIVITYPUB_ACTOR_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + + \update_option( 'activitypub_enable_blog_user', '1' ); + \update_option( 'activitypub_enable_users', '1' ); + \delete_option( 'activitypub_actor_mode' ); + + \Activitypub\Migration::migrate_actor_mode(); + + $this->assertEquals( ACTIVITYPUB_ACTOR_AND_BLOG_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + + \update_option( 'activitypub_enable_blog_user', '1' ); + \update_option( 'activitypub_enable_users', '0' ); + \delete_option( 'activitypub_actor_mode' ); + + \Activitypub\Migration::migrate_actor_mode(); + + $this->assertEquals( ACTIVITYPUB_BLOG_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + + \delete_option( 'activitypub_enable_blog_user' ); + \update_option( 'activitypub_enable_users', '0' ); + \delete_option( 'activitypub_actor_mode' ); + + \Activitypub\Migration::migrate_actor_mode(); + + $this->assertEquals( ACTIVITYPUB_ACTOR_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + + \update_option( 'activitypub_enable_blog_user', '0' ); + \delete_option( 'activitypub_enable_users' ); + \delete_option( 'activitypub_actor_mode' ); + + \Activitypub\Migration::migrate_actor_mode(); + + $this->assertEquals( ACTIVITYPUB_ACTOR_MODE, \get_option( 'activitypub_actor_mode', ACTIVITYPUB_ACTOR_MODE ) ); + } +}