From 1b647987bafcdf0297edbafa543c84caf5623201 Mon Sep 17 00:00:00 2001 From: Augustin Gottlieb <33221555+aguspe@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:39:26 +0200 Subject: [PATCH] [rb] Add RBS type support for BiDi related classes (#14611) --- rb/sig/lib/selenium/webdriver/bidi.rbs | 6 ++++- .../selenium/webdriver/bidi/log_handler.rbs | 27 +++++++++++++++++++ rb/sig/lib/selenium/webdriver/bidi/struct.rbs | 11 ++++++++ .../selenium/webdriver/remote/bidi_bridge.rbs | 17 ++++++++++++ .../lib/selenium/webdriver/remote/bridge.rbs | 2 ++ .../remote/bridge/locator_converter.rbs | 19 +++++++++++++ 6 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 rb/sig/lib/selenium/webdriver/bidi/log_handler.rbs create mode 100644 rb/sig/lib/selenium/webdriver/bidi/struct.rbs create mode 100644 rb/sig/lib/selenium/webdriver/remote/bidi_bridge.rbs create mode 100644 rb/sig/lib/selenium/webdriver/remote/bridge/locator_converter.rbs diff --git a/rb/sig/lib/selenium/webdriver/bidi.rbs b/rb/sig/lib/selenium/webdriver/bidi.rbs index 109b658bca24b..fa6b8757f6815 100644 --- a/rb/sig/lib/selenium/webdriver/bidi.rbs +++ b/rb/sig/lib/selenium/webdriver/bidi.rbs @@ -7,13 +7,17 @@ module Selenium def initialize: (url: String) -> void + def add_callback: -> Integer + def close: () -> nil def callbacks: () -> Hash[untyped, untyped] + def remove_callback: -> Array[Integer] + def session: () -> Session - def send_cmd: (untyped method, **untyped params) -> untyped + def send_cmd: (String method, **untyped params) -> untyped def error_message: (Hash[String,String] message) -> String end diff --git a/rb/sig/lib/selenium/webdriver/bidi/log_handler.rbs b/rb/sig/lib/selenium/webdriver/bidi/log_handler.rbs new file mode 100644 index 0000000000000..703729d9c74ec --- /dev/null +++ b/rb/sig/lib/selenium/webdriver/bidi/log_handler.rbs @@ -0,0 +1,27 @@ +module Selenium + module WebDriver + class BiDi + class LogHandler + @bidi: BiDi + + @log_entry_subscribed: bool + + ConsoleLogEntry: Struct + + JavaScriptLogEntry: Struct + + def initialize: (BiDi bidi) -> void + + def add_message_handler: (String type) { (untyped) -> untyped } -> Integer + + def remove_message_handler: (Integer id) -> false + + private + + def subscribe_log_entry: () -> false + + def unsubscribe_log_entry: () -> false + end + end + end +end diff --git a/rb/sig/lib/selenium/webdriver/bidi/struct.rbs b/rb/sig/lib/selenium/webdriver/bidi/struct.rbs new file mode 100644 index 0000000000000..6fb893dd7e46d --- /dev/null +++ b/rb/sig/lib/selenium/webdriver/bidi/struct.rbs @@ -0,0 +1,11 @@ +module Selenium + module WebDriver + class BiDi + class Struct < ::Struct + def self.new: (*untyped args) { (?) -> untyped } -> void + + def self.camel_to_snake: (String camel_str) -> String + end + end + end +end diff --git a/rb/sig/lib/selenium/webdriver/remote/bidi_bridge.rbs b/rb/sig/lib/selenium/webdriver/remote/bidi_bridge.rbs new file mode 100644 index 0000000000000..cbb4fc665eb09 --- /dev/null +++ b/rb/sig/lib/selenium/webdriver/remote/bidi_bridge.rbs @@ -0,0 +1,17 @@ +module Selenium + module WebDriver + module Remote + class BiDiBridge < Bridge + @bidi: untyped + + attr_reader bidi: untyped + + def create_session: (Hash[Symbol, String] capabilities) -> BiDi + + def quit: () -> nil + + def close: () -> nil + end + end + end +end diff --git a/rb/sig/lib/selenium/webdriver/remote/bridge.rbs b/rb/sig/lib/selenium/webdriver/remote/bridge.rbs index 4e06cbd61ed7e..70520fd5f3aa1 100644 --- a/rb/sig/lib/selenium/webdriver/remote/bridge.rbs +++ b/rb/sig/lib/selenium/webdriver/remote/bridge.rbs @@ -32,6 +32,8 @@ module Selenium def initialize: (url: String | URI, ?http_client: untyped?) -> void + def bidi: -> WebDriver::Error::WebDriverError + def cancel_fedcm_dialog: -> nil def click_fedcm_dialog_button: -> nil diff --git a/rb/sig/lib/selenium/webdriver/remote/bridge/locator_converter.rbs b/rb/sig/lib/selenium/webdriver/remote/bridge/locator_converter.rbs new file mode 100644 index 0000000000000..3e2b15b82b84a --- /dev/null +++ b/rb/sig/lib/selenium/webdriver/remote/bridge/locator_converter.rbs @@ -0,0 +1,19 @@ +module Selenium + module WebDriver + module Remote + class Bridge + class LocatorConverter + ESCAPE_CSS_REGEXP: Regexp + + UNICODE_CODE_POINT: Integer + + def convert: (String | Symbol how, String what) -> Array[String] + + private + + def escape_css: (String string) -> String + end + end + end + end +end