mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-24 18:33:03 -07:00
[Server/Client] Unify report categories (#7345)
* [Server/Client] Unify report categories into one shared source of truth * Lont. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
a1d8ce6165
commit
eae9591a17
8 changed files with 173 additions and 20 deletions
|
|
@ -14,6 +14,7 @@ add_test(NAME server_rate_limiter_test COMMAND server_rate_limiter_test)
|
|||
add_test(NAME server_developer_role_test COMMAND server_developer_role_test)
|
||||
add_test(NAME server_game_join_test COMMAND server_game_join_test)
|
||||
add_test(NAME warning_categories_test COMMAND warning_categories_test)
|
||||
add_test(NAME report_categories_test COMMAND report_categories_test)
|
||||
add_test(NAME lag_monitor_test COMMAND lag_monitor_test)
|
||||
add_test(NAME latency_tracker_test COMMAND latency_tracker_test)
|
||||
add_test(NAME metrics_registry_test COMMAND metrics_registry_test)
|
||||
|
|
@ -37,6 +38,7 @@ add_executable(server_rate_limiter_test server_rate_limiter_test.cpp)
|
|||
add_executable(server_developer_role_test server_developer_role_test.cpp)
|
||||
add_executable(server_game_join_test server_game_join_test.cpp)
|
||||
add_executable(warning_categories_test warning_categories_test.cpp)
|
||||
add_executable(report_categories_test report_categories_test.cpp)
|
||||
add_executable(lag_monitor_test ${CMAKE_SOURCE_DIR}/cockatrice/src/client/lag_monitor.cpp lag_monitor_test.cpp)
|
||||
target_include_directories(lag_monitor_test PRIVATE ${CMAKE_SOURCE_DIR}/cockatrice/src)
|
||||
add_executable(latency_tracker_test latency_tracker_test.cpp)
|
||||
|
|
@ -91,6 +93,7 @@ if(NOT GTEST_FOUND)
|
|||
add_dependencies(server_developer_role_test gtest)
|
||||
add_dependencies(server_game_join_test gtest)
|
||||
add_dependencies(warning_categories_test gtest)
|
||||
add_dependencies(report_categories_test gtest)
|
||||
add_dependencies(lag_monitor_test gtest)
|
||||
add_dependencies(latency_tracker_test gtest)
|
||||
add_dependencies(metrics_registry_test gtest)
|
||||
|
|
@ -137,6 +140,9 @@ target_link_libraries(
|
|||
target_link_libraries(
|
||||
warning_categories_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}
|
||||
)
|
||||
target_link_libraries(
|
||||
report_categories_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}
|
||||
)
|
||||
target_link_libraries(lag_monitor_test Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES})
|
||||
target_link_libraries(
|
||||
latency_tracker_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}
|
||||
|
|
|
|||
54
tests/report_categories_test.cpp
Normal file
54
tests/report_categories_test.cpp
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#include "gtest/gtest.h"
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <libcockatrice/utility/report_categories.h>
|
||||
|
||||
TEST(ReportCategoriesTest, CanonicalListIsNonEmptyAndStable)
|
||||
{
|
||||
const QStringList categories = ReportCategories::keys();
|
||||
|
||||
ASSERT_FALSE(categories.isEmpty());
|
||||
EXPECT_EQ("cheating", categories.at(0));
|
||||
EXPECT_EQ("other", categories.last());
|
||||
}
|
||||
|
||||
TEST(ReportCategoriesTest, CanonicalListContainsMergedClientAndServerCategories)
|
||||
{
|
||||
const QStringList expected = {"cheating", "bug_abuse", "harassment", "verbal_abuse",
|
||||
"hate_speech", "spam", "other"};
|
||||
EXPECT_EQ(expected, ReportCategories::keys());
|
||||
EXPECT_EQ(7, ReportCategories::keys().size());
|
||||
}
|
||||
|
||||
TEST(ReportCategoriesTest, AllCanonicalKeysAreValid)
|
||||
{
|
||||
for (const QString &category : ReportCategories::keys()) {
|
||||
EXPECT_TRUE(ReportCategories::isValid(category)) << category.toStdString();
|
||||
}
|
||||
}
|
||||
|
||||
TEST(ReportCategoriesTest, LegacyCategoriesRemainValid)
|
||||
{
|
||||
EXPECT_TRUE(ReportCategories::isValid("bug_abuse"));
|
||||
EXPECT_TRUE(ReportCategories::isValid("verbal_abuse"));
|
||||
}
|
||||
|
||||
TEST(ReportCategoriesTest, ValidationIsCaseInsensitive)
|
||||
{
|
||||
EXPECT_TRUE(ReportCategories::isValid("Cheating"));
|
||||
EXPECT_TRUE(ReportCategories::isValid("HATE_SPEECH"));
|
||||
}
|
||||
|
||||
TEST(ReportCategoriesTest, UnknownAndEmptyCategoriesAreRejected)
|
||||
{
|
||||
EXPECT_FALSE(ReportCategories::isValid(QString()));
|
||||
EXPECT_FALSE(ReportCategories::isValid("hate speech"));
|
||||
EXPECT_FALSE(ReportCategories::isValid("griefing"));
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue