. declare(strict_types=1); namespace editor_tiny\plugininfo; use advanced_testcase; /** * Unit tests for the editor_tiny\tiny plugininfo class. * * @package editor_tiny * @covers \editor_tiny\plugininfo\tiny * @copyright 2023 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class tiny_test extends advanced_testcase { /** * Uninstall is allowed of TinyMCE plugins. * * @covers ::is_uninstall_allowed */ public function test_is_uninstall_allowed(): void { $instance = new tiny(); $this->assertTrue($instance->is_uninstall_allowed()); } /** * Check the manage URL. * * @covers ::get_manage_url */ public function test_get_manage_url(): void { $this->assertInstanceOf(\moodle_url::class, tiny::get_manage_url()); } /** * Test the get_enabled_plugins method. * * @covers ::get_enabled_plugin */ public function test_get_enabled_plugins(): void { $this->resetAfterTest(); $plugins = tiny::get_enabled_plugins(); $this->assertArrayHasKey('recordrtc', $plugins); $this->assertArrayHasKey('media', $plugins); $this->assertArrayHasKey('autosave', $plugins); $this->assertArrayHasKey('h5p', $plugins); // Disable a plugin. tiny::enable_plugin('h5p', 0); $plugins = tiny::get_enabled_plugins(); $this->assertArrayHasKey('recordrtc', $plugins); $this->assertArrayHasKey('media', $plugins); $this->assertArrayHasKey('autosave', $plugins); $this->assertArrayNotHasKey('h5p', $plugins); } }