Merge pull request #1845 from nickvergessen/ticket/11994

[ticket/11994] Make extension manager UI less misleading
This commit is contained in:
David King 2013-11-07 17:46:58 -08:00
commit 082a467cc8
7 changed files with 139 additions and 136 deletions

View file

@ -5,35 +5,35 @@
<h1>{L_EXTENSIONS_ADMIN}</h1> <h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p> <p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_PURGE_EXPLAIN}</p> <p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
<!-- IF MIGRATOR_ERROR --> <!-- IF MIGRATOR_ERROR -->
<div class="errorbox"> <div class="errorbox">
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p> <p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
<p>{MIGRATOR_ERROR}</p> <p>{MIGRATOR_ERROR}</p>
<p><a href="{U_RETURN}">{L_RETURN}</a></p> <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div> </div>
<!-- ELSEIF PRE --> <!-- ELSEIF PRE -->
<div class="errorbox"> <div class="errorbox">
<p>{L_PURGE_CONFIRM}</p> <p>{L_CONFIRM_MESSAGE}</p>
</div> </div>
<form id="acp_extensions" method="post" action="{U_PURGE}"> <form id="acp_extensions" method="post" action="{U_PURGE}">
<fieldset class="submit-buttons"> <fieldset class="submit-buttons">
<legend>{L_PURGE}</legend> <legend>{L_EXTENSION_DELETE_DATA}</legend>
<input class="button1" type="submit" name="purge" value="{L_PURGE}" /> <input class="button1" type="submit" name="purge" value="{L_EXTENSION_DELETE_DATA}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" /> <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset> </fieldset>
</form> </form>
<!-- ELSEIF S_NEXT_STEP --> <!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox"> <div class="errorbox">
<p>{L_PURGE_IN_PROGRESS}</p> <p>{L_EXTENSION_DELETE_DATA_IN_PROGRESS}</p>
</div> </div>
<!-- ELSE --> <!-- ELSE -->
<div class="successbox"> <div class="successbox">
<p>{L_PURGE_SUCCESS}</p> <p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
<br /> <br />
<p><a href="{U_RETURN}">{L_RETURN}</a></p> <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -5,29 +5,29 @@
<h1>{L_EXTENSIONS_ADMIN}</h1> <h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p> <p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_DISABLE_EXPLAIN}</p> <p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
<!-- IF PRE --> <!-- IF PRE -->
<div class="errorbox"> <div class="errorbox">
<p>{L_DISABLE_CONFIRM}</p> <p>{L_CONFIRM_MESSAGE}</p>
</div> </div>
<form id="acp_extensions" method="post" action="{U_DISABLE}"> <form id="acp_extensions" method="post" action="{U_DISABLE}">
<fieldset class="submit-buttons"> <fieldset class="submit-buttons">
<legend>{L_DISABLE}</legend> <legend>{L_EXTENSION_DISABLE}</legend>
<input class="button1" type="submit" name="disable" value="{L_DISABLE}" /> <input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" /> <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset> </fieldset>
</form> </form>
<!-- ELSEIF S_NEXT_STEP --> <!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox"> <div class="errorbox">
<p>{L_DISABLE_IN_PROGRESS}</p> <p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
</div> </div>
<!-- ELSE --> <!-- ELSE -->
<div class="successbox"> <div class="successbox">
<p>{L_DISABLE_SUCCESS}</p> <p>{L_EXTENSION_DISABLE_SUCCESS}</p>
<br /> <br />
<p><a href="{U_RETURN}">{L_RETURN}</a></p> <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -5,35 +5,35 @@
<h1>{L_EXTENSIONS_ADMIN}</h1> <h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p> <p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_ENABLE_EXPLAIN}</p> <p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
<!-- IF MIGRATOR_ERROR --> <!-- IF MIGRATOR_ERROR -->
<div class="errorbox"> <div class="errorbox">
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p> <p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
<p>{MIGRATOR_ERROR}</p> <p>{MIGRATOR_ERROR}</p>
<p><a href="{U_RETURN}">{L_RETURN}</a></p> <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div> </div>
<!-- ELSEIF PRE --> <!-- ELSEIF PRE -->
<div class="errorbox"> <div class="errorbox">
<p>{L_ENABLE_CONFIRM}</p> <p>{L_CONFIRM_MESSAGE}</p>
</div> </div>
<form id="acp_extensions" method="post" action="{U_ENABLE}"> <form id="acp_extensions" method="post" action="{U_ENABLE}">
<fieldset class="submit-buttons"> <fieldset class="submit-buttons">
<legend>{L_ENABLE}</legend> <legend>{L_EXTENSION_ENABLE}</legend>
<input class="button1" type="submit" name="enable" value="{L_ENABLE}" /> <input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" /> <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset> </fieldset>
</form> </form>
<!-- ELSEIF S_NEXT_STEP --> <!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox"> <div class="errorbox">
<p>{L_ENABLE_IN_PROGRESS}</p> <p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
</div> </div>
<!-- ELSE --> <!-- ELSE -->
<div class="successbox"> <div class="successbox">
<p>{L_ENABLE_SUCCESS}</p> <p>{L_EXTENSION_ENABLE_SUCCESS}</p>
<br /> <br />
<p><a href="{U_RETURN}">{L_RETURN}</a></p> <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -18,9 +18,7 @@
<tbody> <tbody>
<!-- IF .enabled --> <!-- IF .enabled -->
<tr> <tr>
<td class="row3" colspan="3"> <td class="row3" colspan="3"><strong>{L_EXTENSIONS_ENABLED}</strong></td>
<strong>{L_ENABLED} {L_EXTENSIONS}</strong>
</td>
</tr> </tr>
<!-- BEGIN enabled --> <!-- BEGIN enabled -->
<tr class="ext_enabled"> <tr class="ext_enabled">
@ -28,7 +26,7 @@
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td> <td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
<td style="text-align: center;"> <td style="text-align: center;">
<!-- BEGIN actions --> <!-- BEGIN actions -->
<a href="{enabled.actions.U_ACTION}" title="{enabled.actions.L_ACTION}">{enabled.actions.L_ACTION}</a> <a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF --> <!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions --> <!-- END actions -->
</td> </td>
@ -38,7 +36,7 @@
<!-- IF .disabled --> <!-- IF .disabled -->
<tr> <tr>
<td class="row3" colspan="3"><strong>{L_DISABLED} {L_EXTENSIONS}</strong></td> <td class="row3" colspan="3"><strong>{L_EXTENSIONS_DISABLED}</strong></td>
</tr> </tr>
<!-- BEGIN disabled --> <!-- BEGIN disabled -->
<tr class="ext_disabled"> <tr class="ext_disabled">
@ -48,7 +46,7 @@
</td> </td>
<td style="text-align: center;"> <td style="text-align: center;">
<!-- BEGIN actions --> <!-- BEGIN actions -->
<a href="{disabled.actions.U_ACTION}" title="{disabled.actions.L_ACTION}">{disabled.actions.L_ACTION}</a> <a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF --> <!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions --> <!-- END actions -->
</td> </td>

View file

@ -66,7 +66,7 @@ class acp_extensions
} }
catch(\phpbb\extension\exception $e) catch(\phpbb\extension\exception $e)
{ {
trigger_error($e); trigger_error($e, E_USER_WARNING);
} }
} }
@ -97,6 +97,7 @@ class acp_extensions
$template->assign_vars(array( $template->assign_vars(array(
'PRE' => true, 'PRE' => true,
'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_ENABLE_CONFIRM', $md_manager->get_metadata('display-name')),
'U_ENABLE' => $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name), 'U_ENABLE' => $this->u_action . '&amp;action=enable&amp;ext_name=' . urlencode($ext_name),
)); ));
break; break;
@ -142,6 +143,7 @@ class acp_extensions
$template->assign_vars(array( $template->assign_vars(array(
'PRE' => true, 'PRE' => true,
'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_DISABLE_CONFIRM', $md_manager->get_metadata('display-name')),
'U_DISABLE' => $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name), 'U_DISABLE' => $this->u_action . '&amp;action=disable&amp;ext_name=' . urlencode($ext_name),
)); ));
break; break;
@ -165,16 +167,21 @@ class acp_extensions
)); ));
break; break;
case 'purge_pre': case 'delete_data_pre':
$this->tpl_name = 'acp_ext_purge'; if ($phpbb_extension_manager->enabled($ext_name))
{
redirect($this->u_action);
}
$this->tpl_name = 'acp_ext_delete_data';
$template->assign_vars(array( $template->assign_vars(array(
'PRE' => true, 'PRE' => true,
'U_PURGE' => $this->u_action . '&amp;action=purge&amp;ext_name=' . urlencode($ext_name), 'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_DELETE_DATA_CONFIRM', $md_manager->get_metadata('display-name')),
'U_PURGE' => $this->u_action . '&amp;action=delete_data&amp;ext_name=' . urlencode($ext_name),
)); ));
break; break;
case 'purge': case 'delete_data':
try try
{ {
while ($phpbb_extension_manager->purge_step($ext_name)) while ($phpbb_extension_manager->purge_step($ext_name))
@ -184,7 +191,7 @@ class acp_extensions
{ {
$template->assign_var('S_NEXT_STEP', true); $template->assign_var('S_NEXT_STEP', true);
meta_refresh(0, $this->u_action . '&amp;action=purge&amp;ext_name=' . urlencode($ext_name)); meta_refresh(0, $this->u_action . '&amp;action=delete_data&amp;ext_name=' . urlencode($ext_name));
} }
} }
} }
@ -193,7 +200,7 @@ class acp_extensions
$template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user)); $template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user));
} }
$this->tpl_name = 'acp_ext_purge'; $this->tpl_name = 'acp_ext_delete_data';
$template->assign_vars(array( $template->assign_vars(array(
'U_RETURN' => $this->u_action . '&amp;action=list', 'U_RETURN' => $this->u_action . '&amp;action=list',
@ -233,7 +240,6 @@ class acp_extensions
$this->output_actions('enabled', array( $this->output_actions('enabled', array(
'DISABLE' => $this->u_action . '&amp;action=disable_pre&amp;ext_name=' . urlencode($name), 'DISABLE' => $this->u_action . '&amp;action=disable_pre&amp;ext_name=' . urlencode($name),
'PURGE' => $this->u_action . '&amp;action=purge_pre&amp;ext_name=' . urlencode($name),
)); ));
} }
catch(\phpbb\extension\exception $e) catch(\phpbb\extension\exception $e)
@ -267,7 +273,7 @@ class acp_extensions
$this->output_actions('disabled', array( $this->output_actions('disabled', array(
'ENABLE' => $this->u_action . '&amp;action=enable_pre&amp;ext_name=' . urlencode($name), 'ENABLE' => $this->u_action . '&amp;action=enable_pre&amp;ext_name=' . urlencode($name),
'PURGE' => $this->u_action . '&amp;action=purge_pre&amp;ext_name=' . urlencode($name), 'DELETE_DATA' => $this->u_action . '&amp;action=delete_data_pre&amp;ext_name=' . urlencode($name),
)); ));
} }
catch(\phpbb\extension\exception $e) catch(\phpbb\extension\exception $e)
@ -325,7 +331,8 @@ class acp_extensions
foreach ($actions as $lang => $url) foreach ($actions as $lang => $url)
{ {
$this->template->assign_block_vars($block . '.actions', array( $this->template->assign_block_vars($block . '.actions', array(
'L_ACTION' => $this->user->lang($lang), 'L_ACTION' => $this->user->lang('EXTENSION_' . $lang),
'L_ACTION_EXPLAIN' => (isset($this->user->lang['EXTENSION_' . $lang . '_EXPLAIN'])) ? $this->user->lang('EXTENSION_' . $lang . '_EXPLAIN') : '',
'U_ACTION' => $url, 'U_ACTION' => $url,
)); ));
} }

View file

@ -39,47 +39,39 @@ $lang = array_merge($lang, array(
'EXTENSIONS' => 'Extensions', 'EXTENSIONS' => 'Extensions',
'EXTENSIONS_ADMIN' => 'Extensions Manager', 'EXTENSIONS_ADMIN' => 'Extensions Manager',
'EXTENSIONS_EXPLAIN' => 'The Extensions Manager is a tool in your phpBB Board which allows you to manage all of your extensions statuses and view information about them.', 'EXTENSIONS_EXPLAIN' => 'The Extensions Manager is a tool in your phpBB Board which allows you to manage all of your extensions statuses and view information about them.',
'EXTENSION_INVALID_LIST' => 'The "%s" extension is not valid.<br />%s<br /><br />', 'EXTENSION_INVALID_LIST' => 'The “%s” extension is not valid.<br />%s<br /><br />',
'EXTENSION_NOT_AVAILABLE' => 'The selected extension is not available for this board, please verify your phpBB and PHP versions are allowed (see the details page).', 'EXTENSION_NOT_AVAILABLE' => 'The selected extension is not available for this board, please verify your phpBB and PHP versions are allowed (see the details page).',
'DETAILS' => 'Details', 'DETAILS' => 'Details',
'AVAILABLE' => 'Available', 'EXTENSIONS_DISABLED' => 'Disabled Extensions',
'ENABLED' => 'Enabled', 'EXTENSIONS_ENABLED' => 'Enabled Extensions',
'DISABLED' => 'Disabled',
'PURGED' => 'Purged',
'UPLOADED' => 'Uploaded',
'ENABLE' => 'Enable', 'EXTENSION_DELETE_DATA' => 'Delete data',
'DISABLE' => 'Disable', 'EXTENSION_DISABLE' => 'Disable',
'PURGE' => 'Purge', 'EXTENSION_ENABLE' => 'Enable',
'ENABLE_EXPLAIN' => 'Enabling an extension allows you to use it on your board.', 'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extensions data removes all of its data and settings. The extension files are retained so it can be enabled again.',
'DISABLE_EXPLAIN' => 'Disabling an extension retains its files and settings but removes any functionality added by the extension.', 'EXTENSION_DISABLE_EXPLAIN' => 'Disabling an extension retains its files, data and settings but removes any functionality added by the extension.',
'PURGE_EXPLAIN' => 'Purging an extension clears an extensions data while retaining its files.', 'EXTENSION_ENABLE_EXPLAIN' => 'Enabling an extension allows you to use it on your board.',
'DELETE_EXPLAIN' => 'Deleting an extension removes all of its files and settings. Log entries will remain, although any language variables added by the extension will not be available.',
'DISABLE_IN_PROGRESS' => 'The extension is currently being disabled, please do not leave this page or refresh until it is completed.', 'EXTENSION_DELETE_DATA_IN_PROGRESS' => 'The extensions data is currently being deleted. Please do not leave or refresh this page until it is completed.',
'ENABLE_IN_PROGRESS' => 'The extension is currently being installed, please do not leave this page or refresh until it is completed.', 'EXTENSION_DISABLE_IN_PROGRESS' => 'The extension is currently being disabled. Please do not leave or refresh this page until it is completed.',
'PURGE_IN_PROGRESS' => 'The extension is currently being purged, please do not leave this page or refresh until it is completed.', 'EXTENSION_ENABLE_IN_PROGRESS' => 'The extension is currently being enabled. Please do not leave or refresh this page until it is completed.',
'ENABLE_SUCCESS' => 'The extension was enabled successfully',
'DISABLE_SUCCESS' => 'The extension was disabled successfully',
'PURGE_SUCCESS' => 'The extension was purged successfully',
'ENABLE_FAIL' => 'The extension could not be enabled', 'EXTENSION_DELETE_DATA_SUCCESS' => 'The extensions data was deleted successfully',
'DISABLE_FAIL' => 'The extension could not be disabled', 'EXTENSION_DISABLE_SUCCESS' => 'The extension was disabled successfully',
'PURGE_FAIL' => 'The extension could not be purged', 'EXTENSION_ENABLE_SUCCESS' => 'The extension was enabled successfully',
'EXTENSION_NAME' => 'Extension Name', 'EXTENSION_NAME' => 'Extension Name',
'EXTENSION_ACTIONS' => 'Actions', 'EXTENSION_ACTIONS' => 'Actions',
'EXTENSION_OPTIONS' => 'Options', 'EXTENSION_OPTIONS' => 'Options',
'ENABLE_CONFIRM' => 'Are you sure that you wish to enable this extension?', 'EXTENSION_DELETE_DATA_CONFIRM' => 'Are you sure that you wish to delete the data associated with “%s”?<br /><br />This removes all of its data and settings and cannot be undone!',
'DISABLE_CONFIRM' => 'Are you sure that you wish to disable this extension?', 'EXTENSION_DISABLE_CONFIRM' => 'Are you sure that you wish to disable the “%s” extension?',
'PURGE_CONFIRM' => 'Are you sure that you wish to purge this extension&#39;s data? This will remove all settings stored for this extension and cannot be undone!', 'EXTENSION_ENABLE_CONFIRM' => 'Are you sure that you wish to enable the “%s” extension?',
'WARNING' => 'Warning', 'RETURN_TO_EXTENSION_LIST' => 'Return to the extension list',
'RETURN' => 'Return',
'EXT_DETAILS' => 'Extension Details', 'EXT_DETAILS' => 'Extension Details',
'DISPLAY_NAME' => 'Display Name', 'DISPLAY_NAME' => 'Display Name',

View file

@ -83,18 +83,18 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case
$this->assertCount(5, $crawler->filter('.ext_disabled')); $this->assertCount(5, $crawler->filter('.ext_disabled'));
$this->assertContains('phpBB Foo Extension', $crawler->filter('.ext_enabled')->eq(0)->text()); $this->assertContains('phpBB Foo Extension', $crawler->filter('.ext_enabled')->eq(0)->text());
$this->assertContainsLang('PURGE', $crawler->filter('.ext_enabled')->eq(0)->text()); $this->assertContainsLang('EXTENSION_DISABLE', $crawler->filter('.ext_enabled')->eq(0)->text());
$this->assertContains('The "test2" extension is not valid.', $crawler->filter('.ext_disabled')->eq(0)->text()); $this->assertContains('The “test2” extension is not valid.', $crawler->filter('.ext_disabled')->eq(0)->text());
$this->assertContains('The "test3" extension is not valid.', $crawler->filter('.ext_disabled')->eq(1)->text()); $this->assertContains('The “test3” extension is not valid.', $crawler->filter('.ext_disabled')->eq(1)->text());
$this->assertContains('phpBB Moo Extension', $crawler->filter('.ext_disabled')->eq(2)->text()); $this->assertContains('phpBB Moo Extension', $crawler->filter('.ext_disabled')->eq(2)->text());
$this->assertContainsLang('DETAILS', $crawler->filter('.ext_disabled')->eq(2)->text()); $this->assertContainsLang('DETAILS', $crawler->filter('.ext_disabled')->eq(2)->text());
$this->assertContainsLang('ENABLE', $crawler->filter('.ext_disabled')->eq(2)->text()); $this->assertContainsLang('EXTENSION_ENABLE', $crawler->filter('.ext_disabled')->eq(2)->text());
$this->assertContainsLang('PURGE', $crawler->filter('.ext_disabled')->eq(2)->text()); $this->assertContainsLang('EXTENSION_DELETE_DATA', $crawler->filter('.ext_disabled')->eq(2)->text());
$this->assertContains('The "bar" extension is not valid.', $crawler->filter('.ext_disabled')->eq(3)->text()); $this->assertContains('The “bar” extension is not valid.', $crawler->filter('.ext_disabled')->eq(3)->text());
} }
public function test_details() public function test_details()
@ -144,45 +144,51 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case
{ {
// Foo is already enabled (redirect to list) // Foo is already enabled (redirect to list)
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=foo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=foo&sid=' . $this->sid);
$this->assertContainsLang('EXTENSION_NAME', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_NAME', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_OPTIONS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_OPTIONS', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_ACTIONS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_ACTIONS', $crawler->filter('div.main thead')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=vendor%2Fmoo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable_pre&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContainsLang('ENABLE_CONFIRM', $crawler->filter('html')->text()); $this->assertContains($this->lang('EXTENSION_ENABLE_CONFIRM', 'phpBB Moo Extension'), $crawler->filter('.errorbox')->text());
} }
public function test_disable_pre() public function test_disable_pre()
{ {
// Moo is not enabled (redirect to list) // Moo is not enabled (redirect to list)
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable_pre&ext_name=vendor%2Fmoo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable_pre&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContainsLang('EXTENSION_NAME', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_NAME', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_OPTIONS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_OPTIONS', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_ACTIONS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_ACTIONS', $crawler->filter('div.main thead')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable_pre&ext_name=foo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable_pre&ext_name=foo&sid=' . $this->sid);
$this->assertContainsLang('DISABLE_CONFIRM', $crawler->filter('html')->text()); $this->assertContains($this->lang('EXTENSION_DISABLE_CONFIRM', 'phpBB Foo Extension'), $crawler->filter('.errorbox')->text());
} }
public function test_purge_pre() public function test_delete_data_pre()
{ {
// test2 is not available (error) // test2 is not available (error)
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=purge_pre&ext_name=test2&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=delete_data_pre&ext_name=test2&sid=' . $this->sid);
$this->assertContains('The required file does not exist', $crawler->filter('html')->text()); $this->assertContains('The required file does not exist', $crawler->filter('.errorbox')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=purge_pre&ext_name=foo&sid=' . $this->sid); // foo is not disabled (redirect to list)
$this->assertContainsLang('PURGE_CONFIRM', $crawler->filter('html')->text()); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=delete_data_pre&ext_name=foo&sid=' . $this->sid);
$this->assertContainsLang('EXTENSION_NAME', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_OPTIONS', $crawler->filter('div.main thead')->text());
$this->assertContainsLang('EXTENSION_ACTIONS', $crawler->filter('div.main thead')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=delete_data_pre&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContains('Are you sure that you wish to delete the data associated with “phpBB Moo Extension”?', $crawler->filter('.errorbox')->text());
} }
public function test_actions() public function test_actions()
{ {
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable&ext_name=vendor%2Fmoo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=enable&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContainsLang('ENABLE_SUCCESS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_ENABLE_SUCCESS', $crawler->filter('.successbox')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable&ext_name=vendor%2Fmoo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=disable&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContainsLang('DISABLE_SUCCESS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_DISABLE_SUCCESS', $crawler->filter('.successbox')->text());
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=purge&ext_name=vendor%2Fmoo&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=delete_data&ext_name=vendor%2Fmoo&sid=' . $this->sid);
$this->assertContainsLang('PURGE_SUCCESS', $crawler->filter('html')->text()); $this->assertContainsLang('EXTENSION_DELETE_DATA_SUCCESS', $crawler->filter('.successbox')->text());
} }
} }