mock_permission_prompt.cc 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2015 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/permissions/test/mock_permission_prompt.h"
  5. #include "base/bind.h"
  6. #include "base/run_loop.h"
  7. #include "build/build_config.h"
  8. #include "components/permissions/permission_uma_util.h"
  9. #include "components/permissions/request_type.h"
  10. #include "components/permissions/test/mock_permission_prompt_factory.h"
  11. #include "testing/gtest/include/gtest/gtest.h"
  12. #if !BUILDFLAG(IS_ANDROID)
  13. #include "ui/gfx/vector_icon_types.h"
  14. #endif
  15. namespace permissions {
  16. MockPermissionPrompt::~MockPermissionPrompt() {
  17. if (factory_)
  18. factory_->HideView(this);
  19. }
  20. void MockPermissionPrompt::UpdateAnchor() {}
  21. PermissionPrompt::TabSwitchingBehavior
  22. MockPermissionPrompt::GetTabSwitchingBehavior() {
  23. #if BUILDFLAG(IS_ANDROID)
  24. return TabSwitchingBehavior::kKeepPromptAlive;
  25. #else
  26. return TabSwitchingBehavior::kDestroyPromptButKeepRequestPending;
  27. #endif
  28. }
  29. PermissionPromptDisposition MockPermissionPrompt::GetPromptDisposition() const {
  30. #if BUILDFLAG(IS_ANDROID)
  31. return PermissionPromptDisposition::MODAL_DIALOG;
  32. #else
  33. return PermissionPromptDisposition::ANCHORED_BUBBLE;
  34. #endif
  35. }
  36. MockPermissionPrompt::MockPermissionPrompt(MockPermissionPromptFactory* factory,
  37. Delegate* delegate)
  38. : factory_(factory), delegate_(delegate) {
  39. for (const PermissionRequest* request : delegate_->Requests()) {
  40. RequestType request_type = request->request_type();
  41. // The actual prompt will call these, so test they're sane.
  42. #if BUILDFLAG(IS_ANDROID)
  43. // For kStorageAccess, the prompt itself calculates the message text.
  44. if (request_type != permissions::RequestType::kStorageAccess)
  45. EXPECT_FALSE(request->GetDialogMessageText().empty());
  46. EXPECT_NE(0, permissions::GetIconId(request_type));
  47. #else
  48. EXPECT_FALSE(request->GetMessageTextFragment().empty());
  49. EXPECT_FALSE(permissions::GetIconId(request_type).is_empty());
  50. #endif
  51. }
  52. }
  53. } // namespace permissions