1 parent
ebf8ff7869
commit
41599fa82f
67 files changed
+8775
-4
No files matched your search
@@ -0,0 +1,119 @@
|
||||
import QtQuick
|
||||
import QtTest
|
||||
import BiLauncher
|
||||
|
||||
// Диалоги с настоящим LauncherBackend. Данные для них подготавливает tst_qml.cpp:
|
||||
// кеш манифеста версий (1.20.1, 25w33a, b1.7.3), установленная 1.20.1,
|
||||
// кеш каталога сезонных сборок с одной сборкой. Сеть закрыта FakeInternet.
|
||||
TestCase {
|
||||
id: testCase
|
||||
name: "Dialogs"
|
||||
width: 1280
|
||||
height: 720
|
||||
visible: true
|
||||
when: windowShown
|
||||
|
||||
LauncherBackend { id: launcherBackend }
|
||||
|
||||
Component { id: versionPickerComponent; VersionPickerDialog { backend: launcherBackend } }
|
||||
Component { id: javaPickerComponent; JavaPickerDialog { backend: launcherBackend } }
|
||||
Component { id: buildsComponent; BuildsDialog { backend: launcherBackend } }
|
||||
Component { id: seasonalComponent; SeasonalBuildsDialog { backend: launcherBackend } }
|
||||
Component { id: signalSpy; SignalSpy {} }
|
||||
|
||||
function openAndWait(dialog) {
|
||||
tryVerify(() => dialog.opened, 3000, "диалог не открылся")
|
||||
}
|
||||
|
||||
function test_versionPickerFiltersCatalog() {
|
||||
const picker = createTemporaryObject(versionPickerComponent, testCase)
|
||||
verify(picker)
|
||||
tryVerify(() => launcherBackend.versionCatalog.length >= 3)
|
||||
|
||||
picker.openFor("1.20.1")
|
||||
openAndWait(picker)
|
||||
compare(picker.category, "release")
|
||||
compare(picker.visibleEntries.length, 1)
|
||||
compare(picker.visibleEntries[0].id, "1.20.1")
|
||||
verify(picker.visibleEntries[0].installed)
|
||||
compare(picker.indexOfSelected(), 0)
|
||||
|
||||
picker.category = "snapshot"
|
||||
compare(picker.visibleEntries.length, 1)
|
||||
compare(picker.visibleEntries[0].id, "25w33a")
|
||||
compare(picker.categoryOf("b1.7.3"), "old_beta")
|
||||
compare(picker.categoryOf("no-such"), "release")
|
||||
|
||||
picker.category = "release"
|
||||
picker.filterText = "1.19"
|
||||
compare(picker.visibleEntries.length, 0)
|
||||
picker.filterText = ""
|
||||
picker.installedOnly = true
|
||||
compare(picker.visibleEntries.length, 1)
|
||||
|
||||
const chosen = signalSpy.createObject(testCase, { target: picker, signalName: "versionChosen" })
|
||||
picker.selectedId = "1.20.1"
|
||||
picker.acceptSelection()
|
||||
compare(chosen.count, 1)
|
||||
compare(chosen.signalArguments[0][0], "1.20.1")
|
||||
tryVerify(() => !picker.visible)
|
||||
}
|
||||
|
||||
function test_javaPickerOpensWithRequirement() {
|
||||
const picker = createTemporaryObject(javaPickerComponent, testCase)
|
||||
verify(picker)
|
||||
picker.openFor("", 17)
|
||||
openAndWait(picker)
|
||||
compare(picker.requiredMajor, 17)
|
||||
compare(picker.category, "java")
|
||||
compare(picker.selectedEntry, null)
|
||||
const chosen = signalSpy.createObject(testCase, { target: picker, signalName: "runtimeChosen" })
|
||||
picker.acceptSelection() // ничего не выбрано — ничего не происходит
|
||||
compare(chosen.count, 0)
|
||||
picker.close()
|
||||
}
|
||||
|
||||
function test_buildsDialogEditsBackend() {
|
||||
const dialog = createTemporaryObject(buildsComponent, testCase)
|
||||
verify(dialog)
|
||||
const before = launcherBackend.customBuildNames.length
|
||||
const name = dialog.newBuildName()
|
||||
verify(name.length > 0)
|
||||
verify(launcherBackend.customBuildNames.indexOf(name) === -1)
|
||||
|
||||
launcherBackend.addCustomBuild(name, "", "1.20.1")
|
||||
tryVerify(() => !launcherBackend.busy, 20000)
|
||||
compare(launcherBackend.customBuildNames.length, before + 1)
|
||||
|
||||
dialog.open()
|
||||
openAndWait(dialog)
|
||||
dialog.selectBuild(before)
|
||||
compare(dialog.editIndex, before)
|
||||
dialog.commit({ serverUrl: "play.example.com" })
|
||||
compare(launcherBackend.customBuildAt(before).serverUrl, "play.example.com")
|
||||
verify(dialog.newBuildName() !== name)
|
||||
dialog.close()
|
||||
}
|
||||
|
||||
function test_seasonalDialogShowsCatalog() {
|
||||
const dialog = createTemporaryObject(seasonalComponent, testCase)
|
||||
verify(dialog)
|
||||
dialog.openCatalog()
|
||||
openAndWait(dialog)
|
||||
tryVerify(() => launcherBackend.seasonalCatalog.length === 1)
|
||||
const entry = launcherBackend.seasonalCatalog[0]
|
||||
compare(entry.id, "season-qml")
|
||||
compare(dialog.cellText(entry, "loaderLabel"), entry.loaderTitle + " 0.16.10")
|
||||
compare(dialog.formatMb(3 * 1024 * 1024), "3.0")
|
||||
compare(dialog.formatMb(0), "")
|
||||
dialog.close()
|
||||
}
|
||||
|
||||
function test_languageSwitchUpdatesTexts() {
|
||||
const en = Loc.t.app.tooltip.openMods
|
||||
launcherBackend.updateSettings({ language: "ru" })
|
||||
verify(Loc.t.app.tooltip.openMods !== en)
|
||||
launcherBackend.updateSettings({ language: "en" })
|
||||
compare(Loc.t.app.tooltip.openMods, en)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user