From 8ceb1001775cc57b695424cc74b51bf30e946438 Mon Sep 17 00:00:00 2001 From: pajlada Date: Sun, 18 Jul 2021 12:14:01 +0200 Subject: [PATCH] Add tests for `getEmoteSetBatches` (#3036) --- src/providers/twitch/TwitchAccount.cpp | 5 +- src/providers/twitch/TwitchAccount.hpp | 2 + tests/CMakeLists.txt | 1 + tests/src/TwitchAccount.cpp | 157 +++++++++++++++++++++++++ 4 files changed, 161 insertions(+), 4 deletions(-) create mode 100644 tests/src/TwitchAccount.cpp diff --git a/src/providers/twitch/TwitchAccount.cpp b/src/providers/twitch/TwitchAccount.cpp index af8627a65..416d5ba61 100644 --- a/src/providers/twitch/TwitchAccount.cpp +++ b/src/providers/twitch/TwitchAccount.cpp @@ -21,7 +21,7 @@ #include "util/QStringHash.hpp" #include "util/RapidjsonHelpers.hpp" -namespace { +namespace chatterino { std::vector getEmoteSetBatches(QStringList emoteSetKeys) { @@ -48,9 +48,6 @@ std::vector getEmoteSetBatches(QStringList emoteSetKeys) return batches; } -} // namespace - -namespace chatterino { TwitchAccount::TwitchAccount(const QString &username, const QString &oauthToken, const QString &oauthClient, const QString &userID) : Account(ProviderId::Twitch) diff --git a/src/providers/twitch/TwitchAccount.hpp b/src/providers/twitch/TwitchAccount.hpp index 4c203dad6..af56afaf1 100644 --- a/src/providers/twitch/TwitchAccount.hpp +++ b/src/providers/twitch/TwitchAccount.hpp @@ -51,6 +51,8 @@ struct TwitchEmoteSetResolverResponse { } }; +std::vector getEmoteSetBatches(QStringList emoteSetKeys); + class TwitchAccount : public Account { public: diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 52e8560f7..1736e89dc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -9,6 +9,7 @@ set(test_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/HighlightPhrase.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Emojis.cpp ${CMAKE_CURRENT_LIST_DIR}/src/ExponentialBackoff.cpp + ${CMAKE_CURRENT_LIST_DIR}/src/TwitchAccount.cpp ) add_executable(${PROJECT_NAME} ${test_SOURCES}) diff --git a/tests/src/TwitchAccount.cpp b/tests/src/TwitchAccount.cpp new file mode 100644 index 000000000..bb7e400fa --- /dev/null +++ b/tests/src/TwitchAccount.cpp @@ -0,0 +1,157 @@ +#include "providers/twitch/TwitchAccount.hpp" + +#include + +using namespace chatterino; + +TEST(TwitchAccount, BatchTwoParts) +{ + QStringList bigList{ + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", + "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", + "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", + "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", + "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", + "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", + "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", + "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", + "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", + "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", + "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", + }; + + std::vector expectation = { + { + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", + "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", + "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", + "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", + "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", + "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", + }, + { + "101", "102", "103", "104", "105", "106", "107", "108", "109", + "110", "111", "112", "113", "114", "115", "116", "117", "118", + "119", "120", "121", "122", "123", "124", "125", "126", "127", + "128", "129", "130", "131", "132", "133", "134", "135", "136", + "137", "138", "139", "140", "141", "142", "143", "144", "145", + "146", "147", "148", "149", "150", + }, + }; + + auto result = getEmoteSetBatches(bigList); + + EXPECT_EQ(result, expectation); +} + +TEST(TwitchAccount, NotEnoughForMoreThanOneBatch) +{ + QStringList bigList{ + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", + "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", + "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", + "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", + "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", + "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", + "85", "86", "87", "88", "89", "90", + }; + + std::vector expectation = { + { + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", + "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", + "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", + "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", + "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", + }, + }; + + auto result = getEmoteSetBatches(bigList); + + EXPECT_EQ(result, expectation); +} + +TEST(TwitchAccount, BatchThreeParts) +{ + QStringList bigList{ + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", + "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", + "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", + "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", + "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", + "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", + "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", + "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", + "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", + "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", + "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", + "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", + "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", + "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", + "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", + "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", + "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", + "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", + "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", + "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", + "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", + }; + + std::vector expectation = { + { + "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", + "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", + "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", + "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", + "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", + "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", + "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", + "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", + }, + { + "101", "102", "103", "104", "105", "106", "107", "108", "109", + "110", "111", "112", "113", "114", "115", "116", "117", "118", + "119", "120", "121", "122", "123", "124", "125", "126", "127", + "128", "129", "130", "131", "132", "133", "134", "135", "136", + "137", "138", "139", "140", "141", "142", "143", "144", "145", + "146", "147", "148", "149", "150", "151", "152", "153", "154", + "155", "156", "157", "158", "159", "160", "161", "162", "163", + "164", "165", "166", "167", "168", "169", "170", "171", "172", + "173", "174", "175", "176", "177", "178", "179", "180", "181", + "182", "183", "184", "185", "186", "187", "188", "189", "190", + "191", "192", "193", "194", "195", "196", "197", "198", "199", + "200", + }, + { + "201", "202", "203", "204", "205", "206", "207", "208", "209", + "210", "211", "212", "213", "214", "215", "216", "217", "218", + "219", "220", "221", "222", "223", "224", "225", "226", "227", + "228", "229", "230", "231", "232", "233", "234", "235", "236", + "237", "238", "239", "240", "241", "242", "243", "244", "245", + "246", "247", "248", "249", "250", + }, + }; + + auto result = getEmoteSetBatches(bigList); + + EXPECT_EQ(result, expectation); +}