NOISSUE add basic unit tests for MojangVersionFormat reading/writing
will have to make them pass now
This commit is contained in:
parent
b54839b897
commit
94d4684809
@ -63,13 +63,12 @@ VersionFilePtr MojangVersionFormat::versionFileFromJson(const QJsonDocument &doc
|
||||
|
||||
if (root.contains("libraries"))
|
||||
{
|
||||
out->shouldOverwriteLibs = true;
|
||||
for (auto libVal : requireArray(root.value("libraries")))
|
||||
{
|
||||
auto libObj = requireObject(libVal);
|
||||
|
||||
auto lib = OneSixVersionFormat::libraryFromJson(libObj, filename);
|
||||
out->overwriteLibs.append(lib);
|
||||
out->addLibs.append(lib);
|
||||
}
|
||||
}
|
||||
return out;
|
||||
@ -86,6 +85,10 @@ static QJsonDocument versionFileToJson(VersionFilePtr patch)
|
||||
writeString(root, "assets", patch->assets);
|
||||
writeString(root, "releaseTime", timeToS3Time(patch->m_releaseTime));
|
||||
writeString(root, "time", timeToS3Time(patch->m_updateTime));
|
||||
if(patch->minimumLauncherVersion != -1)
|
||||
{
|
||||
root.insert("minimumLauncherVersion", patch->minimumLauncherVersion);
|
||||
}
|
||||
|
||||
if (!patch->addLibs.isEmpty())
|
||||
{
|
||||
|
@ -3,7 +3,9 @@
|
||||
#include <minecraft/VersionFile.h>
|
||||
#include <QJsonDocument>
|
||||
|
||||
class MojangVersionFormat
|
||||
#include "multimc_logic_export.h"
|
||||
|
||||
class MULTIMC_LOGIC_EXPORT MojangVersionFormat
|
||||
{
|
||||
public:
|
||||
// version files / profile patches
|
||||
|
@ -82,7 +82,10 @@ QJsonObject OsRule::toJson()
|
||||
QJsonObject osObj;
|
||||
{
|
||||
osObj.insert("name", OpSys_toString(m_system));
|
||||
osObj.insert("version", m_version_regexp);
|
||||
if(!m_version_regexp.isEmpty())
|
||||
{
|
||||
osObj.insert("version", m_version_regexp);
|
||||
}
|
||||
}
|
||||
ruleObj.insert("os", osObj);
|
||||
return ruleObj;
|
||||
|
@ -1,16 +1,19 @@
|
||||
# run the unit tests with `make test`
|
||||
find_package(Qt5Test)
|
||||
|
||||
add_custom_target(test_data)
|
||||
|
||||
unset(MultiMC_TESTS)
|
||||
macro(add_unit_test name)
|
||||
unset(srcs)
|
||||
foreach(arg ${testname} ${ARGN})
|
||||
list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/${arg})
|
||||
if(WIN32)
|
||||
list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc)
|
||||
endif()
|
||||
endforeach()
|
||||
if(WIN32)
|
||||
list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc)
|
||||
endif()
|
||||
add_executable(tst_${name} ${srcs})
|
||||
add_dependencies(tst_${name} test_data)
|
||||
target_link_libraries(tst_${name} MultiMC_logic)
|
||||
qt5_use_modules(tst_${name} Test Core Network)
|
||||
list(APPEND MultiMC_TESTS tst_${name})
|
||||
@ -32,6 +35,7 @@ add_unit_test(Resource tst_Resource.cpp)
|
||||
add_unit_test(GZip tst_GZip.cpp)
|
||||
add_unit_test(JavaVersion tst_JavaVersion.cpp)
|
||||
add_unit_test(ParseUtils tst_ParseUtils.cpp)
|
||||
add_unit_test(MojangVersionFormat tst_MojangVersionFormat.cpp)
|
||||
|
||||
# Tests END #
|
||||
|
||||
@ -91,7 +95,21 @@ if(MultiMC_CODE_COVERAGE)
|
||||
add_custom_target(MultiMC_RUN_TESTS DEPENDS MultiMC_GENERATE_COVERAGE_HTML)
|
||||
endif(MultiMC_CODE_COVERAGE)
|
||||
|
||||
|
||||
set(MultiMC_TEST_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR}/data")
|
||||
set(MultiMC_TEST_DATA_PATH_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/data")
|
||||
set(MultiMC_TEST_DATA_PATH_RAW "${CMAKE_CURRENT_BINARY_DIR}/data_raw")
|
||||
set(MultiMC_TEST_DATA_PATH_SOURCE_RAW "${CMAKE_CURRENT_SOURCE_DIR}/data_raw")
|
||||
|
||||
# clean and replace test data
|
||||
add_custom_command(
|
||||
TARGET test_data
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${MultiMC_TEST_DATA_PATH}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory ${MultiMC_TEST_DATA_PATH}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${MultiMC_TEST_DATA_PATH_SOURCE} ${MultiMC_TEST_DATA_PATH}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${MultiMC_TEST_DATA_PATH_SOURCE_RAW} ${MultiMC_TEST_DATA_PATH_RAW}
|
||||
)
|
||||
|
||||
message("${CMAKE_CURRENT_BINARY_DIR}/data")
|
||||
if(UNIX)
|
||||
# on unix we get the third / from the filename
|
||||
@ -100,18 +118,4 @@ else()
|
||||
# we don't on windows, so we have to add it ourselves
|
||||
set(MultiMC_TEST_DATA_PATH "file:///${MultiMC_TEST_DATA_PATH}")
|
||||
endif()
|
||||
file(GLOB data_files "data/*")
|
||||
foreach(data_file ${data_files})
|
||||
get_filename_component(filename ${data_file} NAME)
|
||||
configure_file(
|
||||
${data_file}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/data/${filename}
|
||||
@ONLY
|
||||
NEWLINE_STYLE LF
|
||||
)
|
||||
endforeach()
|
||||
|
||||
file(GLOB raw_data_files "data_raw/*")
|
||||
file(COPY ${raw_data_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/data/)
|
||||
|
||||
configure_file(test_config.h.in test_config.h @ONLY)
|
||||
|
198
tests/data/1.9-simple.json
Normal file
198
tests/data/1.9-simple.json
Normal file
@ -0,0 +1,198 @@
|
||||
{
|
||||
"assets": "1.9",
|
||||
"id": "1.9",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107"
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final"
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2"
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4"
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.22"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.8.4"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3"
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"minimumLauncherVersion": 18,
|
||||
"releaseTime": "2016-02-29T13:49:54+00:00",
|
||||
"time": "2016-03-01T13:14:53+00:00",
|
||||
"type": "release"
|
||||
}
|
529
tests/data/1.9.json
Normal file
529
tests/data/1.9.json
Normal file
@ -0,0 +1,529 @@
|
||||
{
|
||||
"assetIndex": {
|
||||
"id": "1.9",
|
||||
"sha1": "cde65b47a43f638653ab1da3848b53f8a7477b16",
|
||||
"size": 136916,
|
||||
"totalSize": 119917473,
|
||||
"url": "https://launchermeta.mojang.com/mc-staging/assets/1.9/cde65b47a43f638653ab1da3848b53f8a7477b16/1.9.json"
|
||||
},
|
||||
"assets": "1.9",
|
||||
"downloads": {
|
||||
"client": {
|
||||
"sha1": "2f67dfe8953299440d1902f9124f0f2c3a2c940f",
|
||||
"size": 8697592,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9/client/2f67dfe8953299440d1902f9124f0f2c3a2c940f/client.jar"
|
||||
},
|
||||
"server": {
|
||||
"sha1": "b4d449cf2918e0f3bd8aa18954b916a4d1880f0d",
|
||||
"size": 8848015,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9/server/b4d449cf2918e0f3bd8aa18954b916a4d1880f0d/server.jar"
|
||||
}
|
||||
},
|
||||
"id": "1.9",
|
||||
"libraries": [
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
|
||||
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
|
||||
"size": 30973,
|
||||
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
|
||||
}
|
||||
},
|
||||
"name": "oshi-project:oshi-core:1.1"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
|
||||
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
|
||||
"size": 1008730,
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
|
||||
}
|
||||
},
|
||||
"name": "net.java.dev.jna:jna:3.4.0"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
|
||||
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
|
||||
"size": 913436,
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
|
||||
}
|
||||
},
|
||||
"name": "net.java.dev.jna:platform:3.4.0"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
|
||||
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
|
||||
"size": 1634692,
|
||||
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
|
||||
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
|
||||
"size": 62477,
|
||||
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
|
||||
}
|
||||
},
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
|
||||
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
|
||||
"size": 103871,
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.paulscode:codecjorbis:20101023"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
|
||||
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
|
||||
"size": 5618,
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.paulscode:codecwav:20101023"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
|
||||
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
|
||||
"size": 21679,
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.paulscode:libraryjavasound:20101123"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
|
||||
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
|
||||
"size": 18981,
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
|
||||
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
|
||||
"size": 65020,
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.paulscode:soundsystem:20120107"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
|
||||
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
|
||||
"size": 1779991,
|
||||
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
|
||||
}
|
||||
},
|
||||
"name": "io.netty:netty-all:4.0.23.Final"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
|
||||
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
|
||||
"size": 2243036,
|
||||
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.google.guava:guava:17.0"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
|
||||
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
|
||||
"size": 412739,
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
|
||||
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
|
||||
"size": 185140,
|
||||
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
|
||||
}
|
||||
},
|
||||
"name": "commons-io:commons-io:2.4"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
|
||||
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
|
||||
"size": 263965,
|
||||
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
|
||||
}
|
||||
},
|
||||
"name": "commons-codec:commons-codec:1.9"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
|
||||
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
|
||||
"size": 208338,
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
|
||||
}
|
||||
},
|
||||
"name": "net.java.jinput:jinput:2.0.5"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
|
||||
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
|
||||
"size": 7508,
|
||||
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
|
||||
}
|
||||
},
|
||||
"name": "net.java.jutils:jutils:1.0.0"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
|
||||
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
|
||||
"size": 190432,
|
||||
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.google.code.gson:gson:2.2.4"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/mojang/authlib/1.5.22/authlib-1.5.22.jar",
|
||||
"sha1": "afaa8f6df976fcb5520e76ef1d5798c9e6b5c0b2",
|
||||
"size": 64539,
|
||||
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.22/authlib-1.5.22.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.mojang:authlib:1.5.22"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "com/mojang/realms/1.8.4/realms-1.8.4.jar",
|
||||
"sha1": "15f8dc326c97a96dee6e65392e145ad6d1cb46cb",
|
||||
"size": 1131574,
|
||||
"url": "https://libraries.minecraft.net/com/mojang/realms/1.8.4/realms-1.8.4.jar"
|
||||
}
|
||||
},
|
||||
"name": "com.mojang:realms:1.8.4"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
|
||||
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
|
||||
"size": 365552,
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.commons:commons-compress:1.8.1"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
|
||||
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
|
||||
"size": 589512,
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
|
||||
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
|
||||
"size": 62050,
|
||||
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
||||
}
|
||||
},
|
||||
"name": "commons-logging:commons-logging:1.1.3"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
|
||||
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
|
||||
"size": 282269,
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
|
||||
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
|
||||
"size": 108161,
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
|
||||
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
|
||||
"size": 681134,
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
|
||||
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
|
||||
"size": 1047168,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
|
||||
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
|
||||
"size": 173887,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
|
||||
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
|
||||
"size": 22,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
|
||||
},
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
|
||||
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
|
||||
"size": 578680,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
|
||||
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
|
||||
"size": 426822,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
|
||||
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
|
||||
"size": 613748,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
|
||||
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
|
||||
"size": 1045632,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
|
||||
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
|
||||
"size": 173887,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
|
||||
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
|
||||
"size": 578539,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
|
||||
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
|
||||
"size": 468116,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
|
||||
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
|
||||
"size": 613680,
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
|
||||
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
|
||||
"size": 10362,
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
|
||||
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
|
||||
"size": 12186,
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
|
||||
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
|
||||
"size": 155179,
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"minimumLauncherVersion": 18,
|
||||
"releaseTime": "2016-02-29T13:49:54+00:00",
|
||||
"time": "2016-03-01T13:14:53+00:00",
|
||||
"type": "release"
|
||||
}
|
54
tests/tst_MojangVersionFormat.cpp
Normal file
54
tests/tst_MojangVersionFormat.cpp
Normal file
@ -0,0 +1,54 @@
|
||||
#include <QTest>
|
||||
#include <QDebug>
|
||||
#include "TestUtil.h"
|
||||
|
||||
#include "minecraft/MojangVersionFormat.h"
|
||||
|
||||
class MojangVersionFormatTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
static QJsonDocument readJson(const char *file)
|
||||
{
|
||||
auto path = QFINDTESTDATA(file);
|
||||
QFile jsonFile(path);
|
||||
jsonFile.open(QIODevice::ReadOnly);
|
||||
auto data = jsonFile.readAll();
|
||||
jsonFile.close();
|
||||
return QJsonDocument::fromJson(data);
|
||||
}
|
||||
static void writeJson(const char *file, QJsonDocument doc)
|
||||
{
|
||||
QFile jsonFile(file);
|
||||
jsonFile.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||
auto data = doc.toJson(QJsonDocument::Indented);
|
||||
jsonFile.write(data);
|
||||
jsonFile.close();
|
||||
}
|
||||
|
||||
private
|
||||
slots:
|
||||
void test_Through_Simple()
|
||||
{
|
||||
|
||||
QJsonDocument doc = readJson("tests/data/1.9-simple.json");
|
||||
auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9-simple.json");
|
||||
auto doc2 = MojangVersionFormat::profilePatchToJson(vfile);
|
||||
writeJson("beast.json", doc2);
|
||||
QCOMPARE(doc, doc2);
|
||||
}
|
||||
void test_Through()
|
||||
{
|
||||
|
||||
QJsonDocument doc = readJson("tests/data/1.9.json");
|
||||
auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9.json");
|
||||
auto doc2 = MojangVersionFormat::profilePatchToJson(vfile);
|
||||
QCOMPARE(doc, doc2);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(MojangVersionFormatTest)
|
||||
|
||||
#include "tst_MojangVersionFormat.moc"
|
||||
|
Loading…
Reference in New Issue
Block a user