~ubuntu-branches/ubuntu/trusty/mediawiki/trusty-proposed

« back to all changes in this revision

Viewing changes to tests/parser/parserTestsParserHook.php

  • Committer: Package Import Robot
  • Author(s): Thorsten Glaser
  • Date: 2014-03-28 09:56:29 UTC
  • mfrom: (1.3.14)
  • Revision ID: package-import@ubuntu.com-20140328095629-1526y9tchdd507id
Tags: 1:1.19.14+dfsg-1
* New upstream security fix release (Closes: #742857):
  - (bug 62497) SECURITY: Add CSRF token on Special:ChangePassword
  - (bug 62467) Set a title for the context during import on the cli
* Use upstream-provided signing key bundle

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * A basic extension that's used by the parser tests to test whether input and
 
4
 * arguments are passed to extensions properly.
 
5
 *
 
6
 * Copyright © 2005, 2006 Ævar Arnfjörð Bjarmason
 
7
 *
 
8
 * This program is free software; you can redistribute it and/or modify
 
9
 * it under the terms of the GNU General Public License as published by
 
10
 * the Free Software Foundation; either version 2 of the License, or
 
11
 * (at your option) any later version.
 
12
 *
 
13
 * This program is distributed in the hope that it will be useful,
 
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
16
 * GNU General Public License for more details.
 
17
 *
 
18
 * You should have received a copy of the GNU General Public License along
 
19
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
20
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
21
 * http://www.gnu.org/copyleft/gpl.html
 
22
 *
 
23
 * @file
 
24
 * @ingroup Testing
 
25
 * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
 
26
 */
 
27
 
 
28
class ParserTestParserHook {
 
29
 
 
30
        static function setup( &$parser ) {
 
31
                $parser->setHook( 'tag', array( __CLASS__, 'dumpHook' ) );
 
32
                $parser->setHook( 'statictag', array( __CLASS__, 'staticTagHook' ) );
 
33
                return true;
 
34
        }
 
35
 
 
36
        static function dumpHook( $in, $argv ) {
 
37
                ob_start();
 
38
                var_dump(
 
39
                        $in,
 
40
                        $argv
 
41
                );
 
42
                $ret = ob_get_clean();
 
43
 
 
44
                return "<pre>\n$ret</pre>";
 
45
        }
 
46
 
 
47
        static function staticTagHook( $in, $argv, $parser ) {
 
48
                if ( ! count( $argv ) ) {
 
49
                        $parser->static_tag_buf = $in;
 
50
                        return '';
 
51
                } elseif ( count( $argv ) === 1 && isset( $argv['action'] )
 
52
                        && $argv['action'] === 'flush' && $in === null )
 
53
                {
 
54
                        // Clear the buffer, we probably don't need to
 
55
                        if ( isset( $parser->static_tag_buf ) ) {
 
56
                                $tmp = $parser->static_tag_buf;
 
57
                        } else {
 
58
                                $tmp = '';
 
59
                        }
 
60
                        $parser->static_tag_buf = null;
 
61
                        return $tmp;
 
62
                } else
 
63
                        // wtf?
 
64
                        return
 
65
                                "\nCall this extension as <statictag>string</statictag> or as" .
 
66
                                " <statictag action=flush/>, not in any other way.\n" .
 
67
                                "text: " . var_export( $in, true ) . "\n" .
 
68
                                "argv: " . var_export( $argv, true ) . "\n";
 
69
        }
 
70
}