From cae98b7d7d6af57fa19122fde865dbae9223b213 Mon Sep 17 00:00:00 2001 From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com> Date: Thu, 3 May 2018 17:31:31 -0400 Subject: [PATCH] invitations: do not count banned contacts Exclude banned contacts from total number of pending invitations. Change-Id: I62a58de8b499719e5c9dd31f1df84c57ed2c023b Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com> --- src/contactmodel.cpp | 3 ++- test/contactmodeltester.cpp | 11 +++++++++++ test/contactmodeltester.h | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 5d282450..51e1fc0f 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -181,7 +181,8 @@ ContactModel::pendingRequestCount() const int pendingRequestCount = 0; auto i = std::for_each(pimpl_->contacts.begin(), pimpl_->contacts.end(), [&pendingRequestCount] (const auto& c) { - pendingRequestCount += static_cast<int>(c.second.profileInfo.type == profile::Type::PENDING); + if (!c.second.isBanned) + pendingRequestCount += static_cast<int>(c.second.profileInfo.type == profile::Type::PENDING); }); return pendingRequestCount; } diff --git a/test/contactmodeltester.cpp b/test/contactmodeltester.cpp index fa0cd4b9..83193187 100644 --- a/test/contactmodeltester.cpp +++ b/test/contactmodeltester.cpp @@ -237,6 +237,17 @@ ContactModelTester::testCountPendingRequests() CPPUNIT_ASSERT_EQUAL(accInfo_.contactModel->pendingRequestCount(), 1); } +void +ContactModelTester::testCountPendingRequestsWithBlockedContact() +{ + CPPUNIT_ASSERT(accInfo_.contactModel->hasPendingRequests()); + CPPUNIT_ASSERT_EQUAL(accInfo_.contactModel->pendingRequestCount(), 1); + CPPUNIT_ASSERT_NO_THROW(accInfo_.contactModel->getContact("pending0")); + accInfo_.contactModel->removeContact("pending0", true); + CPPUNIT_ASSERT(!accInfo_.contactModel->hasPendingRequests()); + CPPUNIT_ASSERT_EQUAL(accInfo_.contactModel->pendingRequestCount(), 0); +} + void ContactModelTester::tearDown() { diff --git a/test/contactmodeltester.h b/test/contactmodeltester.h index f32510f6..4ea98736 100644 --- a/test/contactmodeltester.h +++ b/test/contactmodeltester.h @@ -112,6 +112,10 @@ public: * Count contact requests */ void testCountPendingRequests(); + /** + * Count contact requests when banned contacts exists + */ + void testCountPendingRequestsWithBlockedContact(); /** * Method automatically called after each test by CppUnit */ -- GitLab