diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-25 08:50:43 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-25 08:50:43 +0000 |
commit | 4cf077594f856dc4b2fb6a9173a7a72c52c5cdca (patch) | |
tree | 69704f4fc92ba660c19342b83434dd745591aaa2 /fnet | |
parent | 216316446052bad491f74922f90254f33820aba3 (diff) |
Explicitly test that requiring an empty capability set is a no-op
This should always work (tm), so adding a test that shows that it does.
Mostly useful for RPCs that are always configured to use a request filter
but where the actual capability set is optionally set and defaults to empty.
Diffstat (limited to 'fnet')
-rw-r--r-- | fnet/src/tests/frt/rpc/invoke.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fnet/src/tests/frt/rpc/invoke.cpp b/fnet/src/tests/frt/rpc/invoke.cpp index 764b3fb4a05..e69513aa980 100644 --- a/fnet/src/tests/frt/rpc/invoke.cpp +++ b/fnet/src/tests/frt/rpc/invoke.cpp @@ -231,6 +231,9 @@ public: rb.DefineMethod("capabilityAllowed", "", "", FRT_METHOD(TestRPC::RPC_AccessRestricted), this); rb.RequestAccessFilter(FRT_RequireCapabilities::of(CapabilitySet::telemetry())); + rb.DefineMethod("emptyCapabilitySet", "", "", + FRT_METHOD(TestRPC::RPC_AccessRestricted), this); + rb.RequestAccessFilter(FRT_RequireCapabilities::of(CapabilitySet::make_empty())); } void RPC_Test(FRT_RPCRequest *req) @@ -504,6 +507,13 @@ TEST_F("access is allowed by capability filter when peer is granted the required EXPECT_TRUE(f1.server_instance().restricted_method_was_invoked()); } +TEST_F("access is allowed by capability filter when required capability set is empty", Fixture()) { + MyReq req("emptyCapabilitySet"); + f1.target().InvokeSync(req.borrow(), timeout); + ASSERT_FALSE(req.get().IsError()); + EXPECT_TRUE(f1.server_instance().restricted_method_was_invoked()); +} + TEST_MAIN() { crypto = my_crypto_engine(); TEST_RUN_ALL(); |