Merge branch 'operau2f' into 'master'
Fix FIDO U2F for Opera browser (based on !10118) See merge request !12082
This commit is contained in:
commit
a87d619a1c
3 changed files with 54 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
module U2fHelper
|
||||
def inject_u2f_api?
|
||||
browser.chrome? && browser.version.to_i >= 41 && !browser.device.mobile?
|
||||
((browser.chrome? && browser.version.to_i >= 41) || (browser.opera? && browser.version.to_i >= 40)) && !browser.device.mobile?
|
||||
end
|
||||
end
|
||||
|
|
4
changelogs/unreleased/fix-u2f-for-opera.yml
Normal file
4
changelogs/unreleased/fix-u2f-for-opera.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix FIDO U2F for Opera browser
|
||||
merge_request: 12082
|
||||
author: Jakub Kramarz and Jonas Kalderstam
|
49
spec/helpers/u2f_helper_spec.rb
Normal file
49
spec/helpers/u2f_helper_spec.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe U2fHelper do
|
||||
describe 'when not on mobile' do
|
||||
it 'does not inject u2f on chrome 40' do
|
||||
device = double(mobile?: false)
|
||||
browser = double(chrome?: true, opera?: false, version: 40, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq false
|
||||
end
|
||||
|
||||
it 'injects u2f on chrome 41' do
|
||||
device = double(mobile?: false)
|
||||
browser = double(chrome?: true, opera?: false, version: 41, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq true
|
||||
end
|
||||
|
||||
it 'does not inject u2f on opera 39' do
|
||||
device = double(mobile?: false)
|
||||
browser = double(chrome?: false, opera?: true, version: 39, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq false
|
||||
end
|
||||
|
||||
it 'injects u2f on opera 40' do
|
||||
device = double(mobile?: false)
|
||||
browser = double(chrome?: false, opera?: true, version: 40, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq true
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when on mobile' do
|
||||
it 'does not inject u2f on chrome 41' do
|
||||
device = double(mobile?: true)
|
||||
browser = double(chrome?: true, opera?: false, version: 41, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq false
|
||||
end
|
||||
|
||||
it 'does not inject u2f on opera 40' do
|
||||
device = double(mobile?: true)
|
||||
browser = double(chrome?: false, opera?: true, version: 40, device: device)
|
||||
allow(helper).to receive(:browser).and_return(browser)
|
||||
expect(helper.inject_u2f_api?).to eq false
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue