test method
Test Source
for syntactic and semantic correctness.
Issues present, if any, will be returned to the caller with a description,
severity, and source location. The test method may be executed with
Source
or a Ruleset
name. Passing Source
is useful for unit testing
new rules. Passing a Ruleset
name is useful for regression testing an
existing rule. The following is an example of Source
that permits users
to upload images to a bucket bearing their user id and matching the
correct metadata: Example // Users are allowed to subscribe and
unsubscribe to the blog. service firebase.storage { match
/users/{userId}/images/{imageName} { allow write: if userId ==
request.auth.uid && (imageName.matches('.png$') ||
imageName.matches('.jpg$')) && resource.mimeType.matches('^image/') } }
request
- The metadata request object.
Request parameters:
name
- Required. Tests may either provide source
or a Ruleset
resource name. For tests against source
, the resource name must refer to
the project: Format: projects/{project_id}
For tests against a
Ruleset
, this must be the Ruleset
resource name: Format:
projects/{project_id}/rulesets/{ruleset_id}
Value must have pattern ^projects/.*$
.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a TestRulesetResponse.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<TestRulesetResponse> test(
TestRulesetRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':test';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return TestRulesetResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}