<?xml version="1.0"?>
<ruleset name="WP Core Media Widget">

	<rule ref="WordPress-Core" />
	<rule ref="WordPress-Docs" />
	<rule ref="WordPress-Extra" />

	<rule ref="WordPress">
		<exclude name="WordPress.XSS.EscapeOutput"/>
	</rule>

	<rule ref="WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents">
		<exclude-pattern>php/class-media-widgets-wp-cli-command.php</exclude-pattern>
	</rule>

	<!-- @todo These should not be required since the WordPress-VIP ruleset isn't being included. -->
	<rule ref="WordPress.VIP.FileSystemWritesDisallow.file_ops_file_put_contents">
		<exclude-pattern>php/class-media-widgets-wp-cli-command.php</exclude-pattern>
	</rule>
	<rule ref="WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents">
		<severity>0</severity>
	</rule>
	<rule ref="WordPress.WP.AlternativeFunctions.file_system_read_file_get_contents">
		<severity>0</severity>
	</rule>
	<rule ref="WordPress.VIP.RestrictedFunctions.file_get_contents_file_get_contents">
		<severity>0</severity>
	</rule>
	<rule ref="WordPress.VIP.RestrictedFunctions.get_intermediate_image_sizes_get_intermediate_image_sizes">
		<severity>0</severity>
	</rule>

	<!-- This can be removed as of WPCS 0.12.0. See https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/pull/883 -->
	<rule ref="WordPress.Files.FileName.InvalidClassFileName">
		<exclude-pattern>*/tests/*</exclude-pattern>
	</rule>

	<!-- @todo Remove this once the video and audio widgets are implemented. -->
	<rule ref="Squiz.PHP.CommentedOutCode.Found">
		<exclude-pattern>core-media-widgets.php</exclude-pattern>
	</rule>

	<exclude-pattern>*/dev-lib/*</exclude-pattern>
	<exclude-pattern>*/node_modules/*</exclude-pattern>
	<exclude-pattern>*/vendor/*</exclude-pattern>
</ruleset>
