File Coverage

blib/lib/Selenium/Client/WDKeys.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Selenium::Client::WDKeys;
2             $Selenium::Client::WDKeys::VERSION = '2.01';
3             # ABSTRACT: Representation of keystrokes used by Selenium::Client::Driver
4              
5              
6 2     2   255146 use strict;
  2         4  
  2         85  
7 2     2   12 use warnings;
  2         3  
  2         137  
8              
9 2     2   12 use base 'Exporter';
  2         5  
  2         1154  
10              
11             # http://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value
12 2         342 use constant KEYS => {
13             'null' => "\N{U+E000}",
14             'cancel' => "\N{U+E001}",
15             'help' => "\N{U+E002}",
16             'backspace' => "\N{U+E003}",
17             'tab' => "\N{U+E004}",
18             'clear' => "\N{U+E005}",
19             'return' => "\N{U+E006}",
20             'enter' => "\N{U+E007}",
21             'shift' => "\N{U+E008}",
22             'control' => "\N{U+E009}",
23             'alt' => "\N{U+E00A}",
24             'pause' => "\N{U+E00B}",
25             'escape' => "\N{U+E00C}",
26             'space' => "\N{U+E00D}",
27             'page_up' => "\N{U+E00E}",
28             'page_down' => "\N{U+E00f}",
29             'end' => "\N{U+E010}",
30             'home' => "\N{U+E011}",
31             'left_arrow' => "\N{U+E012}",
32             'up_arrow' => "\N{U+E013}",
33             'right_arrow' => "\N{U+E014}",
34             'down_arrow' => "\N{U+E015}",
35             'insert' => "\N{U+E016}",
36             'delete' => "\N{U+E017}",
37             'semicolon' => "\N{U+E018}",
38             'equals' => "\N{U+E019}",
39             'numpad_0' => "\N{U+E01A}",
40             'numpad_1' => "\N{U+E01B}",
41             'numpad_2' => "\N{U+E01C}",
42             'numpad_3' => "\N{U+E01D}",
43             'numpad_4' => "\N{U+E01E}",
44             'numpad_5' => "\N{U+E01f}",
45             'numpad_6' => "\N{U+E020}",
46             'numpad_7' => "\N{U+E021}",
47             'numpad_8' => "\N{U+E022}",
48             'numpad_9' => "\N{U+E023}",
49             'multiply' => "\N{U+E024}",
50             'add' => "\N{U+E025}",
51             'separator' => "\N{U+E026}",
52             'subtract' => "\N{U+E027}",
53             'decimal' => "\N{U+E028}",
54             'divide' => "\N{U+E029}",
55             'f1' => "\N{U+E031}",
56             'f2' => "\N{U+E032}",
57             'f3' => "\N{U+E033}",
58             'f4' => "\N{U+E034}",
59             'f5' => "\N{U+E035}",
60             'f6' => "\N{U+E036}",
61             'f7' => "\N{U+E037}",
62             'f8' => "\N{U+E038}",
63             'f9' => "\N{U+E039}",
64             'f10' => "\N{U+E03A}",
65             'f11' => "\N{U+E03B}",
66             'f12' => "\N{U+E03C}",
67             'command_meta' => "\N{U+E03D}",
68             'ZenkakuHankaku' => "\N{U+E040}", #Asian language keys, maybe altGr too?
69             #There are other code points for say, left versus right meta/shift/alt etc, but I don't seriously believe anyone uses that level of sophistication on the web yet.
70 2     2   18 };
  2         5  
71              
72             our @EXPORT = ('KEYS');
73              
74             1;
75              
76             __END__
77              
78             =pod
79              
80             =encoding UTF-8
81              
82             =head1 NAME
83              
84             Selenium::Client::WDKeys - Representation of keystrokes used by Selenium::Client::Driver
85              
86             =head1 VERSION
87              
88             version 2.01
89              
90             =head1 SYNOPSIS
91              
92             use Selenium::Client::WDKeys;
93              
94             my $space_key = KEYS->{'space'};
95             my $enter_key = KEYS->{'enter'};
96              
97             =head1 DESCRIPTION
98              
99             The constant KEYS is defined here.
100              
101             =head1 CONSTANT KEYS
102              
103             null
104             cancel
105             help
106             backspace
107             tab
108             clear
109             return
110             enter
111             shift
112             control
113             alt
114             pause
115             escape
116             space
117             page_up
118             page_down
119             end
120             home
121             left_arrow
122             up_arrow
123             right_arrow
124             down_arrow
125             insert
126             delete
127             semicolon
128             equals
129             numpad_0
130             numpad_1
131             numpad_2
132             numpad_3
133             numpad_4
134             numpad_5
135             numpad_6
136             numpad_7
137             numpad_8
138             numpad_9
139             multiply
140             add
141             separator
142             subtract
143             decimal
144             divide
145             f1
146             f2
147             f3
148             f4
149             f5
150             f6
151             f7
152             f8
153             f9
154             f10
155             f11
156             f12
157             command_meta
158             ZenkakuHankaku
159              
160             =head1 FUNCTIONS
161              
162             Functions of Selenium::Remote::WDKeys.
163              
164             =head2 KEYS
165              
166             my $keys = KEYS();
167              
168             A hash reference that contains constant keys. This function is exported by default.
169              
170             =head1 SEE ALSO
171              
172             Please see those modules/websites for more information related to this module.
173              
174             =over 4
175              
176             =item *
177              
178             L<Selenium::Client|Selenium::Client>
179              
180             =back
181              
182             =head1 BUGS
183              
184             Please report any bugs or feature requests on the bugtracker website
185             L<https://github.com/troglodyne-internet-widgets/selenium-client-perl/issues>
186              
187             When submitting a bug or request, please include a test-file or a
188             patch to an existing test-file that illustrates the bug or desired
189             feature.
190              
191             =head1 AUTHORS
192              
193             Current Maintainers:
194              
195             =over 4
196              
197             =item *
198              
199             George S. Baugh <george@troglodyne.net>
200              
201             =back
202              
203             =head1 COPYRIGHT AND LICENSE
204              
205             Copyright (c) 2024 Troglodyne LLC
206              
207              
208             Permission is hereby granted, free of charge, to any person obtaining a copy
209             of this software and associated documentation files (the "Software"), to deal
210             in the Software without restriction, including without limitation the rights
211             to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
212             copies of the Software, and to permit persons to whom the Software is
213             furnished to do so, subject to the following conditions:
214             The above copyright notice and this permission notice shall be included in all
215             copies or substantial portions of the Software.
216             THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
217             IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
218             FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
219             AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
220             LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
221             OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
222             SOFTWARE.
223              
224             =cut