From 05af21e8dcf01b04b404da07d0e56e5774bbe1e3 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 30 Jun 2017 12:04:34 +0100 Subject: [PATCH 1/2] Check personal blog subscription when removing contact. --- .../main/java/org/briarproject/briar/blog/BlogManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java index cad04aa7e..845e69c69 100644 --- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java @@ -116,7 +116,7 @@ class BlogManagerImpl extends BdfIncomingMessageHook implements BlogManager, @Override public void removingContact(Transaction txn, Contact c) throws DbException { Blog b = blogFactory.createBlog(c.getAuthor()); - removeBlog(txn, b); + if (db.containsGroup(txn, b.getId())) removeBlog(txn, b); } @Override From 79aafcda6903a2199c46781138f7d8f050cad643 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Fri, 30 Jun 2017 12:58:44 +0100 Subject: [PATCH 2/2] Fixed a test, added a regression test. --- .../briar/blog/BlogManagerImplTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java index 3678f1aba..b3c8c7586 100644 --- a/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java @@ -157,6 +157,8 @@ public class BlogManagerImplTest extends BriarTestCase { context.checking(new Expectations() {{ oneOf(blogFactory).createBlog(blog2.getAuthor()); will(returnValue(blog2)); + oneOf(db).containsGroup(txn, blog2.getId()); + will(returnValue(true)); oneOf(identityManager).getLocalAuthor(txn); will(returnValue(blog1.getAuthor())); oneOf(db).removeGroup(txn, blog2.getGroup()); @@ -166,6 +168,25 @@ public class BlogManagerImplTest extends BriarTestCase { context.assertIsSatisfied(); } + @Test + public void testRemovingContactAfterRemovingBlog() throws DbException { + final Transaction txn = new Transaction(null, false); + + final ContactId contactId = new ContactId(0); + Contact contact = new Contact(contactId, blog2.getAuthor(), + blog1.getAuthor().getId(), true, true); + + context.checking(new Expectations() {{ + oneOf(blogFactory).createBlog(blog2.getAuthor()); + will(returnValue(blog2)); + oneOf(db).containsGroup(txn, blog2.getId()); + will(returnValue(false)); + }}); + + blogManager.removingContact(txn, contact); + context.assertIsSatisfied(); + } + @Test public void testIncomingMessage() throws DbException, FormatException { final Transaction txn = new Transaction(null, false);