Security update for permissions_by_term
[yaffs-website] / vendor / instaclick / php-webdriver / lib / WebDriver / Element.php
1 <?php
2 /**
3  * Copyright 2004-2017 Facebook. All Rights Reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * @package WebDriver
18  *
19  * @author Justin Bishop <jubishop@gmail.com>
20  * @author Anthon Pang <apang@softwaredevelopment.ca>
21  * @author Fabrizio Branca <mail@fabrizio-branca.de>
22  */
23
24 namespace WebDriver;
25
26 /**
27  * WebDriver\Element class
28  *
29  * @package WebDriver
30  *
31  * @method void click() Click on an element.
32  * @method void submit() Submit a FORM element.
33  * @method string text() Returns the visible text for the element.
34  * @method void postValue($json) Send a sequence of key strokes to an element.
35  * @method string name() Query for an element's tag name.
36  * @method void clear() Clear a TEXTAREA or text INPUT element's value.
37  * @method boolean selected() Determine if an OPTION element, or an INPUT element of type checkbox or radiobutton is currently selected.
38  * @method boolean enabled() Determine if an element is currently enabled.
39  * @method string attribute($attributeName) Get the value of an element's attribute.
40  * @method boolean equals($otherId) Test if two element IDs refer to the same DOM element.
41  * @method boolean displayed() Determine if an element is currently displayed.
42  * @method array location() Determine an element's location on the page.
43  * @method array location_in_view() Determine an element's location on the screen once it has been scrolled into view.
44  * @method array size() Determine an element's size in pixels.
45  * @method string css($propertyName) Query the value of an element's computed CSS property.
46  */
47 final class Element extends Container
48 {
49     /**
50      * {@inheritdoc}
51      */
52     protected function methods()
53     {
54         return array(
55             'click' => array('POST'),
56             'submit' => array('POST'),
57             'text' => array('GET'),
58             'value' => array('POST'),
59             'name' => array('GET'),
60             'clear' => array('POST'),
61             'selected' => array('GET'),
62             'enabled' => array('GET'),
63             'attribute' => array('GET'),
64             'equals' => array('GET'),
65             'displayed' => array('GET'),
66             'location' => array('GET'),
67             'location_in_view' => array('GET'),
68             'size' => array('GET'),
69             'css' => array('GET'),
70         );
71     }
72
73     /**
74      * {@inheritdoc}
75      */
76     protected function obsoleteMethods()
77     {
78         return array(
79             'value' => array('GET'),
80             'selected' => array('POST'),
81             'toggle' => array('POST'),
82             'hover' => array('POST'),
83             'drag' => array('POST'),
84         );
85     }
86
87     /**
88      * Element ID
89      *
90      * @var string
91      */
92     private $id;
93
94     /**
95      * Constructor
96      *
97      * @param string $url URL
98      * @param string $id  element ID
99      */
100     public function __construct($url, $id)
101     {
102         parent::__construct($url);
103
104         $this->id = $id;
105     }
106
107     /**
108      * Get element ID
109      *
110      * @return string
111      */
112     public function getID()
113     {
114         return $this->id;
115     }
116
117     /**
118      * {@inheritdoc}
119      */
120     protected function getElementPath($elementId)
121     {
122         return preg_replace(sprintf('/%s$/', $this->id), $elementId, $this->url);
123     }
124 }