reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit b6841983f7dadb82ecf5e28e583d3eca49a53cb9
parent bca9a67b9b4ebf1f9618af1408f330a431e227e1
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Sun, 18 Dec 2016 18:49:39 -0500

add support for REAPER v5.30 custom Web Interfaces

Diffstat:
Msrc/browser.cpp | 1+
Msrc/package.cpp | 4++++
Msrc/package.hpp | 1+
Msrc/source.cpp | 4++++
Mtest/package.cpp | 8+++++++-
Mtest/source.cpp | 6++++++
6 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/browser.cpp b/src/browser.cpp @@ -480,6 +480,7 @@ bool Browser::isFiltered(Package::Type type) const case Package::LangPackType: break; case Package::DataType: + case Package::WebInterfaceType: type = Package::UnknownType; break; } diff --git a/src/package.cpp b/src/package.cpp @@ -40,6 +40,8 @@ Package::Type Package::getType(const char *type) return ThemeType; else if(!strcmp(type, "langpack")) return LangPackType; + else if(!strcmp(type, "www")) + return WebInterfaceType; else return UnknownType; } @@ -59,6 +61,8 @@ string Package::displayType(const Type type) return "Theme"; case LangPackType: return "Language Pack"; + case WebInterfaceType: + return "Web Interface"; default: return "Unknown"; } diff --git a/src/package.hpp b/src/package.hpp @@ -34,6 +34,7 @@ public: DataType, ThemeType, LangPackType, + WebInterfaceType, }; static Type getType(const char *); diff --git a/src/source.cpp b/src/source.cpp @@ -118,6 +118,9 @@ Path Source::targetPath() const case Package::LangPackType: path.append("LangPack"); break; + case Package::WebInterfaceType: + path.append("reaper_www_root"); + break; case Package::UnknownType: // The package has an unsupported type, so we make an empty path. // The empty path won't be used because the category will reject @@ -142,6 +145,7 @@ Path Source::targetPath() const case Package::ThemeType: case Package::DataType: case Package::LangPackType: + case Package::WebInterfaceType: path.append(file(), false); break; case Package::UnknownType: diff --git a/test/package.cpp b/test/package.cpp @@ -33,6 +33,9 @@ TEST_CASE("package type from string", M) { SECTION("langpack") REQUIRE(Package::getType("langpack") == Package::LangPackType); + + SECTION("web interface") + REQUIRE(Package::getType("www") == Package::WebInterfaceType); } TEST_CASE("package type to string", M) { @@ -57,7 +60,10 @@ TEST_CASE("package type to string", M) { SECTION("langpack") REQUIRE("Language Pack" == Package::displayType(Package::LangPackType)); - SECTION("unknown") + SECTION("web interface") + REQUIRE("Web Interface" == Package::displayType(Package::WebInterfaceType)); + + SECTION("invalid") REQUIRE("Unknown" == Package::displayType(static_cast<Package::Type>(-1))); } diff --git a/test/source.cpp b/test/source.cpp @@ -183,6 +183,12 @@ TEST_CASE("source target path", M) { const Path expected("LangPack/file.name"); REQUIRE(source.targetPath() == expected); } + + SECTION("web interface") { + source.setTypeOverride(Package::WebInterfaceType); + const Path expected("reaper_www_root/file.name"); + REQUIRE(source.targetPath() == expected); + } } TEST_CASE("target path with parent directory traversal", M) {