Make WordPress Core

Changeset 24 in tests


Ignore:
Timestamp:
09/22/2007 07:01:36 AM (19 years ago)
Author:
tellyworth
Message:

add simple do_action tests

Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • wp-testlib/utils.php

    r21 r24  
    1616
    1717        return trim(join("\n", $result));
     18}
     19
     20// helper class for testing code that involves actions and filters
     21// typical use:
     22// $ma = new MockAction();
     23// add_action('foo', array(&$ma, 'action'));
     24class MockAction {
     25        var $events;
     26
     27        function MockAction() {
     28                $this->reset();
     29        }
     30
     31        function reset() {
     32                $this->events = array();
     33        }
     34
     35        function action() {
     36                global $wp_actions;
     37
     38                $args = func_get_args();
     39                $current_action = $wp_actions[count($wp_actions)-1];
     40                $this->events[] = array('tag'=>$current_action, 'args'=>$args);
     41        }
     42
     43        // return a count of the number of times the action was called since the last reset
     44        function get_call_count($tag='') {
     45                if ($hook) {
     46                        $count = 0;
     47                        foreach ($this->events as $e)
     48                                if ($e['action'] == $hook)
     49                                        ++$count;
     50                        return $count;
     51                }
     52                return count($this->events);
     53        }
     54
     55        // return an array of the tags that triggered calls to this action
     56        function get_tags() {
     57                $out = array();
     58                foreach ($this->events as $e)
     59                        $out[] = $e['tag'];
     60                return $out;
     61        }
     62
     63        // return an array of args passed in calls to this action
     64        function get_args() {
     65                $out = array();
     66                foreach ($this->events as $e)
     67                        $out[] = $e['args'];
     68                return $out;
     69        }
    1870}
    1971
Note: See TracChangeset for help on using the changeset viewer.