diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 5d2824507bfc45dd96665d526554c2d5b5df7010..51e1fc0f8da5bab52bc5086a7784112a46b3c4ed 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 fa0cd4b9685ca3b0492d9bae8df206b4764ba8a2..83193187d9578f97490c59cc644342b733944ea9 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 f32510f6c82405c6382073e985deaf894cf71988..4ea98736db8bc107d020cd4da449f8368207202c 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 */