From 2c079731a5482832c44f84bf2278a8a5a905af23 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Thu, 30 Aug 2018 19:26:45 +0100 Subject: [PATCH] Make condition caching case sensitive Correct handling of case insensitivity for paths and case sensitivity for version strings is more trouble than it's worth. --- src/api/game/game_cache.cpp | 4 ++-- src/tests/api/internals/game/game_cache_test.h | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/api/game/game_cache.cpp b/src/api/game/game_cache.cpp index 5ee07c93..34479949 100644 --- a/src/api/game/game_cache.cpp +++ b/src/api/game/game_cache.cpp @@ -52,14 +52,14 @@ GameCache& GameCache::operator=(const GameCache& cache) { void GameCache::CacheCondition(const std::string& condition, bool result) { lock_guard guard(mutex_); - conditions_.insert(pair(to_lower(condition), result)); + conditions_.insert(pair(condition, result)); } std::pair GameCache::GetCachedCondition( const std::string& condition) const { lock_guard guard(mutex_); - auto it = conditions_.find(to_lower(condition)); + auto it = conditions_.find(condition); if (it != conditions_.end()) return pair(it->second, true); diff --git a/src/tests/api/internals/game/game_cache_test.h b/src/tests/api/internals/game/game_cache_test.h index 01493ecb..c7904079 100644 --- a/src/tests/api/internals/game/game_cache_test.h +++ b/src/tests/api/internals/game/game_cache_test.h @@ -56,14 +56,21 @@ TEST_P(GameCacheTest, gettingATrueConditionShouldReturnATrueTruePair) { EXPECT_NO_THROW(cache_.CacheCondition(condition, true)); EXPECT_EQ(std::make_pair(true, true), - cache_.GetCachedCondition(conditionLowercase)); + cache_.GetCachedCondition(condition)); } TEST_P(GameCacheTest, gettingAFalseConditionShouldReturnAFalseTruePair) { EXPECT_NO_THROW(cache_.CacheCondition(condition, false)); EXPECT_EQ(std::make_pair(false, true), - cache_.GetCachedCondition(conditionLowercase)); + cache_.GetCachedCondition(condition)); +} + +TEST_P(GameCacheTest, gettingACachedConditionShouldBeCaseSensitive) { + EXPECT_NO_THROW(cache_.CacheCondition(condition, false)); + + EXPECT_EQ(std::make_pair(false, false), + cache_.GetCachedCondition(conditionLowercase)); } TEST_P(GameCacheTest, gettingANonCachedConditionShouldReturnAFalseFalsePair) {