Passed
Branch master (94c840)
by Lucien
02:10
created

PluginToolsTest::testIsPluginActive()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 4
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace TwinDigital\WPTools;
4
5
use WP_UnitTestCase;
6
7
/**
8
 * Class PluginToolsTest
9
 */
10
class PluginToolsTest extends WP_UnitTestCase
11
{
12
13
    /**
14
     * Plugins that come pre-installed with WordPress.
15
     *
16
     * @var array $preinstalledPlugins
17
     */
18
    public $preinstalledPlugins = [
19
        'Akismet Anti-Spam',
20
        'Hello Dolly',
21
    ];
22
23
    /**
24
     * Comment
25
     * @return void
26
     */
27
    public function setUp()
28
    {
29
        parent::setUp();
30
    }
31
32
    /**
33
     * Tests if the plugin_list is loaded.
34
     *
35
     * @covers \TwinDigital\WPTools\PluginTools::loadPluginList()
36
     * @return void
37
     */
38
    public function testLoadPluginList()
39
    {
40
        PluginTools::$loadedPlugins = [];
41
        PluginTools::loadPluginList();
42
        $this->assertNotCount(0, PluginTools::$loadedPlugins, 'Pluginlist is empty, probably failed loading the list of plugins.');
43
    }
44
45
    /**
46
     * Tests if the plugin_list is loaded.
47
     *
48
     * @covers \TwinDigital\WPTools\PluginTools::refreshLoadedPlugins()
49
     * @return void
50
     */
51
    public function testRefreshLoadedPlugins()
52
    {
53
        PluginTools::$loadedPlugins = [];
54
        PluginTools::refreshLoadedPlugins();
55
        $this->assertNotCount(0, PluginTools::$loadedPlugins, 'Pluginlist is empty, probably failed loading the list of plugins.');
56
    }
57
58
    /**
59
     * Tests if getting a plugin by name is working as it should.
60
     *
61
     * @covers \TwinDigital\WPTools\PluginTools::getPluginByTitle()
62
     * @return void
63
     */
64
    public function testGetPluginByTitle()
65
    {
66
        PluginTools::refreshLoadedPlugins();
67
        $this->assertEmpty(PluginTools::getPluginByTitle('Non-existing-plugin'), 'Found a plugin that is non-existing? Oops');
68
        $pluginDetails = null;
69
        foreach ($this->preinstalledPlugins as $plugin) {
70
            $pluginDetails = PluginTools::getPluginByTitle($plugin);
71
            if ($pluginDetails !== false) {
72
                break;
73
            }
74
        }
75
        $this->assertNotEmpty($pluginDetails);
76
        $this->assertNotCount(0, $pluginDetails);
77
    }
78
79
    /**
80
     * Tests if getting a plugin by name is working as it should.
81
     *
82
     * @covers \TwinDigital\WPTools\PluginTools::getPluginByTitleCaseInsensitive()
83
     * @return void
84
     */
85
    public function testGetPluginByTitleCaseInsensitive()
86
    {
87
        PluginTools::refreshLoadedPlugins();
88
        $this->assertEmpty(PluginTools::getPluginByTitleCaseInsensitive(strtolower('Non-existing-plugin')), 'Found a plugin that is non-existing? Oops');
89
        $pluginDetails = null;
90
        foreach ($this->preinstalledPlugins as $plugin) {
91
            $pluginDetails = PluginTools::getPluginByTitleCaseInsensitive(strtolower($plugin));
92
            if ($pluginDetails !== false) {
93
                break;
94
            }
95
        }
96
        $this->assertNotEmpty($pluginDetails);
97
        $this->assertNotCount(0, $pluginDetails);
98
    }
99
100
    /**
101
     * Test wether a plugin is active.
102
     * @return void
103
     */
104
    public function testIsPluginActive()
105
    {
106
        $this->assertFalse(PluginTools::isPluginActive('Non-existing-plugin'));
107
        $this->assertFalse(PluginTools::isPluginActive('Hello Dolly'));
108
    }
109
}
110