diff --git a/ChangeLog b/ChangeLog index 88d1dc9b8b..af6d7c0f6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,7 @@ Bug fixes: Enhancements: - #7183 Refactoring for Synergy 3 licenses - #7190 Maintenance license serial key support +- #7193 Support for maintenance licenses in China 1.14.4 ====== diff --git a/src/lib/shared/SerialKey.cpp b/src/lib/shared/SerialKey.cpp index 01a9fa1224..47e50c0624 100644 --- a/src/lib/shared/SerialKey.cpp +++ b/src/lib/shared/SerialKey.cpp @@ -80,13 +80,13 @@ SerialKey::isTrial() const bool SerialKey::isTemporary() const { - return m_data.keyType.isTemporary(); + return (m_data.keyType.isTemporary() && !m_data.edition.isChina()); } bool SerialKey::isMaintenance() const { - return m_data.keyType.isMaintenance(); + return (m_data.keyType.isMaintenance() || m_data.edition.isChina()); } bool diff --git a/src/lib/shared/SerialKeyEdition.cpp b/src/lib/shared/SerialKeyEdition.cpp index 0adf024060..a0c5f50553 100644 --- a/src/lib/shared/SerialKeyEdition.cpp +++ b/src/lib/shared/SerialKeyEdition.cpp @@ -136,8 +136,14 @@ SerialKeyEdition::setType(const std::string& type) } } -bool SerialKeyEdition::isValid() const +bool +SerialKeyEdition::isValid() const { auto types = getSerialTypes(); return (types.find(getName()) != types.end()); } + +bool +SerialKeyEdition::isChina() const { + return ((m_Type == kBasic_China) || (m_Type == kPro_China)); +} diff --git a/src/lib/shared/SerialKeyEdition.h b/src/lib/shared/SerialKeyEdition.h index 278b0d8393..e9bae4d3b8 100644 --- a/src/lib/shared/SerialKeyEdition.h +++ b/src/lib/shared/SerialKeyEdition.h @@ -35,6 +35,7 @@ public: void setType(const std::string& type); bool isValid() const; + bool isChina() const; static const std::string PRO; static const std::string PRO_CHINA; diff --git a/src/test/unittests/shared/SerialKeyEditionTests.cpp b/src/test/unittests/shared/SerialKeyEditionTests.cpp index 956100992d..75d8ca8e4b 100644 --- a/src/test/unittests/shared/SerialKeyEditionTests.cpp +++ b/src/test/unittests/shared/SerialKeyEditionTests.cpp @@ -64,6 +64,7 @@ TEST(SerialKeyEditionTests, SetEditionBasicChina) EXPECT_EQ(kBasic_China, edition.getType()); EXPECT_EQ(SerialKeyEdition::BASIC_CHINA, edition.getName()); EXPECT_EQ("Synergy 中文版", edition.getDisplayName()); + EXPECT_TRUE(edition.isChina()); } TEST(SerialKeyEditionTests, SetEditionProChina) @@ -73,6 +74,7 @@ TEST(SerialKeyEditionTests, SetEditionProChina) EXPECT_EQ(kPro_China, edition.getType()); EXPECT_EQ(SerialKeyEdition::PRO_CHINA, edition.getName()); EXPECT_EQ("Synergy Pro 中文版", edition.getDisplayName()); + EXPECT_TRUE(edition.isChina()); } TEST(SerialKeyEditionTests, NameConstructor)