Skip to content

Commit 5652f33

Browse files
committed
Merge pull request phpbb#2669 from Nicofuma/ticket/12777
[ticket/12777] Rename extension status functions and add is_configured() * Nicofuma/ticket/12777: [ticket/12777] Add tests for unavailable extension [ticket/12777] Add tests [ticket/12777] Add is_purged() [ticket/12777] Update doc block of is_configured() [ticket/12777] Rename extension status functions and add is_configured()
2 parents 404c2f1 + daeb635 commit 5652f33

6 files changed

Lines changed: 92 additions & 14 deletions

File tree

phpBB/includes/acp/acp_extensions.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ function main()
137137
trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
138138
}
139139

140-
if ($phpbb_extension_manager->enabled($ext_name))
140+
if ($phpbb_extension_manager->is_enabled($ext_name))
141141
{
142142
redirect($this->u_action);
143143
}
@@ -162,7 +162,7 @@ function main()
162162
trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
163163
}
164164

165-
if ($phpbb_extension_manager->enabled($ext_name))
165+
if ($phpbb_extension_manager->is_enabled($ext_name))
166166
{
167167
redirect($this->u_action);
168168
}
@@ -194,7 +194,7 @@ function main()
194194
break;
195195

196196
case 'disable_pre':
197-
if (!$phpbb_extension_manager->enabled($ext_name))
197+
if (!$phpbb_extension_manager->is_enabled($ext_name))
198198
{
199199
redirect($this->u_action);
200200
}
@@ -209,7 +209,7 @@ function main()
209209
break;
210210

211211
case 'disable':
212-
if (!$phpbb_extension_manager->enabled($ext_name))
212+
if (!$phpbb_extension_manager->is_enabled($ext_name))
213213
{
214214
redirect($this->u_action);
215215
}
@@ -234,7 +234,7 @@ function main()
234234
break;
235235

236236
case 'delete_data_pre':
237-
if ($phpbb_extension_manager->enabled($ext_name))
237+
if ($phpbb_extension_manager->is_enabled($ext_name))
238238
{
239239
redirect($this->u_action);
240240
}
@@ -248,7 +248,7 @@ function main()
248248
break;
249249

250250
case 'delete_data':
251-
if ($phpbb_extension_manager->enabled($ext_name))
251+
if ($phpbb_extension_manager->is_enabled($ext_name))
252252
{
253253
redirect($this->u_action);
254254
}

phpBB/phpbb/console/command/extension/disable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
3737
$this->manager->disable($name);
3838
$this->manager->load_extensions();
3939

40-
if ($this->manager->enabled($name))
40+
if ($this->manager->is_enabled($name))
4141
{
4242
$output->writeln("<error>Could not disable extension $name</error>");
4343
return 1;

phpBB/phpbb/console/command/extension/enable.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
3737
$this->manager->enable($name);
3838
$this->manager->load_extensions();
3939

40-
if ($this->manager->enabled($name))
40+
if ($this->manager->is_enabled($name))
4141
{
4242
$this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_ENABLE', time(), array($name));
4343
$output->writeln("<info>Successfully enabled extension $name</info>");

phpBB/phpbb/console/command/extension/purge.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
3737
$this->manager->purge($name);
3838
$this->manager->load_extensions();
3939

40-
if ($this->manager->enabled($name))
40+
if ($this->manager->is_enabled($name))
4141
{
4242
$output->writeln("<error>Could not purge extension $name</error>");
4343
return 1;

phpBB/phpbb/extension/manager.php

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ public function all_disabled()
515515
* @param string $name Extension name to check NOTE: Can be user input
516516
* @return bool Depending on whether or not the extension is available
517517
*/
518-
public function available($name)
518+
public function is_available($name)
519519
{
520520
return file_exists($this->get_extension_path($name, true));
521521
}
@@ -526,11 +526,49 @@ public function available($name)
526526
* @param string $name Extension name to check
527527
* @return bool Depending on whether or not the extension is enabled
528528
*/
529-
public function enabled($name)
529+
public function is_enabled($name)
530530
{
531531
return isset($this->extensions[$name]) && $this->extensions[$name]['ext_active'];
532532
}
533533

534+
/**
535+
* Check to see if a given extension is disabled
536+
*
537+
* @param string $name Extension name to check
538+
* @return bool Depending on whether or not the extension is disabled
539+
*/
540+
public function is_disabled($name)
541+
{
542+
return isset($this->extensions[$name]) && !$this->extensions[$name]['ext_active'];
543+
}
544+
545+
/**
546+
* Check to see if a given extension is configured
547+
*
548+
* All enabled and disabled extensions are considered configured. A purged
549+
* extension that is no longer in the database is not configured.
550+
*
551+
* @param string $name Extension name to check
552+
* @return bool Depending on whether or not the extension is configured
553+
*/
554+
public function is_configured($name)
555+
{
556+
return isset($this->extensions[$name]);
557+
}
558+
559+
/**
560+
* Check to see if a given extension is purged
561+
*
562+
* An extension is purged if it is available, not enabled and not disabled.
563+
*
564+
* @param string $name Extension name to check
565+
* @return bool Depending on whether or not the extension is purged
566+
*/
567+
public function is_purged($name)
568+
{
569+
return $this->is_available($name) && !$this->is_configured($name);
570+
}
571+
534572
/**
535573
* Instantiates a \phpbb\finder.
536574
*

tests/extension/manager_test.php

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,62 @@ protected function setUp()
3232
$this->extension_manager = $this->create_extension_manager();
3333
}
3434

35-
public function test_available()
35+
public function test_all_available()
3636
{
3737
// barfoo and vendor3/bar should not listed due to missing composer.json. barfoo also has incorrect dir structure.
3838
$this->assertEquals(array('vendor/moo', 'vendor2/bar', 'vendor2/foo'), array_keys($this->extension_manager->all_available()));
3939
}
4040

41-
public function test_enabled()
41+
public function test_all_enabled()
4242
{
4343
$this->assertEquals(array('vendor2/foo'), array_keys($this->extension_manager->all_enabled()));
4444
}
4545

46-
public function test_configured()
46+
public function test_all_configured()
4747
{
4848
$this->assertEquals(array('vendor/moo', 'vendor2/foo'), array_keys($this->extension_manager->all_configured()));
4949
}
5050

51+
public function test_is_enabled()
52+
{
53+
$this->assertSame(true, $this->extension_manager->is_enabled('vendor2/foo'));
54+
$this->assertSame(false, $this->extension_manager->is_enabled('vendor/moo'));
55+
$this->assertSame(false, $this->extension_manager->is_enabled('vendor2/bar'));
56+
$this->assertSame(false, $this->extension_manager->is_enabled('bertie/worlddominationplan'));
57+
}
58+
59+
public function test_is_disabled()
60+
{
61+
$this->assertSame(false, $this->extension_manager->is_disabled('vendor2/foo'));
62+
$this->assertSame(true, $this->extension_manager->is_disabled('vendor/moo'));
63+
$this->assertSame(false, $this->extension_manager->is_disabled('vendor2/bar'));
64+
$this->assertSame(false, $this->extension_manager->is_disabled('bertie/worlddominationplan'));
65+
}
66+
67+
public function test_is_purged()
68+
{
69+
$this->assertSame(false, $this->extension_manager->is_purged('vendor2/foo'));
70+
$this->assertSame(false, $this->extension_manager->is_purged('vendor/moo'));
71+
$this->assertSame(true, $this->extension_manager->is_purged('vendor2/bar'));
72+
$this->assertSame(false, $this->extension_manager->is_purged('bertie/worlddominationplan'));
73+
}
74+
75+
public function test_is_configured()
76+
{
77+
$this->assertSame(true, $this->extension_manager->is_configured('vendor2/foo'));
78+
$this->assertSame(true, $this->extension_manager->is_configured('vendor/moo'));
79+
$this->assertSame(false, $this->extension_manager->is_configured('vendor2/bar'));
80+
$this->assertSame(false, $this->extension_manager->is_configured('bertie/worlddominationplan'));
81+
}
82+
83+
public function test_is_available()
84+
{
85+
$this->assertSame(true, $this->extension_manager->is_available('vendor2/foo'));
86+
$this->assertSame(true, $this->extension_manager->is_available('vendor/moo'));
87+
$this->assertSame(true, $this->extension_manager->is_available('vendor2/bar'));
88+
$this->assertSame(false, $this->extension_manager->is_available('bertie/worlddominationplan'));
89+
}
90+
5191
public function test_enable()
5292
{
5393
vendor2\bar\ext::$state = 0;

0 commit comments

Comments
 (0)