mock_permission_request.cc 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2014 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_request.h"
  5. #include "components/permissions/request_type.h"
  6. namespace permissions {
  7. MockPermissionRequest::MockPermissionRequest(RequestType request_type)
  8. : MockPermissionRequest(GURL(kDefaultOrigin),
  9. request_type,
  10. PermissionRequestGestureType::UNKNOWN) {}
  11. MockPermissionRequest::MockPermissionRequest(const GURL& requesting_origin,
  12. RequestType request_type)
  13. : MockPermissionRequest(requesting_origin,
  14. request_type,
  15. PermissionRequestGestureType::UNKNOWN) {}
  16. MockPermissionRequest::MockPermissionRequest(
  17. RequestType request_type,
  18. PermissionRequestGestureType gesture_type)
  19. : MockPermissionRequest(GURL(kDefaultOrigin), request_type, gesture_type) {}
  20. MockPermissionRequest::MockPermissionRequest(
  21. const GURL& requesting_origin,
  22. RequestType request_type,
  23. PermissionRequestGestureType gesture_type)
  24. : PermissionRequest(
  25. requesting_origin,
  26. request_type,
  27. gesture_type == PermissionRequestGestureType::GESTURE,
  28. base::BindOnce(&MockPermissionRequest::PermissionDecided,
  29. base::Unretained(this)),
  30. base::BindOnce(&MockPermissionRequest::MarkFinished,
  31. base::Unretained(this))),
  32. granted_(false),
  33. cancelled_(false),
  34. finished_(false) {}
  35. MockPermissionRequest::~MockPermissionRequest() {
  36. // TODO(crbug.com/1110905): `PermissionRequest` enforces that
  37. // `RequestFinished` is called before its destructor runs, but a lot of tests
  38. // were written assuming it doesn't, so we need to call it here. Clean up
  39. // lifetime in the tests and then remove this call to `RequestFinished`.
  40. if (!finished_)
  41. RequestFinished();
  42. }
  43. void MockPermissionRequest::PermissionDecided(ContentSetting result,
  44. bool is_one_time) {
  45. granted_ = result == CONTENT_SETTING_ALLOW;
  46. if (result == CONTENT_SETTING_DEFAULT)
  47. cancelled_ = true;
  48. }
  49. void MockPermissionRequest::MarkFinished() {
  50. finished_ = true;
  51. }
  52. bool MockPermissionRequest::granted() {
  53. return granted_;
  54. }
  55. bool MockPermissionRequest::cancelled() {
  56. return cancelled_;
  57. }
  58. bool MockPermissionRequest::finished() {
  59. return finished_;
  60. }
  61. std::unique_ptr<MockPermissionRequest>
  62. MockPermissionRequest::CreateDuplicateRequest() const {
  63. return std::make_unique<MockPermissionRequest>(
  64. requesting_origin(), request_type(), GetGestureType());
  65. }
  66. } // namespace permissions