Indent every script with tabs, like the Godot editor does
This commit is contained in:
1 parent
8c1987807c
commit
bad4b3ad8b
35 files changed
+1653
-1653
No files matched your search
@@ -7,194 +7,194 @@ var _window: Control
|
||||
|
||||
|
||||
func before_test() -> void:
|
||||
_snapshot = AutoloadSnapshot.take([Settings])
|
||||
Settings.currently_syncing = false
|
||||
_server = FakeHttpTransport.new().install()
|
||||
_server.respond_bytes("/sync", PackedByteArray())
|
||||
_runner = scene_runner("res://SyncWindow.tscn")
|
||||
_window = _runner.scene()
|
||||
_snapshot = AutoloadSnapshot.take([Settings])
|
||||
Settings.currently_syncing = false
|
||||
_server = FakeHttpTransport.new().install()
|
||||
_server.respond_bytes("/sync", PackedByteArray())
|
||||
_runner = scene_runner("res://SyncWindow.tscn")
|
||||
_window = _runner.scene()
|
||||
|
||||
|
||||
func after_test() -> void:
|
||||
_server.uninstall()
|
||||
_snapshot.restore()
|
||||
_server.uninstall()
|
||||
_snapshot.restore()
|
||||
|
||||
|
||||
func _node(unique_name: String) -> Control:
|
||||
return _window.get_node("%" + unique_name)
|
||||
return _window.get_node("%" + unique_name)
|
||||
|
||||
|
||||
func _finish_sync(result: Dictionary) -> void:
|
||||
_server.respond_json("/sync/progress", result)
|
||||
_runner.invoke("_on_sync_timeout")
|
||||
_server.respond_json("/sync/progress", result)
|
||||
_runner.invoke("_on_sync_timeout")
|
||||
|
||||
|
||||
func _empty_result() -> Dictionary:
|
||||
return {
|
||||
"soundtracks_added": [],
|
||||
"soundtracks_re_added": [],
|
||||
"soundtracks_changed_title": {},
|
||||
"soundtracks_changed_content": [],
|
||||
"soundtracks_removed": [],
|
||||
"catched_errors": [],
|
||||
"total_time": "00:00:03",
|
||||
}
|
||||
return {
|
||||
"soundtracks_added": [],
|
||||
"soundtracks_re_added": [],
|
||||
"soundtracks_changed_title": {},
|
||||
"soundtracks_changed_content": [],
|
||||
"soundtracks_removed": [],
|
||||
"catched_errors": [],
|
||||
"total_time": "00:00:03",
|
||||
}
|
||||
|
||||
|
||||
func test_start_sync_asks_server_and_shows_progress() -> void:
|
||||
monitor_signals(_window, false)
|
||||
monitor_signals(_window, false)
|
||||
|
||||
_runner.invoke("start_sync")
|
||||
_runner.invoke("start_sync")
|
||||
|
||||
assert_array(_server.requested_paths).contains_exactly(["/sync"])
|
||||
assert_bool(Settings.currently_syncing).is_true()
|
||||
assert_bool(_node("ProgressHBoxContainer").visible).is_true()
|
||||
assert_str(_node("SyncTitleLabel").text).is_equal("Sync in Progress")
|
||||
await assert_signal(_window).is_emitted("sync_started")
|
||||
assert_array(_server.requested_paths).contains_exactly(["/sync"])
|
||||
assert_bool(Settings.currently_syncing).is_true()
|
||||
assert_bool(_node("ProgressHBoxContainer").visible).is_true()
|
||||
assert_str(_node("SyncTitleLabel").text).is_equal("Sync in Progress")
|
||||
await assert_signal(_window).is_emitted("sync_started")
|
||||
|
||||
|
||||
func test_start_sync_does_nothing_while_already_syncing() -> void:
|
||||
Settings.currently_syncing = true
|
||||
Settings.currently_syncing = true
|
||||
|
||||
_runner.invoke("start_sync")
|
||||
_runner.invoke("start_sync")
|
||||
|
||||
assert_array(_server.requested_paths).is_empty()
|
||||
assert_array(_server.requested_paths).is_empty()
|
||||
|
||||
|
||||
func test_progress_updates_progress_bar() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
_server.respond_json("/sync/progress", {"progress": "42", "time_spent": "00:00:12"})
|
||||
_runner.invoke("start_sync")
|
||||
_server.respond_json("/sync/progress", {"progress": "42", "time_spent": "00:00:12"})
|
||||
|
||||
_runner.invoke("_on_sync_timeout")
|
||||
_runner.invoke("_on_sync_timeout")
|
||||
|
||||
assert_float(_node("SyncProgressBar").value).is_equal(42.0)
|
||||
assert_str(_node("SyncTime").text).is_equal("00:00:12")
|
||||
assert_float(_node("SyncProgressBar").value).is_equal(42.0)
|
||||
assert_str(_node("SyncTime").text).is_equal("00:00:12")
|
||||
|
||||
|
||||
func test_finished_sync_shows_only_sections_with_changes() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
monitor_signals(_window, false)
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross", "Xenogears"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
_runner.invoke("start_sync")
|
||||
monitor_signals(_window, false)
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross", "Xenogears"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
assert_bool(_node("SoundtracksAddedVBox").visible).is_true()
|
||||
assert_bool(_node("SoundtracksRemovedVBox").visible).is_true()
|
||||
assert_bool(_node("SoundtracksReAddedVBox").visible).is_false()
|
||||
assert_bool(_node("SoundtracksChangedTitleVBox").visible).is_false()
|
||||
assert_bool(_node("NoChangesLabel").visible).is_false()
|
||||
# Header plus one label per soundtrack
|
||||
assert_int(_node("SoundtracksAddedVBox").get_child_count()).is_equal(3)
|
||||
assert_str(_node("SyncTime").text).is_equal("Total time: 00:00:03")
|
||||
assert_bool(Settings.currently_syncing).is_false()
|
||||
await assert_signal(_window).is_emitted("sync_finished")
|
||||
assert_bool(_node("SoundtracksAddedVBox").visible).is_true()
|
||||
assert_bool(_node("SoundtracksRemovedVBox").visible).is_true()
|
||||
assert_bool(_node("SoundtracksReAddedVBox").visible).is_false()
|
||||
assert_bool(_node("SoundtracksChangedTitleVBox").visible).is_false()
|
||||
assert_bool(_node("NoChangesLabel").visible).is_false()
|
||||
# Header plus one label per soundtrack
|
||||
assert_int(_node("SoundtracksAddedVBox").get_child_count()).is_equal(3)
|
||||
assert_str(_node("SyncTime").text).is_equal("Total time: 00:00:03")
|
||||
assert_bool(Settings.currently_syncing).is_false()
|
||||
await assert_signal(_window).is_emitted("sync_finished")
|
||||
|
||||
|
||||
func test_separator_shown_only_between_visible_sections() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
assert_bool(_node("SoundtracksAddedSeparator").visible).is_true()
|
||||
assert_bool(_node("SoundtracksRemovedSeparator").visible).is_false()
|
||||
assert_bool(_node("SoundtracksAddedSeparator").visible).is_true()
|
||||
assert_bool(_node("SoundtracksRemovedSeparator").visible).is_false()
|
||||
|
||||
|
||||
func test_changed_titles_list_old_and_new_title() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_changed_title = {"FF7": "Final Fantasy VII"}
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_changed_title = {"FF7": "Final Fantasy VII"}
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
var vbox: Control = _node("SoundtracksChangedTitleVBox")
|
||||
assert_bool(vbox.visible).is_true()
|
||||
assert_str((vbox.get_child(1) as ListRow).text).is_equal(
|
||||
"FF7\nchanged title to\nFinal Fantasy VII")
|
||||
var vbox: Control = _node("SoundtracksChangedTitleVBox")
|
||||
assert_bool(vbox.visible).is_true()
|
||||
assert_str((vbox.get_child(1) as ListRow).text).is_equal(
|
||||
"FF7\nchanged title to\nFinal Fantasy VII")
|
||||
|
||||
|
||||
func test_no_changes_shows_no_changes_label() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
_runner.invoke("start_sync")
|
||||
|
||||
_finish_sync(_empty_result())
|
||||
_finish_sync(_empty_result())
|
||||
|
||||
assert_bool(_node("NoChangesLabel").visible).is_true()
|
||||
assert_bool(_node("NoChangesLabel").visible).is_true()
|
||||
|
||||
|
||||
func test_errors_are_listed() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.catched_errors = ["Could not read tags in broken.mp3"]
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.catched_errors = ["Could not read tags in broken.mp3"]
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
assert_bool(_node("CatchedErrorsVBox").visible).is_true()
|
||||
assert_bool(_node("CatchedErrorsVBox").visible).is_true()
|
||||
|
||||
|
||||
func test_reopening_after_sync_shows_result_without_syncing_again() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
_finish_sync(_empty_result())
|
||||
_runner.invoke("start_sync")
|
||||
_finish_sync(_empty_result())
|
||||
|
||||
_runner.invoke("start_sync")
|
||||
_runner.invoke("start_sync")
|
||||
|
||||
assert_int(_server.count("/sync")).is_equal(1)
|
||||
assert_str(_node("SyncTitleLabel").text).is_equal("Sync Result")
|
||||
assert_int(_server.count("/sync")).is_equal(1)
|
||||
assert_str(_node("SyncTitleLabel").text).is_equal("Sync Result")
|
||||
|
||||
|
||||
func test_errors_section_has_errors_header() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.catched_errors = ["Could not read tags in broken.mp3"]
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.catched_errors = ["Could not read tags in broken.mp3"]
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
assert_str((_node("CatchedErrorsVBox").get_child(0) as Label).text).is_equal("Errors")
|
||||
assert_str((_node("CatchedErrorsVBox").get_child(0) as Label).text).is_equal("Errors")
|
||||
|
||||
|
||||
func test_long_names_wrap_instead_of_widening_the_window() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var long_name: String = "The Legend of Zelda: Breath of the Wild Original Soundtrack"
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = [long_name]
|
||||
result.soundtracks_re_added = [long_name]
|
||||
result.soundtracks_changed_content = [long_name]
|
||||
result.soundtracks_removed = [long_name]
|
||||
result.soundtracks_changed_title = {long_name: long_name}
|
||||
result.catched_errors = [long_name + " could not be read"]
|
||||
_runner.invoke("start_sync")
|
||||
var long_name: String = "The Legend of Zelda: Breath of the Wild Original Soundtrack"
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = [long_name]
|
||||
result.soundtracks_re_added = [long_name]
|
||||
result.soundtracks_changed_content = [long_name]
|
||||
result.soundtracks_removed = [long_name]
|
||||
result.soundtracks_changed_title = {long_name: long_name}
|
||||
result.catched_errors = [long_name + " could not be read"]
|
||||
|
||||
_finish_sync(result)
|
||||
await _runner.simulate_frames(2)
|
||||
_finish_sync(result)
|
||||
await _runner.simulate_frames(2)
|
||||
|
||||
# The minimum width is what the content needs; wider than the panel it would stick out
|
||||
var panel_width: float = (_window.get_node("SyncPanel") as Control).size.x
|
||||
assert_float(_node("SyncHBoxContainer").get_combined_minimum_size().x) \
|
||||
.is_less(panel_width)
|
||||
assert_float(_node("CatchedErrorsVBox").get_combined_minimum_size().x) \
|
||||
.is_less(panel_width)
|
||||
# The minimum width is what the content needs; wider than the panel it would stick out
|
||||
var panel_width: float = (_window.get_node("SyncPanel") as Control).size.x
|
||||
assert_float(_node("SyncHBoxContainer").get_combined_minimum_size().x) \
|
||||
.is_less(panel_width)
|
||||
assert_float(_node("CatchedErrorsVBox").get_combined_minimum_size().x) \
|
||||
.is_less(panel_width)
|
||||
|
||||
|
||||
func test_visible_columns_share_the_width_equally() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross", "Xenoblade Chronicles X Original Soundtrack"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_added = ["Chrono Cross", "Xenoblade Chronicles X Original Soundtrack"]
|
||||
result.soundtracks_removed = ["Bad Rip"]
|
||||
|
||||
_finish_sync(result)
|
||||
await _runner.simulate_frames(2)
|
||||
_finish_sync(result)
|
||||
await _runner.simulate_frames(2)
|
||||
|
||||
assert_float(_node("SoundtracksAddedVBox").size.x).is_equal_approx(
|
||||
_node("SoundtracksRemovedVBox").size.x, 1.0)
|
||||
assert_float(_node("SoundtracksAddedVBox").size.x).is_equal_approx(
|
||||
_node("SoundtracksRemovedVBox").size.x, 1.0)
|
||||
|
||||
|
||||
func test_column_headers() -> void:
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_re_added = ["Super Metroid"]
|
||||
_runner.invoke("start_sync")
|
||||
var result: Dictionary = _empty_result()
|
||||
result.soundtracks_re_added = ["Super Metroid"]
|
||||
|
||||
_finish_sync(result)
|
||||
_finish_sync(result)
|
||||
|
||||
assert_str((_node("SoundtracksReAddedVBox").get_child(0) as Label).text).is_equal("Re-added")
|
||||
assert_str((_node("SoundtracksReAddedVBox").get_child(0) as Label).text).is_equal("Re-added")
|
||||
Reference in new issue
Block a user