Skip to content

Commit 2fd9d1a

Browse files
committed
[rb] raise error if input device not found
1 parent 6f2b9a4 commit 2fd9d1a

5 files changed

Lines changed: 21 additions & 8 deletions

File tree

rb/lib/selenium/webdriver/common/action_builder.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def add_key_input(name)
9292
#
9393

9494
def get_device(name)
95-
@devices.find { |device| device.name == name.to_s }
95+
@devices.find { |device| device.name == name.to_s } || raise(ArgumentError, "Can not find device: #{name}")
9696
end
9797

9898
#

rb/lib/selenium/webdriver/common/interactions/key_actions.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,17 @@ def send_keys(*args, device: nil)
134134
#
135135

136136
def key_action(*args, action: nil, device: nil)
137-
key_input = get_device(device) || key_inputs.first
137+
key_input = key_input(device)
138138
click(args.shift) if args.first.is_a? Element
139139
key_input.send(action, args.last)
140140
tick(key_input)
141141
self
142142
end
143+
144+
def key_input(device = nil)
145+
device ? get_device(device) : key_inputs.first
146+
end
147+
143148
end # KeyActions
144149
end # WebDriver
145150
end # Selenium

rb/lib/selenium/webdriver/common/interactions/pointer_actions.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def pointer_up(button, device: nil)
9696
#
9797

9898
def move_to(element, right_by = nil, down_by = nil, device: nil)
99-
pointer = get_pointer(device)
99+
pointer = pointer_input(device)
100100
# New actions offset is from center of element
101101
if right_by || down_by
102102
size = element.size
@@ -134,7 +134,7 @@ def move_to(element, right_by = nil, down_by = nil, device: nil)
134134
#
135135

136136
def move_by(right_by, down_by, device: nil)
137-
pointer = get_pointer(device)
137+
pointer = pointer_input(device)
138138
pointer.create_pointer_move(duration: default_move_duration,
139139
x: Integer(right_by),
140140
y: Integer(down_by),
@@ -161,7 +161,7 @@ def move_by(right_by, down_by, device: nil)
161161
#
162162

163163
def move_to_location(x, y, device: nil)
164-
pointer = get_pointer(device)
164+
pointer = pointer_input(device)
165165
pointer.create_pointer_move(duration: default_move_duration,
166166
x: Integer(x),
167167
y: Integer(y),
@@ -349,14 +349,14 @@ def drag_and_drop_by(source, right_by, down_by, device: nil)
349349
private
350350

351351
def button_action(button, action: nil, device: nil)
352-
pointer = get_pointer(device)
352+
pointer = pointer_input(device)
353353
pointer.send(action, button)
354354
tick(pointer)
355355
self
356356
end
357357

358-
def get_pointer(device = nil)
359-
get_device(device) || pointer_inputs.first
358+
def pointer_input(device = nil)
359+
device ? get_device(device) : pointer_inputs.first
360360
end
361361
end # PointerActions
362362
end # WebDriver

rb/spec/unit/selenium/webdriver/common/interactions/key_actions_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ module WebDriver
3535
expect(builder.send(:key_input, keyboard.name)).to eq keyboard
3636
end
3737

38+
it 'raises ArgumentError if no device exists with that name' do
39+
expect { builder.send(:key_input, 'none') }.to raise_error(ArgumentError)
40+
end
41+
3842
it 'gets default key input' do
3943
expect(builder.send(:key_input)).to eq keyboard
4044
end

rb/spec/unit/selenium/webdriver/common/interactions/pointer_actions_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ module WebDriver
3636
expect(builder.send(:pointer_input, mouse.name)).to eq mouse
3737
end
3838

39+
it 'raises ArgumentError if no device exists with that name' do
40+
expect { builder.send(:pointer_input, 'none') }.to raise_error(ArgumentError)
41+
end
42+
3943
it 'gets default key input' do
4044
expect(builder.send(:pointer_input)).to eq mouse
4145
end

0 commit comments

Comments
 (0)