commit c0a4ab9c01087875afd9de203d4a0278e5743cd5
parent 19ef8b6cf2345e120f51d75f8e97f3dac0fb78e1
Author: cfillion <cfillion@users.noreply.github.com>
Date: Fri, 11 Nov 2016 19:52:49 -0500
add support for Language Pack packages
Diffstat:
5 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/package.cpp b/src/package.cpp
@@ -38,6 +38,8 @@ Package::Type Package::getType(const char *type)
return DataType;
else if(!strcmp(type, "theme"))
return ThemeType;
+ else if(!strcmp(type, "langpack"))
+ return LangPackType;
else
return UnknownType;
}
@@ -55,6 +57,8 @@ string Package::displayType(const Type type)
return "Data";
case ThemeType:
return "Theme";
+ case LangPackType:
+ return "Language Pack";
default:
return "Unknown";
}
diff --git a/src/package.hpp b/src/package.hpp
@@ -33,6 +33,7 @@ public:
EffectType,
DataType,
ThemeType,
+ LangPackType,
};
static Type getType(const char *);
diff --git a/src/source.cpp b/src/source.cpp
@@ -140,6 +140,9 @@ Path Source::targetPath() const
case Package::ThemeType:
path.append("ColorThemes");
break;
+ case Package::LangPackType:
+ path.append("LangPack");
+ break;
case Package::UnknownType:
// The package has an unsupported type, so we return an empty path.
// The empty path won't be used because the category will reject
@@ -161,6 +164,7 @@ Path Source::targetPath() const
case Package::ExtensionType:
case Package::ThemeType:
case Package::DataType:
+ case Package::LangPackType:
path.append(file(), false);
break;
case Package::UnknownType:
diff --git a/test/package.cpp b/test/package.cpp
@@ -30,6 +30,9 @@ TEST_CASE("package type from string", M) {
SECTION("theme")
REQUIRE(Package::getType("theme") == Package::ThemeType);
+
+ SECTION("langpack")
+ REQUIRE(Package::getType("langpack") == Package::LangPackType);
}
TEST_CASE("package type to string", M) {
@@ -51,7 +54,10 @@ TEST_CASE("package type to string", M) {
SECTION("theme")
REQUIRE("Theme" == Package::displayType(Package::ThemeType));
- SECTION("unknown value")
+ SECTION("langpack")
+ REQUIRE("Language Pack" == Package::displayType(Package::LangPackType));
+
+ SECTION("unknown")
REQUIRE("Unknown" == Package::displayType(static_cast<Package::Type>(-1)));
}
diff --git a/test/source.cpp b/test/source.cpp
@@ -217,6 +217,12 @@ TEST_CASE("source target path", M) {
const Path expected("ColorThemes/file.name");
REQUIRE(source.targetPath() == expected);
}
+
+ SECTION("langpack") {
+ source.setTypeOverride(Package::LangPackType);
+ const Path expected("LangPack/file.name");
+ REQUIRE(source.targetPath() == expected);
+ }
}
TEST_CASE("target path with parent directory traversal", M) {