mirror-chatterino2/tests/src/ChatterSet.cpp
fourtf 3fddafb867
optimize chatter list (#2814)
* optimize chatter list

* changelog

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-05-24 10:13:59 +00:00

85 lines
2.3 KiB
C++

#include "common/ChatterSet.hpp"
#include <gtest/gtest.h>
#include <QStringList>
TEST(ChatterSet, insert)
{
chatterino::ChatterSet set;
EXPECT_FALSE(set.contains("pajlada"));
EXPECT_FALSE(set.contains("Pajlada"));
set.addRecentChatter("pajlada");
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
set.addRecentChatter("pajlada");
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
set.addRecentChatter("PAJLADA");
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
}
TEST(ChatterSet, MaxSize)
{
chatterino::ChatterSet set;
EXPECT_FALSE(set.contains("pajlada"));
EXPECT_FALSE(set.contains("Pajlada"));
set.addRecentChatter("pajlada");
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
// After adding CHATTER_LIMIT-1 additional chatters, pajlada should still be in the set
for (auto i = 0; i < chatterino::ChatterSet::chatterLimit - 1; ++i)
{
set.addRecentChatter(QString("%1").arg(i));
}
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
// But adding one more chatter should bump pajlada out of the set
set.addRecentChatter("notpajlada");
EXPECT_FALSE(set.contains("pajlada"));
EXPECT_FALSE(set.contains("Pajlada"));
}
TEST(ChatterSet, MaxSizeLastUsed)
{
chatterino::ChatterSet set;
EXPECT_FALSE(set.contains("pajlada"));
EXPECT_FALSE(set.contains("Pajlada"));
set.addRecentChatter("pajlada");
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
// After adding CHATTER_LIMIT-1 additional chatters, pajlada should still be in the set
for (auto i = 0; i < chatterino::ChatterSet::chatterLimit - 1; ++i)
{
set.addRecentChatter(QString("%1").arg(i));
}
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
// Bump pajlada as a recent chatter
set.addRecentChatter("pajlada");
// After another CHATTER_LIMIT-1 additional chatters, pajlada should still be there
for (auto i = 0; i < chatterino::ChatterSet::chatterLimit - 1; ++i)
{
set.addRecentChatter(QString("new-%1").arg(i));
}
EXPECT_TRUE(set.contains("pajlada"));
EXPECT_TRUE(set.contains("Pajlada"));
}