From 70b2068f3ffb2f7b280f797dad8365efd3622e27 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Sun, 3 Jul 2022 18:15:33 +0200 Subject: [PATCH] Fix first ACL test and threadbuilder --- data/aclstatebuilder_test.go | 5 +++++ data/documentstatebuilder_test.go | 26 ++++++-------------------- data/plaintextdocstate.go | 4 ++++ data/threadbuilder/threadbuilder.go | 2 +- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/data/aclstatebuilder_test.go b/data/aclstatebuilder_test.go index 9f81cc3f..ea6a6cfb 100644 --- a/data/aclstatebuilder_test.go +++ b/data/aclstatebuilder_test.go @@ -19,6 +19,7 @@ func TestACLStateBuilder_UserJoinBuild(t *testing.T) { keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], threadmodels.NewEd25519Decoder(), + NewPlainTextDocumentStateProvider(), false) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) @@ -53,6 +54,7 @@ func TestACLStateBuilder_UserRemoveBuild(t *testing.T) { keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], threadmodels.NewEd25519Decoder(), + NewPlainTextDocumentStateProvider(), false) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) @@ -83,6 +85,7 @@ func TestACLStateBuilder_UserRemoveBeforeBuild(t *testing.T) { keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], threadmodels.NewEd25519Decoder(), + NewPlainTextDocumentStateProvider(), false) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) @@ -114,6 +117,7 @@ func TestACLStateBuilder_InvalidSnapshotBuild(t *testing.T) { keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], threadmodels.NewEd25519Decoder(), + NewPlainTextDocumentStateProvider(), false) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) @@ -144,6 +148,7 @@ func TestACLStateBuilder_ValidSnapshotBuild(t *testing.T) { keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], threadmodels.NewEd25519Decoder(), + NewPlainTextDocumentStateProvider(), false) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) diff --git a/data/documentstatebuilder_test.go b/data/documentstatebuilder_test.go index e84b3805..9ca74602 100644 --- a/data/documentstatebuilder_test.go +++ b/data/documentstatebuilder_test.go @@ -17,21 +17,14 @@ func TestDocumentStateBuilder_UserJoinBuild(t *testing.T) { thread, keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], + NewPlainTextDocumentStateProvider(), threadmodels.NewEd25519Decoder()) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) } - st := ctx.DocState - allIds := make(map[string]bool) - for _, b := range st.Blocks() { - allIds[b.Id] = true - } - if err != nil { - t.Fatalf("iterate should not return error: %v", err) - } - assert.True(t, allIds["root"]) - assert.True(t, allIds["first"]) + st := ctx.DocState.(*PlainTextDocumentState) + assert.Equal(t, st.Text, "") } func TestDocumentStateBuilder_UserRemoveBuild(t *testing.T) { @@ -44,19 +37,12 @@ func TestDocumentStateBuilder_UserRemoveBuild(t *testing.T) { thread, keychain.GetIdentity("A"), keychain.EncryptionKeys["A"], + NewPlainTextDocumentStateProvider(), threadmodels.NewEd25519Decoder()) if err != nil { t.Fatalf("should build acl aclState without err: %v", err) } - st := ctx.DocState - allIds := make(map[string]bool) - for _, b := range st.Blocks() { - allIds[b.Id] = true - } - if err != nil { - t.Fatalf("iterate should not return error: %v", err) - } - assert.True(t, allIds["root"]) - assert.True(t, allIds["second"]) + st := ctx.DocState.(*PlainTextDocumentState) + assert.Equal(t, st.Text, "") } diff --git a/data/plaintextdocstate.go b/data/plaintextdocstate.go index d661d635..3913abc2 100644 --- a/data/plaintextdocstate.go +++ b/data/plaintextdocstate.go @@ -47,6 +47,10 @@ func (p *PlainTextDocumentState) applyChange(ch *pb.PlainTextChangeContent) erro type PlainTextDocumentStateProvider struct{} +func NewPlainTextDocumentStateProvider() *PlainTextDocumentStateProvider { + return &PlainTextDocumentStateProvider{} +} + func (p *PlainTextDocumentStateProvider) ProvideFromInitialChange(change []byte, id string) (DocumentState, error) { var changesData pb.PlainTextChangeData err := proto.Unmarshal(change, &changesData) diff --git a/data/threadbuilder/threadbuilder.go b/data/threadbuilder/threadbuilder.go index 5cb9ca1b..991a5ae1 100644 --- a/data/threadbuilder/threadbuilder.go +++ b/data/threadbuilder/threadbuilder.go @@ -126,7 +126,7 @@ func (t *ThreadBuilder) Parse(thread *YMLThread) { newChange.readKey = k newChange.signKey = t.keychain.SigningKeys[ch.Identity] aclChange := &pb.ACLChange{} - aclChange.Identity = ch.Identity + aclChange.Identity = t.keychain.GetIdentity(ch.Identity) if len(ch.AclChanges) > 0 || ch.AclSnapshot != nil { aclChange.AclData = &pb.ACLChangeACLData{} if ch.AclSnapshot != nil {