37 lines
913 B
Ruby
37 lines
913 B
Ruby
|
class FakeU2fDevice
|
||
|
def initialize(page)
|
||
|
@page = page
|
||
|
end
|
||
|
|
||
|
def respond_to_u2f_registration
|
||
|
app_id = @page.evaluate_script('gon.u2f.app_id')
|
||
|
challenges = @page.evaluate_script('gon.u2f.challenges')
|
||
|
|
||
|
json_response = u2f_device(app_id).register_response(challenges[0])
|
||
|
|
||
|
@page.execute_script("
|
||
|
u2f.register = function(appId, registerRequests, signRequests, callback) {
|
||
|
callback(#{json_response});
|
||
|
};
|
||
|
")
|
||
|
end
|
||
|
|
||
|
def respond_to_u2f_authentication
|
||
|
app_id = @page.evaluate_script('gon.u2f.app_id')
|
||
|
challenges = @page.evaluate_script('gon.u2f.challenges')
|
||
|
json_response = u2f_device(app_id).sign_response(challenges[0])
|
||
|
|
||
|
@page.execute_script("
|
||
|
u2f.sign = function(appId, challenges, signRequests, callback) {
|
||
|
callback(#{json_response});
|
||
|
};
|
||
|
")
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def u2f_device(app_id)
|
||
|
@u2f_device ||= U2F::FakeU2F.new(app_id)
|
||
|
end
|
||
|
end
|