diff --git a/lib/tests/adminlib_test.php b/lib/tests/adminlib_test.php index 5800dd351613d..8be6e3e11fbdd 100644 --- a/lib/tests/adminlib_test.php +++ b/lib/tests/adminlib_test.php @@ -128,8 +128,7 @@ public function test_db_should_replace_additional_skip_tables(string $table, str } /** - * Test method used by upgradesettings.php to make sure - * there are no missing settings in PHPUnit and Behat tests. + * Test admin_output_new_settings_by_page method. * * @covers ::admin_output_new_settings_by_page */ @@ -137,24 +136,26 @@ public function test_admin_output_new_settings_by_page() { $this->resetAfterTest(); $this->setAdminUser(); + $root = admin_get_root(true, true); + // The initial list of html pages with no default settings. + $initialsettings = admin_output_new_settings_by_page($root); + $this->assertArrayHasKey('supportcontact', $initialsettings); + $this->assertArrayHasKey('frontpagesettings', $initialsettings); + // Existing default setting. + $this->assertArrayNotHasKey('modsettingbook', $initialsettings); + // Add settings not set during PHPUnit init. set_config('supportemail', 'support@example.com'); $frontpage = new \admin_setting_special_frontpagedesc(); $frontpage->write_setting('test test'); - - // NOTE: if this test fails then it is most likely extra setting in - // some additional plugin without default - developer needs to add - // a workaround into their db/install.php for PHPUnit and Behat. - - $root = admin_get_root(true, true); - $new = admin_output_new_settings_by_page($root); - $this->assertSame([], $new); - + // Remove a default setting. unset_config('numbering', 'book'); - unset_config('supportemail'); + $root = admin_get_root(true, true); $new = admin_output_new_settings_by_page($root); - $this->assertCount(2, $new); + $this->assertArrayNotHasKey('supportcontact', $new); + $this->assertArrayNotHasKey('frontpagesettings', $new); + $this->assertArrayHasKey('modsettingbook', $new); } /**