1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/permissions/test/mock_permission_request.h"
#include "components/permissions/request_type.h"
namespace permissions {
MockPermissionRequest::MockPermissionRequest(RequestType request_type)
: MockPermissionRequest(GURL(kDefaultOrigin),
request_type,
PermissionRequestGestureType::UNKNOWN) {}
MockPermissionRequest::MockPermissionRequest(const GURL& requesting_origin,
RequestType request_type)
: MockPermissionRequest(requesting_origin,
request_type,
PermissionRequestGestureType::UNKNOWN) {}
MockPermissionRequest::MockPermissionRequest(
RequestType request_type,
PermissionRequestGestureType gesture_type)
: MockPermissionRequest(GURL(kDefaultOrigin), request_type, gesture_type) {}
MockPermissionRequest::MockPermissionRequest(
const GURL& requesting_origin,
RequestType request_type,
PermissionRequestGestureType gesture_type)
: PermissionRequest(
requesting_origin,
request_type,
gesture_type == PermissionRequestGestureType::GESTURE,
base::BindRepeating(&MockPermissionRequest::PermissionDecided,
base::Unretained(this)),
base::BindOnce(&MockPermissionRequest::MarkFinished,
base::Unretained(this))),
granted_(false),
cancelled_(false),
finished_(false) {}
MockPermissionRequest::MockPermissionRequest(
RequestType request_type,
bool embedded_permission_element_initiated)
: MockPermissionRequest(request_type,
embedded_permission_element_initiated
? PermissionRequestGestureType::GESTURE
: PermissionRequestGestureType::NO_GESTURE) {
SetEmbeddedPermissionElementInitiatedForTesting(
embedded_permission_element_initiated);
}
MockPermissionRequest::~MockPermissionRequest() {
// TODO(crbug.com/1110905): `PermissionRequest` enforces that
// `RequestFinished` is called before its destructor runs, but a lot of tests
// were written assuming it doesn't, so we need to call it here. Clean up
// lifetime in the tests and then remove this call to `RequestFinished`.
if (!finished_)
RequestFinished();
}
void MockPermissionRequest::PermissionDecided(ContentSetting result,
bool is_one_time,
bool is_final_decision) {
granted_ = result == CONTENT_SETTING_ALLOW;
if (result == CONTENT_SETTING_DEFAULT)
cancelled_ = true;
}
void MockPermissionRequest::MarkFinished() {
finished_ = true;
}
bool MockPermissionRequest::granted() {
return granted_;
}
bool MockPermissionRequest::cancelled() {
return cancelled_;
}
bool MockPermissionRequest::finished() {
return finished_;
}
std::unique_ptr<MockPermissionRequest>
MockPermissionRequest::CreateDuplicateRequest() const {
return std::make_unique<MockPermissionRequest>(
requesting_origin(), request_type(), GetGestureType());
}
} // namespace permissions
|