|
113 | 113 | end |
114 | 114 | end |
115 | 115 |
|
| 116 | + describe 'Special Features' do |
| 117 | + it 'casts' do |
| 118 | + @driver = Selenium::WebDriver.for :edge |
| 119 | + sinks = @driver.cast_sinks |
| 120 | + unless sinks.empty? |
| 121 | + device_name = sinks.first['name'] |
| 122 | + @driver.start_cast_tab_mirroring(device_name) |
| 123 | + expect { @driver.stop_casting(device_name) }.not_to raise_exception |
| 124 | + end |
| 125 | + end |
| 126 | + |
| 127 | + it 'gets and sets network conditions' do |
| 128 | + @driver = Selenium::WebDriver.for :edge |
| 129 | + @driver.network_conditions = {offline: false, latency: 100, throughput: 200} |
| 130 | + expect(@driver.network_conditions).to eq( |
| 131 | + 'offline' => false, |
| 132 | + 'latency' => 100, |
| 133 | + 'download_throughput' => 200, |
| 134 | + 'upload_throughput' => 200) |
| 135 | + end |
| 136 | + |
| 137 | + it 'gets the browser logs' do |
| 138 | + @driver = Selenium::WebDriver.for :edge |
| 139 | + @driver.navigate.to 'https://www.selenium.dev/selenium/web/' |
| 140 | + sleep 1 |
| 141 | + logs = @driver.logs.get(:browser) |
| 142 | + |
| 143 | + expect(logs.first.message).to include 'Failed to load resource' |
| 144 | + end |
| 145 | + |
| 146 | + it 'sets permissions' do |
| 147 | + @driver = Selenium::WebDriver.for :edge |
| 148 | + @driver.navigate.to 'https://www.selenium.dev/selenium/web/' |
| 149 | + @driver.add_permission('camera', 'denied') |
| 150 | + @driver.add_permissions('clipboard-read' => 'denied', 'clipboard-write' => 'prompt') |
| 151 | + expect(permission('camera')).to eq('denied') |
| 152 | + expect(permission('clipboard-read')).to eq('denied') |
| 153 | + expect(permission('clipboard-write')).to eq('prompt') |
| 154 | + end |
| 155 | + end |
| 156 | + |
116 | 157 | def driver_finder |
117 | 158 | options = Selenium::WebDriver::Options.edge(browser_version: 'stable') |
118 | 159 | service = Selenium::WebDriver::Service.edge |
119 | 160 | finder = Selenium::WebDriver::DriverFinder.new(options, service) |
120 | 161 | ENV['EDGEDRIVER_BIN'] = finder.driver_path |
121 | 162 | ENV['EDGE_BIN'] = finder.browser_path |
122 | 163 | end |
| 164 | + |
| 165 | + def permission(name) |
| 166 | + @driver.execute_async_script('callback = arguments[arguments.length - 1];' \ |
| 167 | + 'callback(navigator.permissions.query({name: arguments[0]}));', name)['state'] |
| 168 | + end |
123 | 169 | end |
0 commit comments