fake_application_config_manager.cc 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright 2018 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 "fuchsia_web/runners/cast/fake_application_config_manager.h"
  5. #include <string>
  6. #include <utility>
  7. #include "base/logging.h"
  8. #include "fuchsia_web/runners/cast/cast_component.h"
  9. constexpr char FakeApplicationConfigManager::kFakeAgentUrl[] =
  10. "fuchsia-pkg://fuchsia.com/fake_agent#meta/fake_agent.cmx";
  11. // static
  12. chromium::cast::ApplicationConfig FakeApplicationConfigManager::CreateConfig(
  13. const std::string& id,
  14. const GURL& url) {
  15. chromium::cast::ApplicationConfig app_config;
  16. app_config.set_id(id);
  17. app_config.set_display_name("Dummy test app");
  18. app_config.set_web_url(url.spec());
  19. app_config.set_agent_url(kFakeAgentUrl);
  20. // Add a PROTECTED_MEDIA_IDENTIFIER permission. This is consistent with the
  21. // real ApplicationConfigManager.
  22. fuchsia::web::PermissionDescriptor permission;
  23. permission.set_type(fuchsia::web::PermissionType::PROTECTED_MEDIA_IDENTIFIER);
  24. app_config.mutable_permissions()->push_back(std::move(permission));
  25. return app_config;
  26. }
  27. FakeApplicationConfigManager::FakeApplicationConfigManager() = default;
  28. FakeApplicationConfigManager::~FakeApplicationConfigManager() = default;
  29. void FakeApplicationConfigManager::AddAppConfig(
  30. chromium::cast::ApplicationConfig app_config) {
  31. id_to_config_[app_config.id()] = std::move(app_config);
  32. }
  33. void FakeApplicationConfigManager::AddApp(const std::string& id,
  34. const GURL& url) {
  35. AddAppConfig(CreateConfig(id, url));
  36. }
  37. void FakeApplicationConfigManager::GetConfig(std::string id,
  38. GetConfigCallback callback) {
  39. if (id_to_config_.find(id) == id_to_config_.end()) {
  40. LOG(ERROR) << "Unknown Cast App ID: " << id;
  41. callback(chromium::cast::ApplicationConfig());
  42. return;
  43. }
  44. callback(std::move(id_to_config_[id]));
  45. id_to_config_.erase(id);
  46. }