request_handler_for_device_initial_enrollment_state.cc 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/policy/test_support/request_handler_for_device_initial_enrollment_state.h"
  5. #include "components/policy/core/common/cloud/cloud_policy_constants.h"
  6. #include "components/policy/proto/device_management_backend.pb.h"
  7. #include "components/policy/test_support/client_storage.h"
  8. #include "components/policy/test_support/policy_storage.h"
  9. #include "components/policy/test_support/test_server_helpers.h"
  10. #include "net/base/url_util.h"
  11. #include "net/http/http_status_code.h"
  12. #include "net/test/embedded_test_server/http_request.h"
  13. #include "net/test/embedded_test_server/http_response.h"
  14. using net::test_server::HttpRequest;
  15. using net::test_server::HttpResponse;
  16. namespace em = enterprise_management;
  17. namespace policy {
  18. RequestHandlerForDeviceInitialEnrollmentState::
  19. RequestHandlerForDeviceInitialEnrollmentState(
  20. EmbeddedPolicyTestServer* parent)
  21. : EmbeddedPolicyTestServer::RequestHandler(parent) {}
  22. RequestHandlerForDeviceInitialEnrollmentState::
  23. ~RequestHandlerForDeviceInitialEnrollmentState() = default;
  24. std::string RequestHandlerForDeviceInitialEnrollmentState::RequestType() {
  25. return dm_protocol::kValueRequestInitialEnrollmentStateRetrieval;
  26. }
  27. std::unique_ptr<HttpResponse>
  28. RequestHandlerForDeviceInitialEnrollmentState::HandleRequest(
  29. const HttpRequest& request) {
  30. em::DeviceManagementRequest device_management_request;
  31. device_management_request.ParseFromString(request.content);
  32. const em::DeviceInitialEnrollmentStateRequest& state_request =
  33. device_management_request.device_initial_enrollment_state_request();
  34. const PolicyStorage::InitialEnrollmentState* state =
  35. policy_storage()->GetInitialEnrollmentState(
  36. state_request.brand_code() + "_" + state_request.serial_number());
  37. em::DeviceManagementResponse device_management_response;
  38. em::DeviceInitialEnrollmentStateResponse* state_response =
  39. device_management_response
  40. .mutable_device_initial_enrollment_state_response();
  41. state_response->set_initial_enrollment_mode(state->initial_enrollment_mode);
  42. state_response->set_management_domain(state->management_domain);
  43. return CreateHttpResponse(net::HTTP_OK,
  44. device_management_response.SerializeAsString());
  45. }
  46. } // namespace policy