diff --git a/lib/capybara/cuprite/node.rb b/lib/capybara/cuprite/node.rb index d4f12395..45dc7cc6 100644 --- a/lib/capybara/cuprite/node.rb +++ b/lib/capybara/cuprite/node.rb @@ -103,6 +103,8 @@ def set(value, options = {}) command(:select_file, files) when "color" node.evaluate("this.setAttribute('value', '#{value}')") + when "time" + command(:set, value.is_a?(String) ? Time.parse(value).to_s : value.to_s) else command(:set, value.to_s) end diff --git a/spec/features/driver_spec.rb b/spec/features/driver_spec.rb index 4896324c..734ba240 100644 --- a/spec/features/driver_spec.rb +++ b/spec/features/driver_spec.rb @@ -1537,6 +1537,34 @@ def create_screenshot(file, *args) end end + context "time_fields" do + before { @session.visit("/cuprite/time_fields") } + + it "sets a time with HH:MM format" do + input = @session.find(:css, "#time_field") + input.set("10:00") + expect(input.value).to eq("10:00:00") + end + + it "sets a time with HH:MM:SS format" do + input = @session.find(:css, "#time_field") + input.set("14:30:45") + expect(input.value).to eq("14:30:45") + end + + it "sets a time from a Time object" do + input = @session.find(:css, "#time_field") + time = Time.parse("10:30:00") + input.set(time) + expect(input.value).to match(/10:30:0?0/) + end + + it "fills in a time field with a time string" do + @session.fill_in "time_field", with: "09:15" + expect(@session.find(:css, "#time_field").value).to eq("09:15:00") + end + end + context "evaluate_script" do it "can return an element" do @session.visit("/cuprite/send_keys") diff --git a/spec/support/views/time_fields.erb b/spec/support/views/time_fields.erb new file mode 100644 index 00000000..b1ea46d6 --- /dev/null +++ b/spec/support/views/time_fields.erb @@ -0,0 +1,9 @@ + +
+ + + + + + +