| 21 | require 'selenium/devtools' |
| 22 | |
| 23 | module Selenium |
| 24 | describe DevTools do |
| 25 | describe '.load_version' do |
| 26 | let(:current_version) { Gem::Version.new(Selenium::DevTools::VERSION).segments[1] } |
| 27 | |
| 28 | around do |example| |
| 29 | described_class.version = version |
| 30 | example.call |
| 31 | ensure |
| 32 | described_class.version = nil |
| 33 | end |
| 34 | |
| 35 | context 'when the version is too high' do |
| 36 | let(:version) { current_version + 1 } |
| 37 | |
| 38 | it 'can fall back to an older devtools if necessary' do |
| 39 | msg1 = /Could not load selenium-devtools v#{version}. Trying older versions/ |
| 40 | msg2 = /Using selenium-devtools version v#{current_version}, some features may not work as expected/ |
| 41 | expect { described_class.load_version }.to output(match(msg1).and(match(msg2))).to_stderr_from_any_process |
| 42 | end |
| 43 | end |
| 44 | end |
| 45 | end # DevTools |
| 46 | end # Selenium |