diff --git a/pkg/services/object/acl/acl_test.go b/pkg/services/object/acl/acl_test.go new file mode 100644 index 000000000..468fbccdb --- /dev/null +++ b/pkg/services/object/acl/acl_test.go @@ -0,0 +1,36 @@ +package acl + +import ( + "testing" + + "github.com/nspcc-dev/neofs-api-go/v2/acl" + acltest "github.com/nspcc-dev/neofs-api-go/v2/acl/test" + "github.com/nspcc-dev/neofs-api-go/v2/session" + sessiontest "github.com/nspcc-dev/neofs-api-go/v2/session/test" + "github.com/stretchr/testify/require" +) + +func TestOriginalTokens(t *testing.T) { + sToken := sessiontest.GenerateSessionToken(false) + bToken := acltest.GenerateBearerToken(false) + + for i := 0; i < 10; i++ { + metaHeaders := testGenerateMetaHeader(uint32(i), bToken, sToken) + require.Equal(t, sToken, originalSessionToken(metaHeaders), i) + require.Equal(t, bToken, originalBearerToken(metaHeaders), i) + } +} + +func testGenerateMetaHeader(depth uint32, b *acl.BearerToken, s *session.SessionToken) *session.RequestMetaHeader { + metaHeader := new(session.RequestMetaHeader) + metaHeader.SetBearerToken(b) + metaHeader.SetSessionToken(s) + + for i := uint32(0); i < depth; i++ { + link := metaHeader + metaHeader = new(session.RequestMetaHeader) + metaHeader.SetOrigin(link) + } + + return metaHeader +}