@@ -700,6 +700,40 @@ def test_listener_with_custom_listener_elements
700700 assert_equal ::Appium ::Core ::Element , c_el . first . class
701701 end
702702
703+ def test_bidi_bridge
704+ android_mock_create_session_w3c_direct = lambda do |core |
705+ response = {
706+ value : {
707+ sessionId : '1234567890' ,
708+ capabilities : {
709+ platformName : :android ,
710+ automationName : ENV [ 'APPIUM_DRIVER' ] || 'uiautomator2' ,
711+ deviceName : 'Android Emulator' ,
712+ webSocketUrl : 'ws://192.168.1.49:4723/bidi/fbed26aa-e104-42fc-9f5e-b401dc6cc2bc'
713+ }
714+ }
715+ } . to_json
716+
717+ stub_request ( :post , 'http://127.0.0.1:4723/session' )
718+ . to_return ( headers : HEADER , status : 200 , body : response )
719+
720+ driver = core . start_driver
721+
722+ assert_requested ( :post , 'http://127.0.0.1:4723/session' , times : 1 )
723+ driver
724+ end
725+
726+ capabilities = Caps . android [ :capabilities ]
727+ capabilities [ 'webSocketUrl' ] = true
728+
729+ core = ::Appium ::Core . for capabilities : capabilities
730+ driver = android_mock_create_session_w3c_direct . call ( core )
731+
732+ assert_equal driver . send ( :bridge ) . class , Appium ::Core ::Base ::BiDiBridge
733+ assert_equal driver . instance_variable_get ( :@wait_timeout ) , 30
734+ assert !driver . send ( :bridge ) . respond_to? ( :driver )
735+ end
736+
703737 def test_elements
704738 driver = android_mock_create_session
705739
0 commit comments