summaryrefslogtreecommitdiffstats
path: root/3rdparty/simpletest/selector.php
blob: ba2fed312a870dcfe46096406a89915fe7a2ad05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
/**
 *  Base include file for SimpleTest.
 *  @package    SimpleTest
 *  @subpackage WebTester
 *  @version    $Id: selector.php 1786 2008-04-26 17:32:20Z pp11 $
 */

/**#@+
 * include SimpleTest files
 */
require_once(dirname(__FILE__) . '/tag.php');
require_once(dirname(__FILE__) . '/encoding.php');
/**#@-*/

/**
 *    Used to extract form elements for testing against.
 *    Searches by name attribute.
 *    @package SimpleTest
 *    @subpackage WebTester
 */
class SimpleByName {
    private $name;

    /**
     *    Stashes the name for later comparison.
     *    @param string $name     Name attribute to match.
     */
    function __construct($name) {
        $this->name = $name;
    }

    /**
     *  Accessor for name.
     *  @returns string $name       Name to match.
     */
    function getName() {
        return $this->name;
    }

    /**
     *    Compares with name attribute of widget.
     *    @param SimpleWidget $widget    Control to compare.
     *    @access public
     */
    function isMatch($widget) {
        return ($widget->getName() == $this->name);
    }
}

/**
 *    Used to extract form elements for testing against.
 *    Searches by visible label or alt text.
 *    @package SimpleTest
 *    @subpackage WebTester
 */
class SimpleByLabel {
    private $label;

    /**
     *    Stashes the name for later comparison.
     *    @param string $label     Visible text to match.
     */
    function __construct($label) {
        $this->label = $label;
    }

    /**
     *    Comparison. Compares visible text of widget or
     *    related label.
     *    @param SimpleWidget $widget    Control to compare.
     *    @access public
     */
    function isMatch($widget) {
        if (! method_exists($widget, 'isLabel')) {
            return false;
        }
        return $widget->isLabel($this->label);
    }
}

/**
 *    Used to extract form elements for testing against.
 *    Searches dy id attribute.
 *    @package SimpleTest
 *    @subpackage WebTester
 */
class SimpleById {
    private $id;

    /**
     *    Stashes the name for later comparison.
     *    @param string $id     ID atribute to match.
     */
    function __construct($id) {
        $this->id = $id;
    }

    /**
     *    Comparison. Compares id attribute of widget.
     *    @param SimpleWidget $widget    Control to compare.
     *    @access public
     */
    function isMatch($widget) {
        return $widget->isId($this->id);
    }
}

/**
 *    Used to extract form elements for testing against.
 *    Searches by visible label, name or alt text.
 *    @package SimpleTest
 *    @subpackage WebTester
 */
class SimpleByLabelOrName {
    private $label;

    /**
     *    Stashes the name/label for later comparison.
     *    @param string $label     Visible text to match.
     */
    function __construct($label) {
        $this->label = $label;
    }

    /**
     *    Comparison. Compares visible text of widget or
     *    related label or name.
     *    @param SimpleWidget $widget    Control to compare.
     *    @access public
     */
    function isMatch($widget) {
        if (method_exists($widget, 'isLabel')) {
            if ($widget->isLabel($this->label)) {
                return true;
            }
        }
        return ($widget->getName() == $this->label);
    }
}
?>