[go: nahoru, domu]

blob: 97d7c0d3455993016d838739710ce53ae78f4895 [file] [log] [blame]
Joe Antonetti6095883f2023-03-06 19:00:251// Copyright 2023 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "fake_quick_start_decoder.h"
6
Joe Antonetti4c0b6b632023-04-13 20:55:047#include "chromeos/ash/services/nearby/public/mojom/quick_start_decoder_types.mojom-forward.h"
Joe Antonettif8710c52023-05-12 16:50:438#include "chromeos/ash/services/nearby/public/mojom/quick_start_decoder_types.mojom-shared.h"
9#include "chromeos/ash/services/nearby/public/mojom/quick_start_decoder_types.mojom.h"
Joe Antonetti4c0b6b632023-04-13 20:55:0410
Joe Antonetti6095883f2023-03-06 19:00:2511namespace ash::quick_start {
12
13FakeQuickStartDecoder::~FakeQuickStartDecoder() = default;
14
15FakeQuickStartDecoder::FakeQuickStartDecoder() = default;
16
17mojo::PendingRemote<mojom::QuickStartDecoder>
18FakeQuickStartDecoder::GetRemote() {
19 mojo::PendingRemote<mojom::QuickStartDecoder> pending_remote;
20 receiver_set_.Add(this, pending_remote.InitWithNewPipeAndPassReceiver());
21 return pending_remote;
22}
Brittany Hartmire6e68a042023-05-03 21:57:4023
Curt Clemensc1ae7f32023-09-19 21:03:0524void FakeQuickStartDecoder::DecodeQuickStartMessage(
Arthur Sonzogni74f09f8a2023-12-06 19:35:2925 const std::optional<std::vector<uint8_t>>& data,
Curt Clemensc1ae7f32023-09-19 21:03:0526 DecodeQuickStartMessageCallback callback) {
Michael Hansen0381eb4b72024-05-10 21:41:2527 has_decode_been_called_ = true;
Curt Clemensedc80362023-10-24 17:35:0928 CHECK(!results_.empty());
29 auto [quick_start_message, error] = std::move(results_.front());
30 results_.pop();
Arthur Sonzogni74f09f8a2023-12-06 19:35:2931 if (error != std::nullopt) {
Curt Clemensedc80362023-10-24 17:35:0932 std::move(callback).Run(nullptr, error);
Curt Clemensc1ae7f32023-09-19 21:03:0533 } else {
Arthur Sonzogni74f09f8a2023-12-06 19:35:2934 std::move(callback).Run(std::move(quick_start_message), std::nullopt);
Curt Clemensc1ae7f32023-09-19 21:03:0535 }
36}
37
Joe Antonetti0faef6d2023-05-12 18:31:5938void FakeQuickStartDecoder::SetUserVerificationRequested(
39 bool is_awaiting_user_verification) {
Curt Clemensedc80362023-10-24 17:35:0940 SetQuickStartMessage(mojom::QuickStartMessage::NewUserVerificationRequested(
41 mojom::UserVerificationRequested::New(is_awaiting_user_verification)));
Joe Antonetti0faef6d2023-05-12 18:31:5942}
43
Curt Clemensedc80362023-10-24 17:35:0944void FakeQuickStartDecoder::SetUserVerificationMethod(
45 bool use_source_lock_screen_prompt) {
46 SetQuickStartMessage(mojom::QuickStartMessage::NewUserVerificationMethod(
47 mojom::UserVerificationMethod::New(use_source_lock_screen_prompt)));
Joe Antonettif8710c52023-05-12 16:50:4348}
49
50void FakeQuickStartDecoder::SetUserVerificationResponse(
51 mojom::UserVerificationResult result,
52 bool is_first_user_verification) {
Curt Clemensedc80362023-10-24 17:35:0953 SetQuickStartMessage(mojom::QuickStartMessage::NewUserVerificationResponse(
54 mojom::UserVerificationResponse::New(result,
55 is_first_user_verification)));
Joe Antonettif8710c52023-05-12 16:50:4356}
57
Joe Antonetti6095883f2023-03-06 19:00:2558void FakeQuickStartDecoder::SetAssertionResponse(
Joe Antonetti09e999452023-07-19 14:54:3159 mojom::FidoAssertionResponsePtr fido_assertion) {
Curt Clemensedc80362023-10-24 17:35:0960 SetQuickStartMessage(mojom::QuickStartMessage::NewFidoAssertionResponse(
61 std::move(fido_assertion)));
Joe Antonetti6095883f2023-03-06 19:00:2562}
63
Joe Antonetti4c0b6b632023-04-13 20:55:0464void FakeQuickStartDecoder::SetWifiCredentialsResponse(
Curt Clemensedc80362023-10-24 17:35:0965 mojom::WifiCredentialsPtr credentials) {
66 SetQuickStartMessage(
67 mojom::QuickStartMessage::NewWifiCredentials(std::move(credentials)));
Joe Antonetti4c0b6b632023-04-13 20:55:0468}
69
Brittany Hartmire6e68a042023-05-03 21:57:4070void FakeQuickStartDecoder::SetNotifySourceOfUpdateResponse(
Curt Clemens3873be12023-09-07 16:34:2271 mojom::NotifySourceOfUpdateResponsePtr notify_source_of_update_response) {
Curt Clemensedc80362023-10-24 17:35:0972 SetQuickStartMessage(
73 mojom::QuickStartMessage::NewNotifySourceOfUpdateResponse(
74 std::move(notify_source_of_update_response)));
Brittany Hartmire6e68a042023-05-03 21:57:4075}
76
Jennifer Serrano484f34c2023-05-22 17:22:5577void FakeQuickStartDecoder::SetBootstrapConfigurationsResponse(
Michael Hansend5f90692023-11-23 10:25:0378 const std::string& instance_id,
79 const bool is_supervised_account,
80 const std::string& email) {
Curt Clemensedc80362023-10-24 17:35:0981 SetQuickStartMessage(mojom::QuickStartMessage::NewBootstrapConfigurations(
Michael Hansend5f90692023-11-23 10:25:0382 mojom::BootstrapConfigurations::New(instance_id, is_supervised_account,
83 email)));
Jennifer Serrano484f34c2023-05-22 17:22:5584}
85
Curt Clemensc1ae7f32023-09-19 21:03:0586void FakeQuickStartDecoder::SetQuickStartMessage(
87 mojom::QuickStartMessagePtr quick_start_message) {
Arthur Sonzogni74f09f8a2023-12-06 19:35:2988 results_.emplace(std::move(quick_start_message), std::nullopt);
Curt Clemensedc80362023-10-24 17:35:0989}
90
91void FakeQuickStartDecoder::SetDecoderError(
92 mojom::QuickStartDecoderError error) {
93 results_.emplace(nullptr, error);
Curt Clemensc1ae7f32023-09-19 21:03:0594}
95
Joe Antonetti6095883f2023-03-06 19:00:2596} // namespace ash::quick_start