refactor: restructure tests
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
@ -1,77 +0,0 @@
|
||||
#include <QTest>
|
||||
|
||||
#include "minecraft/GradleSpecifier.h"
|
||||
|
||||
class GradleSpecifierTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private
|
||||
slots:
|
||||
void initTestCase()
|
||||
{
|
||||
|
||||
}
|
||||
void cleanupTestCase()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void test_Positive_data()
|
||||
{
|
||||
QTest::addColumn<QString>("through");
|
||||
|
||||
QTest::newRow("3 parter") << "org.gradle.test.classifiers:service:1.0";
|
||||
QTest::newRow("classifier") << "org.gradle.test.classifiers:service:1.0:jdk15";
|
||||
QTest::newRow("jarextension") << "org.gradle.test.classifiers:service:1.0@jar";
|
||||
QTest::newRow("jarboth") << "org.gradle.test.classifiers:service:1.0:jdk15@jar";
|
||||
QTest::newRow("packxz") << "org.gradle.test.classifiers:service:1.0:jdk15@jar.pack.xz";
|
||||
}
|
||||
void test_Positive()
|
||||
{
|
||||
QFETCH(QString, through);
|
||||
|
||||
QString converted = GradleSpecifier(through).serialize();
|
||||
|
||||
QCOMPARE(converted, through);
|
||||
}
|
||||
|
||||
void test_Path_data()
|
||||
{
|
||||
QTest::addColumn<QString>("spec");
|
||||
QTest::addColumn<QString>("expected");
|
||||
|
||||
QTest::newRow("3 parter") << "group.id:artifact:1.0" << "group/id/artifact/1.0/artifact-1.0.jar";
|
||||
QTest::newRow("doom") << "id.software:doom:1.666:demons@wad" << "id/software/doom/1.666/doom-1.666-demons.wad";
|
||||
}
|
||||
void test_Path()
|
||||
{
|
||||
QFETCH(QString, spec);
|
||||
QFETCH(QString, expected);
|
||||
|
||||
QString converted = GradleSpecifier(spec).toPath();
|
||||
|
||||
QCOMPARE(converted, expected);
|
||||
}
|
||||
void test_Negative_data()
|
||||
{
|
||||
QTest::addColumn<QString>("input");
|
||||
|
||||
QTest::newRow("too many :") << "org:gradle.test:class:::ifiers:service:1.0::";
|
||||
QTest::newRow("nonsense") << "I like turtles";
|
||||
QTest::newRow("empty string") << "";
|
||||
QTest::newRow("missing version") << "herp.derp:artifact";
|
||||
}
|
||||
void test_Negative()
|
||||
{
|
||||
QFETCH(QString, input);
|
||||
|
||||
GradleSpecifier spec(input);
|
||||
QVERIFY(!spec.valid());
|
||||
QCOMPARE(spec.serialize(), input);
|
||||
QCOMPARE(spec.toPath(), QString());
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(GradleSpecifierTest)
|
||||
|
||||
#include "GradleSpecifier_test.moc"
|
@ -1,270 +0,0 @@
|
||||
#include <QTest>
|
||||
|
||||
#include "minecraft/MojangVersionFormat.h"
|
||||
#include "minecraft/OneSixVersionFormat.h"
|
||||
#include "minecraft/Library.h"
|
||||
#include "net/HttpMetaCache.h"
|
||||
#include "FileSystem.h"
|
||||
|
||||
class LibraryTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private:
|
||||
LibraryPtr readMojangJson(const QString path)
|
||||
{
|
||||
QFile jsonFile(path);
|
||||
jsonFile.open(QIODevice::ReadOnly);
|
||||
auto data = jsonFile.readAll();
|
||||
jsonFile.close();
|
||||
ProblemContainer problems;
|
||||
return MojangVersionFormat::libraryFromJson(problems, QJsonDocument::fromJson(data).object(), path);
|
||||
}
|
||||
// get absolute path to expected storage, assuming default cache prefix
|
||||
QStringList getStorage(QString relative)
|
||||
{
|
||||
return {FS::PathCombine(cache->getBasePath("libraries"), relative)};
|
||||
}
|
||||
private
|
||||
slots:
|
||||
void initTestCase()
|
||||
{
|
||||
cache.reset(new HttpMetaCache());
|
||||
cache->addBase("libraries", QDir("libraries").absolutePath());
|
||||
dataDir = QDir(QFINDTESTDATA("testdata")).absolutePath();
|
||||
}
|
||||
void test_legacy()
|
||||
{
|
||||
Library test("test.package:testname:testversion");
|
||||
QCOMPARE(test.artifactPrefix(), QString("test.package:testname"));
|
||||
QCOMPARE(test.isNative(), false);
|
||||
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(currentSystem, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, getStorage("test/package/testname/testversion/testname-testversion.jar"));
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
}
|
||||
void test_legacy_url()
|
||||
{
|
||||
QStringList failedFiles;
|
||||
Library test("test.package:testname:testversion");
|
||||
test.setRepositoryURL("file://foo/bar");
|
||||
auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(downloads.size(), 1);
|
||||
QCOMPARE(failedFiles, {});
|
||||
NetAction::Ptr dl = downloads[0];
|
||||
QCOMPARE(dl->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion.jar"));
|
||||
}
|
||||
void test_legacy_url_local_broken()
|
||||
{
|
||||
Library test("test.package:testname:testversion");
|
||||
QCOMPARE(test.isNative(), false);
|
||||
QStringList failedFiles;
|
||||
test.setHint("local");
|
||||
auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(downloads.size(), 0);
|
||||
QCOMPARE(failedFiles, {"testname-testversion.jar"});
|
||||
}
|
||||
void test_legacy_url_local_override()
|
||||
{
|
||||
Library test("com.paulscode:codecwav:20101023");
|
||||
QCOMPARE(test.isNative(), false);
|
||||
QStringList failedFiles;
|
||||
test.setHint("local");
|
||||
auto downloads = test.getDownloads(currentSystem, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(downloads.size(), 0);
|
||||
qDebug() << failedFiles;
|
||||
QCOMPARE(failedFiles.size(), 0);
|
||||
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(currentSystem, jar, native, native32, native64, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
}
|
||||
void test_legacy_native()
|
||||
{
|
||||
Library test("test.package:testname:testversion");
|
||||
test.m_nativeClassifiers[OpSys::Os_Linux]="linux";
|
||||
QCOMPARE(test.isNative(), true);
|
||||
test.setRepositoryURL("file://foo/bar");
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, getStorage("test/package/testname/testversion/testname-testversion-linux.jar"));
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
QStringList failedFiles;
|
||||
auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 1);
|
||||
QCOMPARE(failedFiles, {});
|
||||
auto dl = dls[0];
|
||||
QCOMPARE(dl->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux.jar"));
|
||||
}
|
||||
}
|
||||
void test_legacy_native_arch()
|
||||
{
|
||||
Library test("test.package:testname:testversion");
|
||||
test.m_nativeClassifiers[OpSys::Os_Linux]="linux-${arch}";
|
||||
test.m_nativeClassifiers[OpSys::Os_OSX]="osx-${arch}";
|
||||
test.m_nativeClassifiers[OpSys::Os_Windows]="windows-${arch}";
|
||||
QCOMPARE(test.isNative(), true);
|
||||
test.setRepositoryURL("file://foo/bar");
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-linux-32.jar"));
|
||||
QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-linux-64.jar"));
|
||||
QStringList failedFiles;
|
||||
auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 2);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux-32.jar"));
|
||||
QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-linux-64.jar"));
|
||||
}
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(Os_Windows, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-windows-32.jar"));
|
||||
QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-windows-64.jar"));
|
||||
QStringList failedFiles;
|
||||
auto dls = test.getDownloads(Os_Windows, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 2);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-windows-32.jar"));
|
||||
QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-windows-64.jar"));
|
||||
}
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, getStorage("test/package/testname/testversion/testname-testversion-osx-32.jar"));
|
||||
QCOMPARE(native64, getStorage("test/package/testname/testversion/testname-testversion-osx-64.jar"));
|
||||
QStringList failedFiles;
|
||||
auto dls = test.getDownloads(Os_OSX, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 2);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-osx-32.jar"));
|
||||
QCOMPARE(dls[1]->m_url, QUrl("file://foo/bar/test/package/testname/testversion/testname-testversion-osx-64.jar"));
|
||||
}
|
||||
}
|
||||
void test_legacy_native_arch_local_override()
|
||||
{
|
||||
Library test("test.package:testname:testversion");
|
||||
test.m_nativeClassifiers[OpSys::Os_Linux]="linux-${arch}";
|
||||
test.setHint("local");
|
||||
QCOMPARE(test.isNative(), true);
|
||||
test.setRepositoryURL("file://foo/bar");
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test.getApplicableFiles(Os_Linux, jar, native, native32, native64, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {QFileInfo(QFINDTESTDATA("testdata/testname-testversion-linux-32.jar")).absoluteFilePath()});
|
||||
QCOMPARE(native64, {QFileInfo(QFINDTESTDATA("testdata") + "/testname-testversion-linux-64.jar").absoluteFilePath()});
|
||||
QStringList failedFiles;
|
||||
auto dls = test.getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(dls.size(), 0);
|
||||
QCOMPARE(failedFiles, {QFileInfo(QFINDTESTDATA("testdata") + "/testname-testversion-linux-64.jar").absoluteFilePath()});
|
||||
}
|
||||
}
|
||||
void test_onenine()
|
||||
{
|
||||
auto test = readMojangJson(QFINDTESTDATA("testdata/lib-simple.json"));
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, getStorage("com/paulscode/codecwav/20101023/codecwav-20101023.jar"));
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
}
|
||||
{
|
||||
QStringList failedFiles;
|
||||
auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 1);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"));
|
||||
}
|
||||
test->setHint("local");
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
}
|
||||
{
|
||||
QStringList failedFiles;
|
||||
auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(dls.size(), 0);
|
||||
QCOMPARE(failedFiles, {});
|
||||
}
|
||||
}
|
||||
void test_onenine_local_override()
|
||||
{
|
||||
auto test = readMojangJson(QFINDTESTDATA("testdata/lib-simple.json"));
|
||||
test->setHint("local");
|
||||
{
|
||||
QStringList jar, native, native32, native64;
|
||||
test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(jar, {QFileInfo(QFINDTESTDATA("testdata/codecwav-20101023.jar")).absoluteFilePath()});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
}
|
||||
{
|
||||
QStringList failedFiles;
|
||||
auto dls = test->getDownloads(Os_Linux, cache.get(), failedFiles, QFINDTESTDATA("testdata"));
|
||||
QCOMPARE(dls.size(), 0);
|
||||
QCOMPARE(failedFiles, {});
|
||||
}
|
||||
}
|
||||
void test_onenine_native()
|
||||
{
|
||||
auto test = readMojangJson(QFINDTESTDATA("testdata/lib-native.json"));
|
||||
QStringList jar, native, native32, native64;
|
||||
test->getApplicableFiles(Os_OSX, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, QStringList());
|
||||
QCOMPARE(native, getStorage("org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"));
|
||||
QCOMPARE(native32, {});
|
||||
QCOMPARE(native64, {});
|
||||
QStringList failedFiles;
|
||||
auto dls = test->getDownloads(Os_OSX, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 1);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"));
|
||||
}
|
||||
void test_onenine_native_arch()
|
||||
{
|
||||
auto test = readMojangJson(QFINDTESTDATA("testdata/lib-native-arch.json"));
|
||||
QStringList jar, native, native32, native64;
|
||||
test->getApplicableFiles(Os_Windows, jar, native, native32, native64, QString());
|
||||
QCOMPARE(jar, {});
|
||||
QCOMPARE(native, {});
|
||||
QCOMPARE(native32, getStorage("tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar"));
|
||||
QCOMPARE(native64, getStorage("tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar"));
|
||||
QStringList failedFiles;
|
||||
auto dls = test->getDownloads(Os_Windows, cache.get(), failedFiles, QString());
|
||||
QCOMPARE(dls.size(), 2);
|
||||
QCOMPARE(failedFiles, {});
|
||||
QCOMPARE(dls[0]->m_url, QUrl("https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar"));
|
||||
QCOMPARE(dls[1]->m_url, QUrl("https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar"));
|
||||
}
|
||||
private:
|
||||
std::unique_ptr<HttpMetaCache> cache;
|
||||
QString dataDir;
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(LibraryTest)
|
||||
|
||||
#include "Library_test.moc"
|
@ -1,53 +0,0 @@
|
||||
#include <QTest>
|
||||
#include <QDebug>
|
||||
|
||||
#include "minecraft/MojangVersionFormat.h"
|
||||
|
||||
class MojangVersionFormatTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
static QJsonDocument readJson(const QString path)
|
||||
{
|
||||
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);
|
||||
qDebug() << QString::fromUtf8(data);
|
||||
jsonFile.write(data);
|
||||
jsonFile.close();
|
||||
}
|
||||
|
||||
private
|
||||
slots:
|
||||
void test_Through_Simple()
|
||||
{
|
||||
QJsonDocument doc = readJson(QFINDTESTDATA("testdata/1.9-simple.json"));
|
||||
auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9-simple.json");
|
||||
auto doc2 = MojangVersionFormat::versionFileToJson(vfile);
|
||||
writeJson("1.9-simple-passthorugh.json", doc2);
|
||||
|
||||
QCOMPARE(doc.toJson(), doc2.toJson());
|
||||
}
|
||||
|
||||
void test_Through()
|
||||
{
|
||||
QJsonDocument doc = readJson(QFINDTESTDATA("testdata/1.9.json"));
|
||||
auto vfile = MojangVersionFormat::versionFileFromJson(doc, "1.9.json");
|
||||
auto doc2 = MojangVersionFormat::versionFileToJson(vfile);
|
||||
writeJson("1.9-passthorugh.json", doc2);
|
||||
QCOMPARE(doc.toJson(), doc2.toJson());
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(MojangVersionFormatTest)
|
||||
|
||||
#include "MojangVersionFormat_test.moc"
|
||||
|
@ -1,43 +0,0 @@
|
||||
#include <QTest>
|
||||
|
||||
#include "minecraft/ParseUtils.h"
|
||||
|
||||
class ParseUtilsTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private
|
||||
slots:
|
||||
void test_Through_data()
|
||||
{
|
||||
QTest::addColumn<QString>("timestamp");
|
||||
const char * timestamps[] =
|
||||
{
|
||||
"2016-02-29T13:49:54+01:00",
|
||||
"2016-02-26T15:21:11+00:01",
|
||||
"2016-02-24T15:52:36+01:13",
|
||||
"2016-02-18T17:41:00+00:00",
|
||||
"2016-02-17T15:23:19+00:00",
|
||||
"2016-02-16T15:22:39+09:22",
|
||||
"2016-02-10T15:06:41+00:00",
|
||||
"2016-02-04T15:28:02-05:33"
|
||||
};
|
||||
for(unsigned i = 0; i < (sizeof(timestamps) / sizeof(const char *)); i++)
|
||||
{
|
||||
QTest::newRow(timestamps[i]) << QString(timestamps[i]);
|
||||
}
|
||||
}
|
||||
void test_Through()
|
||||
{
|
||||
QFETCH(QString, timestamp);
|
||||
|
||||
auto time_parsed = timeFromS3Time(timestamp);
|
||||
auto time_serialized = timeToS3Time(time_parsed);
|
||||
|
||||
QCOMPARE(time_serialized, timestamp);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(ParseUtilsTest)
|
||||
|
||||
#include "ParseUtils_test.moc"
|
@ -1,261 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
/*
|
||||
* PolyMC - Minecraft Launcher
|
||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* This file incorporates work covered by the following copyright and
|
||||
* permission notice:
|
||||
*
|
||||
* Copyright 2013-2021 MultiMC Contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <QTest>
|
||||
#include <QTemporaryDir>
|
||||
#include <QTimer>
|
||||
|
||||
#include "FileSystem.h"
|
||||
|
||||
#include "minecraft/mod/ModFolderModel.h"
|
||||
#include "minecraft/mod/ResourceFolderModel.h"
|
||||
|
||||
#define EXEC_UPDATE_TASK(EXEC, VERIFY) \
|
||||
QEventLoop loop; \
|
||||
\
|
||||
connect(&model, &ResourceFolderModel::updateFinished, &loop, &QEventLoop::quit); \
|
||||
\
|
||||
QTimer expire_timer; \
|
||||
expire_timer.callOnTimeout(&loop, &QEventLoop::quit); \
|
||||
expire_timer.setSingleShot(true); \
|
||||
expire_timer.start(4000); \
|
||||
\
|
||||
VERIFY(EXEC); \
|
||||
loop.exec(); \
|
||||
\
|
||||
QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished."); \
|
||||
expire_timer.stop(); \
|
||||
\
|
||||
disconnect(&model, nullptr, &loop, nullptr);
|
||||
|
||||
class ResourceFolderModelTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private
|
||||
slots:
|
||||
// test for GH-1178 - install a folder with files to a mod list
|
||||
void test_1178()
|
||||
{
|
||||
// source
|
||||
QString source = QFINDTESTDATA("testdata/test_folder");
|
||||
|
||||
// sanity check
|
||||
QVERIFY(!source.endsWith('/'));
|
||||
|
||||
auto verify = [](QString path)
|
||||
{
|
||||
QDir target_dir(FS::PathCombine(path, "test_folder"));
|
||||
QVERIFY(target_dir.entryList().contains("pack.mcmeta"));
|
||||
QVERIFY(target_dir.entryList().contains("assets"));
|
||||
};
|
||||
|
||||
// 1. test with no trailing /
|
||||
{
|
||||
QString folder = source;
|
||||
QTemporaryDir tempDir;
|
||||
|
||||
QEventLoop loop;
|
||||
|
||||
ModFolderModel m(tempDir.path(), true);
|
||||
|
||||
connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit);
|
||||
|
||||
QTimer expire_timer;
|
||||
expire_timer.callOnTimeout(&loop, &QEventLoop::quit);
|
||||
expire_timer.setSingleShot(true);
|
||||
expire_timer.start(4000);
|
||||
|
||||
m.installMod(folder);
|
||||
|
||||
loop.exec();
|
||||
|
||||
QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished.");
|
||||
expire_timer.stop();
|
||||
|
||||
verify(tempDir.path());
|
||||
}
|
||||
|
||||
// 2. test with trailing /
|
||||
{
|
||||
QString folder = source + '/';
|
||||
QTemporaryDir tempDir;
|
||||
QEventLoop loop;
|
||||
ModFolderModel m(tempDir.path(), true);
|
||||
|
||||
connect(&m, &ModFolderModel::updateFinished, &loop, &QEventLoop::quit);
|
||||
|
||||
QTimer expire_timer;
|
||||
expire_timer.callOnTimeout(&loop, &QEventLoop::quit);
|
||||
expire_timer.setSingleShot(true);
|
||||
expire_timer.start(4000);
|
||||
|
||||
m.installMod(folder);
|
||||
|
||||
loop.exec();
|
||||
|
||||
QVERIFY2(expire_timer.isActive(), "Timer has expired. The update never finished.");
|
||||
expire_timer.stop();
|
||||
|
||||
verify(tempDir.path());
|
||||
}
|
||||
}
|
||||
|
||||
void test_addFromWatch()
|
||||
{
|
||||
QString source = QFINDTESTDATA("testdata");
|
||||
|
||||
ModFolderModel model(source);
|
||||
|
||||
QCOMPARE(model.size(), 0);
|
||||
|
||||
EXEC_UPDATE_TASK(model.startWatching(), )
|
||||
|
||||
for (auto mod : model.allMods())
|
||||
qDebug() << mod->name();
|
||||
|
||||
// FIXME: It considers every file in the directory as a mod, but we should probably filter that out somehow.
|
||||
QCOMPARE(model.size(), 4);
|
||||
|
||||
model.stopWatching();
|
||||
}
|
||||
|
||||
void test_removeResource()
|
||||
{
|
||||
QString folder_resource = QFINDTESTDATA("testdata/test_folder");
|
||||
QString file_mod = QFINDTESTDATA("testdata/supercoolmod.jar");
|
||||
|
||||
QTemporaryDir tmp;
|
||||
|
||||
ResourceFolderModel model(QDir(tmp.path()));
|
||||
|
||||
QCOMPARE(model.size(), 0);
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.installResource(file_mod), QVERIFY)
|
||||
}
|
||||
|
||||
QCOMPARE(model.size(), 1);
|
||||
qDebug() << "Added first mod.";
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.startWatching(), )
|
||||
}
|
||||
|
||||
QCOMPARE(model.size(), 1);
|
||||
qDebug() << "Started watching the temp folder.";
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.installResource(folder_resource), QVERIFY)
|
||||
}
|
||||
|
||||
QCOMPARE(model.size(), 2);
|
||||
qDebug() << "Added second mod.";
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.uninstallResource("supercoolmod.jar"), QVERIFY);
|
||||
}
|
||||
|
||||
QCOMPARE(model.size(), 1);
|
||||
qDebug() << "Removed first mod.";
|
||||
|
||||
QString mod_file_name {model.at(0).fileinfo().fileName()};
|
||||
QVERIFY(!mod_file_name.isEmpty());
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.uninstallResource(mod_file_name), QVERIFY);
|
||||
}
|
||||
|
||||
QCOMPARE(model.size(), 0);
|
||||
qDebug() << "Removed second mod.";
|
||||
|
||||
model.stopWatching();
|
||||
}
|
||||
|
||||
void test_enable_disable()
|
||||
{
|
||||
QString folder_resource = QFINDTESTDATA("testdata/test_folder");
|
||||
QString file_mod = QFINDTESTDATA("testdata/supercoolmod.jar");
|
||||
|
||||
QTemporaryDir tmp;
|
||||
ResourceFolderModel model(tmp.path());
|
||||
|
||||
QCOMPARE(model.size(), 0);
|
||||
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.installResource(folder_resource), QVERIFY)
|
||||
}
|
||||
{
|
||||
EXEC_UPDATE_TASK(model.installResource(file_mod), QVERIFY)
|
||||
}
|
||||
|
||||
for (auto res : model.all())
|
||||
qDebug() << res->name();
|
||||
|
||||
QCOMPARE(model.size(), 2);
|
||||
|
||||
auto& res_1 = model.at(0).type() != ResourceType::FOLDER ? model.at(0) : model.at(1);
|
||||
auto& res_2 = model.at(0).type() == ResourceType::FOLDER ? model.at(0) : model.at(1);
|
||||
auto id_1 = res_1.internal_id();
|
||||
auto id_2 = res_2.internal_id();
|
||||
bool initial_enabled_res_2 = res_2.enabled();
|
||||
bool initial_enabled_res_1 = res_1.enabled();
|
||||
|
||||
QVERIFY(res_1.type() != ResourceType::FOLDER && res_1.type() != ResourceType::UNKNOWN);
|
||||
qDebug() << "res_1 is of the correct type.";
|
||||
QVERIFY(res_1.enabled());
|
||||
qDebug() << "res_1 is initially enabled.";
|
||||
|
||||
QVERIFY(res_1.enable(EnableAction::TOGGLE));
|
||||
|
||||
QVERIFY(res_1.enabled() == !initial_enabled_res_1);
|
||||
qDebug() << "res_1 got successfully toggled.";
|
||||
|
||||
QVERIFY(res_1.enable(EnableAction::TOGGLE));
|
||||
qDebug() << "res_1 got successfully toggled again.";
|
||||
|
||||
QVERIFY(res_1.enabled() == initial_enabled_res_1);
|
||||
QVERIFY(res_1.internal_id() == id_1);
|
||||
qDebug() << "res_1 got back to its initial state.";
|
||||
|
||||
QVERIFY(!res_2.enable(initial_enabled_res_2 ? EnableAction::ENABLE : EnableAction::DISABLE));
|
||||
QVERIFY(res_2.enabled() == initial_enabled_res_2);
|
||||
QVERIFY(res_2.internal_id() == id_2);
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(ResourceFolderModelTest)
|
||||
|
||||
#include "ResourceFolderModel_test.moc"
|
@ -1,73 +0,0 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
/*
|
||||
* PolyMC - Minecraft Launcher
|
||||
* Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <QTest>
|
||||
#include <QTimer>
|
||||
|
||||
#include "FileSystem.h"
|
||||
|
||||
#include "ResourcePack.h"
|
||||
#include "tasks/LocalResourcePackParseTask.h"
|
||||
|
||||
class ResourcePackParseTest : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
void test_parseZIP()
|
||||
{
|
||||
QString source = QFINDTESTDATA("testdata");
|
||||
|
||||
QString zip_rp = FS::PathCombine(source, "test_resource_pack_idk.zip");
|
||||
ResourcePack pack { QFileInfo(zip_rp) };
|
||||
|
||||
ResourcePackUtils::processZIP(pack);
|
||||
|
||||
QVERIFY(pack.packFormat() == 3);
|
||||
QVERIFY(pack.description() == "um dois, feijão com arroz, três quatro, feijão no prato, cinco seis, café inglês, sete oito, comer biscoito, nove dez comer pastéis!!");
|
||||
}
|
||||
|
||||
void test_parseFolder()
|
||||
{
|
||||
QString source = QFINDTESTDATA("testdata");
|
||||
|
||||
QString folder_rp = FS::PathCombine(source, "test_folder");
|
||||
ResourcePack pack { QFileInfo(folder_rp) };
|
||||
|
||||
ResourcePackUtils::processFolder(pack);
|
||||
|
||||
QVERIFY(pack.packFormat() == 1);
|
||||
QVERIFY(pack.description() == "Some resource pack maybe");
|
||||
}
|
||||
|
||||
void test_parseFolder2()
|
||||
{
|
||||
QString source = QFINDTESTDATA("testdata");
|
||||
|
||||
QString folder_rp = FS::PathCombine(source, "another_test_folder");
|
||||
ResourcePack pack { QFileInfo(folder_rp) };
|
||||
|
||||
ResourcePackUtils::process(pack);
|
||||
|
||||
QVERIFY(pack.packFormat() == 6);
|
||||
QVERIFY(pack.description() == "o quartel pegou fogo, policia deu sinal, acode acode acode a bandeira nacional");
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_GUILESS_MAIN(ResourcePackParseTest)
|
||||
|
||||
#include "ResourcePackParse_test.moc"
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"pack": {
|
||||
"pack_format": 6,
|
||||
"description": "o quartel pegou fogo, policia deu sinal, acode acode acode a bandeira nacional"
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
the best mod.
|
@ -1 +0,0 @@
|
||||
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"pack": {
|
||||
"pack_format": 1,
|
||||
"description": "Some resource pack maybe"
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
|
Binary file not shown.
198
launcher/minecraft/testdata/1.9-simple.json
vendored
198
launcher/minecraft/testdata/1.9-simple.json
vendored
@ -1,198 +0,0 @@
|
||||
{
|
||||
"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
launcher/minecraft/testdata/1.9.json
vendored
529
launcher/minecraft/testdata/1.9.json
vendored
@ -1,529 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
@ -1 +0,0 @@
|
||||
dummy test file.
|
46
launcher/minecraft/testdata/lib-native-arch.json
vendored
46
launcher/minecraft/testdata/lib-native-arch.json
vendored
@ -1,46 +0,0 @@
|
||||
{
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-osx": {
|
||||
"path": "tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-osx.jar",
|
||||
"sha1": "62503ee712766cf77f97252e5902786fd834b8c5",
|
||||
"size": 418331,
|
||||
"url": "https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-osx.jar"
|
||||
},
|
||||
"natives-windows-32": {
|
||||
"path": "tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar",
|
||||
"sha1": "7c6affe439099806a4f552da14c42f9d643d8b23",
|
||||
"size": 386792,
|
||||
"url": "https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-32.jar"
|
||||
},
|
||||
"natives-windows-64": {
|
||||
"path": "tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar",
|
||||
"sha1": "39d0c3d363735b4785598e0e7fbf8297c706a9f9",
|
||||
"size": 463390,
|
||||
"url": "https://libraries.minecraft.net/tv/twitch/twitch-platform/5.16/twitch-platform-5.16-natives-windows-64.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "tv.twitch:twitch-platform:5.16",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows-${arch}"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "linux"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
52
launcher/minecraft/testdata/lib-native.json
vendored
52
launcher/minecraft/testdata/lib-native.json
vendored
@ -1,52 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
11
launcher/minecraft/testdata/lib-simple.json
vendored
11
launcher/minecraft/testdata/lib-simple.json
vendored
@ -1,11 +0,0 @@
|
||||
{
|
||||
"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"
|
||||
}
|
@ -1 +0,0 @@
|
||||
dummy test file.
|
Reference in New Issue
Block a user