Wordpress/tests/phpunit/includes
Gary Pendergast 61abf68e6d Hooks: Add the new class WP_Hook, and modify hook handling to make use of it.
Filters and actions have been the basis of WordPress' plugin functionality since time immemorial, they've always been a reliable method for acting upon the current state of WordPress, and will continue to be so.

Over the years, however, edge cases have cropped up. Particularly when it comes to recursively executing hooks, or a hook adding and removing itself, the existing implementation struggled to keep up with more complex use cases.

And so, we introduce `WP_Hook`. By changing `$wp_filter` from an array of arrays, to an array of objects, we reduce the complexity of the hook handling code, as the processing code (see `::apply_filters()`) only needs to be aware of itself, rather than the state of all hooks. At the same time, we're able te handle more complex use cases, as the object can more easily keep track of its own state than an array ever could.

Props jbrinley for the original architecture and design of this patch.
Props SergeyBiryukov, cheeserolls, Denis-de-Bernardy, leewillis77, wonderboymusic, nacin, jorbin, DrewAPicture, ocean90, dougwollison, khag7, pento, noplanman and aaroncampbell for their testing, suggestions, contributions, patch maintenance, cajoling and patience as we got through this.
Fixes #17817.



git-svn-id: https://develop.svn.wordpress.org/trunk@38571 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-08 03:54:13 +00:00
..
factory Tests: Fix incorrect variable name from [38330]. 2016-08-23 13:48:13 +00:00
bootstrap.php OEmbed: add unit tests. @group external-oembed is not run by default. 2016-08-30 18:54:53 +00:00
class-basic-object.php Tests: Add docblocks for Basic_Object and Basic_Subclass classes. 2016-08-30 14:31:56 +00:00
class-basic-subclass.php Tests: Add docblocks for Basic_Object and Basic_Subclass classes. 2016-08-30 14:31:56 +00:00
exceptions.php Move PHPUnit tests into a tests/phpunit directory. 2013-08-29 18:39:34 +00:00
factory.php Add tests for get_bookmarks() cache. 2016-05-25 18:20:24 +00:00
functions.php Hooks: Add the new class WP_Hook, and modify hook handling to make use of it. 2016-09-08 03:54:13 +00:00
install.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:30:48 +00:00
mock-fs.php Normalize slashes in WP_Filesystem_MockFS::mkdir() and WP_Filesystem_MockFS::locate_parent_node() to avoid an infinite loop on Windows. 2013-11-18 15:32:47 +00:00
mock-image-editor.php Add tests which ensure the wp_editor_set_quality and jpeg_quality filters only apply if they are added before the corresponding WP_Image_Editor is instantiated. 2014-12-15 21:24:21 +00:00
mock-mailer.php Mail: Improve handling of UTF-8 address headers. 2016-07-13 18:03:52 +00:00
speed-trap-listener.php Unit Tests: Implement addWarning() method in SpeedTrapListener. 2015-12-04 16:40:10 +00:00
spy-rest-server.php REST API: Deliver parameters unadulterated instead of slashed. 2016-04-06 21:01:11 +00:00
testcase-ajax.php Plugins: Move capability checks further up in wp_ajax_update_plugin() and wp_ajax_delete_plugin(). 2016-07-27 17:42:01 +00:00
testcase-canonical.php Unit Tests: 2016-08-27 08:35:16 +00:00
testcase-rest-api.php REST API: Introduce baby API to the world. 2015-10-08 02:30:18 +00:00
testcase-xmlrpc.php Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389. 2016-08-31 16:30:48 +00:00
testcase.php Hooks: Add the new class WP_Hook, and modify hook handling to make use of it. 2016-09-08 03:54:13 +00:00
trac.php Don't use HTTPS in unit tests if OpenSSL isn't loaded. 2014-02-12 20:39:21 +00:00
utils.php Introduce publicly_queryable taxonomy argument. 2016-02-13 03:50:37 +00:00
wp-profiler.php Remove PHP4 constructors from Unit Tests 2015-07-08 16:04:11 +00:00