MDL-82212 behat: Display error when deprecated icons are found
A check for deprecated icons has been integrated into Behat tests. This check can be disabled by adding the --no-icon-deprecations flag to the Behat initialization command.
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
issueNumber: MDL-82212
|
||||
notes:
|
||||
tool_behat:
|
||||
- message: >-
|
||||
Behat tests are now checking for deprecated icons. This check can be
|
||||
disabled by using the --no-icon-deprecations option in the behat CLI.
|
||||
type: improved
|
||||
@@ -54,6 +54,7 @@ list($options, $unrecognized) = cli_get_params(
|
||||
'composer-upgrade' => true,
|
||||
'composer-self-update' => true,
|
||||
'scss-deprecations' => false,
|
||||
'no-icon-deprecations' => false,
|
||||
),
|
||||
array(
|
||||
'j' => 'parallel',
|
||||
@@ -70,18 +71,20 @@ Behat utilities to initialise behat tests
|
||||
|
||||
Usage:
|
||||
php init.php [--parallel=value [--maxruns=value] [--fromrun=value --torun=value]]
|
||||
[--no-axe] [--scss-deprecations] [-o | --optimize-runs] [-a | --add-core-features-to-theme]
|
||||
[--no-axe] [--scss-deprecations] [--no-icon-deprecations] [-o | --optimize-runs]
|
||||
[-a | --add-core-features-to-theme]
|
||||
[--no-composer-self-update] [--no-composer-upgrade]
|
||||
[--disable-composer]
|
||||
[--help]
|
||||
|
||||
Options:
|
||||
-j, --parallel Number of parallel behat run to initialise
|
||||
-m, --maxruns Max parallel processes to be executed at one time
|
||||
--fromrun Execute run starting from (Used for parallel runs on different vms)
|
||||
--torun Execute run till (Used for parallel runs on different vms)
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
-j, --parallel Number of parallel behat run to initialise
|
||||
-m, --maxruns Max parallel processes to be executed at one time
|
||||
--fromrun Execute run starting from (Used for parallel runs on different vms)
|
||||
--torun Execute run till (Used for parallel runs on different vms)
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
--no-icon-deprecations Disable icon deprecation checks.
|
||||
|
||||
-o, --optimize-runs
|
||||
Split features with specified tags in all parallel runs.
|
||||
@@ -134,6 +137,7 @@ if ($options['parallel'] && $options['parallel'] > 1) {
|
||||
'add-core-features-to-theme',
|
||||
'axe',
|
||||
'scss-deprecations',
|
||||
'no-icon-deprecations',
|
||||
];
|
||||
|
||||
foreach ($cmdoptionsforsinglerun as $option) {
|
||||
|
||||
@@ -59,6 +59,7 @@ list($options, $unrecognized) = cli_get_params(
|
||||
'add-core-features-to-theme' => false,
|
||||
'axe' => true,
|
||||
'scss-deprecations' => false,
|
||||
'no-icon-deprecations' => false,
|
||||
),
|
||||
array(
|
||||
'h' => 'help',
|
||||
@@ -74,18 +75,20 @@ $help = "
|
||||
Behat utilities to manage the test environment
|
||||
|
||||
Usage:
|
||||
php util.php [--install|--drop|--enable|--disable|--diag|--updatesteps|--no-axe|--scss-deprecations|--help]
|
||||
php util.php [--install|--drop|--enable|--disable|--diag|--updatesteps]
|
||||
[--no-axe|--scss-deprecations|--no-icon-deprecations|--help]
|
||||
[--parallel=value [--maxruns=value]]
|
||||
|
||||
Options:
|
||||
--install Installs the test environment for acceptance tests
|
||||
--drop Drops the database tables and the dataroot contents
|
||||
--enable Enables test environment and updates tests list
|
||||
--disable Disables test environment
|
||||
--diag Get behat test environment status code
|
||||
--updatesteps Update feature step file.
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
--install Installs the test environment for acceptance tests
|
||||
--drop Drops the database tables and the dataroot contents
|
||||
--enable Enables test environment and updates tests list
|
||||
--disable Disables test environment
|
||||
--diag Get behat test environment status code
|
||||
--updatesteps Update feature step file.
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
--no-icon-deprecations Disable icon deprecation checks.
|
||||
|
||||
-j, --parallel Number of parallel behat run operation
|
||||
-m, --maxruns Max parallel processes to be executed at one time.
|
||||
|
||||
@@ -54,6 +54,7 @@ list($options, $unrecognized) = cli_get_params(
|
||||
'add-core-features-to-theme' => false,
|
||||
'axe' => true,
|
||||
'scss-deprecations' => false,
|
||||
'no-icon-deprecations' => false,
|
||||
),
|
||||
array(
|
||||
'h' => 'help',
|
||||
@@ -74,14 +75,15 @@ Usage:
|
||||
php util_single_run.php [--install|--drop|--enable|--disable|--diag|--updatesteps|--help]
|
||||
|
||||
Options:
|
||||
--install Installs the test environment for acceptance tests
|
||||
--drop Drops the database tables and the dataroot contents
|
||||
--enable Enables test environment and updates tests list
|
||||
--disable Disables test environment
|
||||
--diag Get behat test environment status code
|
||||
--updatesteps Update feature step file.
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
--install Installs the test environment for acceptance tests
|
||||
--drop Drops the database tables and the dataroot contents
|
||||
--enable Enables test environment and updates tests list
|
||||
--disable Disables test environment
|
||||
--diag Get behat test environment status code
|
||||
--updatesteps Update feature step file.
|
||||
--no-axe Disable axe accessibility tests.
|
||||
--scss-deprecations Enable SCSS deprecation checks.
|
||||
--no-icon-deprecations Disable icon deprecation checks.
|
||||
|
||||
-o, --optimize-runs Split features with specified tags in all parallel runs.
|
||||
-a, --add-core-features-to-theme Add all core features to specified theme's
|
||||
@@ -194,6 +196,9 @@ if ($options['install']) {
|
||||
// Define whether to run Behat with SCSS deprecation checks.
|
||||
behat_config_manager::set_behat_run_config_value('scss-deprecations', $options['scss-deprecations']);
|
||||
|
||||
// Define whether to run Behat with icon deprecation checks.
|
||||
behat_config_manager::set_behat_run_config_value('no-icon-deprecations', $options['no-icon-deprecations']);
|
||||
|
||||
// Enable test mode.
|
||||
$timestart = microtime(true);
|
||||
mtrace('Creating Behat configuration ...', '');
|
||||
|
||||
@@ -1049,6 +1049,39 @@ EOF;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Internal step definition to find deprecated icons.
|
||||
*
|
||||
* Part of behat_hooks class as is part of the testing framework, is auto-executed
|
||||
* after each step so no features will splicitly use it.
|
||||
*
|
||||
* @throws Exception Unknown type, depending on what we caught in the hook or basic \Exception.
|
||||
* @see Moodle\BehatExtension\Tester\MoodleStepTester
|
||||
*/
|
||||
public function look_for_deprecated_icons() {
|
||||
if (behat_config_manager::get_behat_run_config_value('no-icon-deprecations')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$this->running_javascript()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Look for any DOM element with deprecated icon.
|
||||
$js = <<<EOF
|
||||
[...document.querySelectorAll('.icon.deprecated')].some(
|
||||
deprecatedicon => true
|
||||
);
|
||||
EOF;
|
||||
if ($this->evaluate_script($js)) {
|
||||
throw new \Exception(html_entity_decode(
|
||||
"Deprecated icon in use. Enable \$CFG->debugdisplay for detailed debugging information in the console",
|
||||
ENT_COMPAT,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts HTML tags to line breaks to display the info in CLI
|
||||
*
|
||||
@@ -1090,6 +1123,9 @@ EOF;
|
||||
|
||||
// Look for deprecated styles.
|
||||
$this->look_for_deprecated_styles();
|
||||
|
||||
// Look for deprecated icons.
|
||||
$this->look_for_deprecated_icons();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -519,11 +519,13 @@ class behat_util extends testing_util {
|
||||
|
||||
$accessibility = empty(behat_config_manager::get_behat_run_config_value('axe')) ? 'No' : 'Yes';
|
||||
$scssdeprecations = empty(behat_config_manager::get_behat_run_config_value('scss-deprecations')) ? 'No' : 'Yes';
|
||||
$icondeprecations = empty(behat_config_manager::get_behat_run_config_value('no-icon-deprecations')) ? 'Yes' : 'No';
|
||||
|
||||
$siteinfo .= <<<EOF
|
||||
Run optional tests:
|
||||
- Accessibility: {$accessibility}
|
||||
- SCSS deprecations: {$scssdeprecations}
|
||||
- Icon deprecations: {$icondeprecations}
|
||||
|
||||
EOF;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user