# test_guild_mark_uploader_parity.gd —— 40250 行会图标与战旗上传回归测试 extends SceneTree const SystemClass = preload("res://guild_mark_uploader_system.gd") var _passed: int = 0 var _failed: int = 0 func _assert(cond: bool, msg: String) -> void: if cond: _passed += 1 print(" [PASS] %s" % msg) else: _failed += 1 printerr(" [FAIL] %s" % msg) func _init() -> void: print("\n=== Running test_guild_mark_uploader_parity (Batch 30 Direction 1) ===") _test_authority_and_format_validation() _test_mark_dimension_checks() _test_symbol_dimension_checks() _test_successful_mark_and_symbol_upload() print("\n=== Result: %d Passed, %d Failed ===" % [_passed, _failed]) if _failed == 0: print("ALL TESTS PASSED!\n") else: printerr("SOME TESTS FAILED!\n") quit(0 if _failed == 0 else 1) func _test_authority_and_format_validation() -> void: print("\n--- Test 1: Authority & Format Verification ---") var up = SystemClass.new() # 1. Non-guild master rejected var r_auth = up.upload_guild_mark(101, false, 16, 12, "bmp") _assert(r_auth["error_code"] == SystemClass.UploadError.ERROR_NOT_GUILD_MASTER, "Reject upload if not guild master") # 2. Unsupported format (PNG/JPG) var r_fmt = up.upload_guild_mark(101, true, 16, 12, "png") _assert(r_fmt["error_code"] == SystemClass.UploadError.ERROR_UNSUPPORTED_FORMAT, "Reject non-BMP formats") func _test_mark_dimension_checks() -> void: print("\n--- Test 2: Mark (16x12) Dimensions Checking ---") var up = SystemClass.new() # Wrong width (20 != 16) var r_w = up.upload_guild_mark(101, true, 20, 12, "bmp") _assert(r_w["error_code"] == SystemClass.UploadError.ERROR_WIDTH, "Reject mark width != 16") # Wrong height (16 != 12) var r_h = up.upload_guild_mark(101, true, 16, 16, "bmp") _assert(r_h["error_code"] == SystemClass.UploadError.ERROR_HEIGHT, "Reject mark height != 12") func _test_symbol_dimension_checks() -> void: print("\n--- Test 3: Symbol (64x128) Dimensions Checking ---") var up = SystemClass.new() # Wrong symbol width (32 != 64) var r_w = up.upload_guild_symbol(101, true, 32, 128, "bmp") _assert(r_w["error_code"] == SystemClass.UploadError.ERROR_WIDTH, "Reject symbol width != 64") # Wrong symbol height (64 != 128) var r_h = up.upload_guild_symbol(101, true, 64, 64, "bmp") _assert(r_h["error_code"] == SystemClass.UploadError.ERROR_HEIGHT, "Reject symbol height != 128") func _test_successful_mark_and_symbol_upload() -> void: print("\n--- Test 4: Successful Upload & Cache Retrieval ---") var up = SystemClass.new() var dummy_pixels = PackedByteArray([0xFF, 0x00, 0xFF, 0x00]) # Upload 16x12 Mark var r_mark = up.upload_guild_mark(101, true, 16, 12, "bmp", dummy_pixels) _assert(r_mark["success"] == true, "Uploaded 16x12 mark successfully") var m = up.get_guild_mark(101) _assert(m != null, "Mark cached in manager") _assert(m.width == 16 and m.height == 12, "Cached mark dimensions match 16x12") # Upload 64x128 Symbol var r_sym = up.upload_guild_symbol(101, true, 64, 128, "bmp", dummy_pixels) _assert(r_sym["success"] == true, "Uploaded 64x128 symbol successfully") var s = up.get_guild_symbol(101) _assert(s != null, "Symbol cached in manager") _assert(s.width == 64 and s.height == 128, "Cached symbol dimensions match 64x128")