Skip to content

Commit

Permalink
Add Enqueued Resources check
Browse files Browse the repository at this point in the history
  • Loading branch information
ernilambar committed Jan 5, 2024
1 parent 0e2a2ed commit dddb163
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 0 deletions.
49 changes: 49 additions & 0 deletions includes/Checker/Checks/Enqueued_Resources_Check.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php
/**
* Class WordPress\Plugin_Check\Checker\Checks\Enqueued_Resources_Check
*
* @package plugin-check
*/

namespace WordPress\Plugin_Check\Checker\Checks;

use WordPress\Plugin_Check\Checker\Check_Categories;
use WordPress\Plugin_Check\Traits\Stable_Check;

/**
* Check for running WordPress enqueued resources sniffs.
*
* @since n.e.x.t
*/
class Enqueued_Resources_Check extends Abstract_PHP_CodeSniffer_Check {

use Stable_Check;

/**
* Gets the categories for the check.
*
* Every check must have at least one category.
*
* @since n.e.x.t
*
* @return array The categories for the check.
*/
public function get_categories() {
return array( Check_Categories::CATEGORY_PERFORMANCE );

Check warning on line 32 in includes/Checker/Checks/Enqueued_Resources_Check.php

View check run for this annotation

Codecov / codecov/patch

includes/Checker/Checks/Enqueued_Resources_Check.php#L31-L32

Added lines #L31 - L32 were not covered by tests
}

/**
* Returns an associative array of arguments to pass to PHPCS.
*
* @since n.e.x.t
*
* @return array An associative array of PHPCS CLI arguments.
*/
protected function get_args() {
return array(
'extensions' => 'php',
'standard' => 'WordPress',
'sniffs' => 'WordPress.WP.EnqueuedResources',
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php
/**
* Plugin Name: Test Plugin Enqueued Resources check with errors
* Plugin URI: https://github.com/wordpress/plugin-check
* Description: Test plugin for the Enqueued Resources check.
* Requires at least: 6.0
* Requires PHP: 5.6
* Version: 1.0.0
* Author: WordPress Performance Team
* Author URI: https://make.wordpress.org/performance/
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* Text Domain: test-plugin-enqueued-resources-with-errors
*
* @package test-plugin-enqueued-resources-with-errors
*/

?>
<link rel="stylesheet" href="http://someurl/somefile.css">
<script src="http://someurl/somefile.js"></script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php
/**
* Plugin Name: Test Plugin Enqueued Resources check without errors
* Plugin URI: https://github.com/wordpress/plugin-check
* Description: Test plugin for the Enqueued Resources check.
* Requires at least: 6.0
* Requires PHP: 5.6
* Version: 1.0.0
* Author: WordPress Performance Team
* Author URI: https://make.wordpress.org/performance/
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* Text Domain: test-plugin-enqueued-resources-without-errors
*
* @package test-plugin-enqueued-resources-without-errors
*/

add_action(
'wp_enqueue_scripts',
function() {
wp_enqueue_script(
'plugin_check_script',
'http://someurl/somefile.js'
);
wp_enqueue_style(
'plugin_check_style',
'http://someurl/somefile.css'
);
}
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php
/**
* Tests for the Enqueued_Resources_Check class.
*
* @package plugin-check
*/

use WordPress\Plugin_Check\Checker\Check_Context;
use WordPress\Plugin_Check\Checker\Check_Result;
use WordPress\Plugin_Check\Checker\Checks\Enqueued_Resources_Check;

class Enqueued_Resources_Check_Tests extends WP_UnitTestCase {

public function test_run_with_errors() {
$check = new Enqueued_Resources_Check();
$check_context = new Check_Context( UNIT_TESTS_PLUGIN_DIR . 'test-plugin-enqueued-resources-with-errors/load.php' );
$check_result = new Check_Result( $check_context );

$check->run( $check_result );

$errors = $check_result->get_errors();

$this->assertNotEmpty( $errors );
$this->assertArrayHasKey( 'load.php', $errors );
$this->assertEquals( 2, $check_result->get_error_count() );
}

public function test_run_without_errors() {
$check = new Enqueued_Resources_Check();
$check_context = new Check_Context( UNIT_TESTS_PLUGIN_DIR . 'test-plugin-enqueued-resources-without-errors/load.php' );
$check_result = new Check_Result( $check_context );

$check->run( $check_result );

$errors = $check_result->get_errors();

$this->assertEmpty( $errors );
$this->assertEquals( 0, $check_result->get_error_count() );
}
}

0 comments on commit dddb163

Please sign in to comment.