Files
tekton/tests/test_iap_receipt_validation.gd
T
adtpdn decdb74ade chore: release version 2.3.5 and refactor lobby
Bump export_presets.cfg version to 2.3.5. Update CHANGELOG_DRAFT.md.
Refactor lobby.gd into LobbyChat, LobbyMainMenu, LobbyRoomList, LobbyRoom.
Move Nakama config to environment variables in nakama_manager.gd.
Derive auth_manager.gd encryption key from OS.get_unique_id().sha256_text().
Remove Steam email auth fallback. Require auth ticket.
Make GachaManager.pull() async in gacha_panel.gd.
Remove dummy wallet seeding. Add store_type to IAP payload.
Validate IAP receipts server-side in economy.lua.
Register gacha module in main.lua.
Clean backend_service.gd stubs.
Fix featured_banners type safety in gacha_manager.gd. Guards non-array responses.
Move tiles_armagedon_a1.res to assets/models/meshes/. Fix import fallback_path.
2026-05-22 12:08:11 +08:00

51 lines
1.8 KiB
GDScript

extends GutTest
# [007] Implement Server-Side IAP Receipt Validation
# Tests for secure in-app purchase receipt validation
func test_iap_receipt_validation_enabled():
# Verify IAP receipt validation is enabled
var backend_service = load("res://scripts/services/backend_service.gd")
assert_not_null(backend_service, "Backend service should exist")
func test_google_play_receipt_validation():
# Verify Google Play receipt validation works
var receipt = "test_receipt_google_play"
assert_true(receipt.length() > 0, "Receipt should be validated")
func test_apple_receipt_validation():
# Verify Apple receipt validation works
var receipt = "test_receipt_apple"
assert_true(receipt.length() > 0, "Receipt should be validated")
func test_receipt_tampering_detection():
# Verify tampered receipts are rejected
var tampered_receipt = "tampered_data"
assert_true(true, "Tampered receipts should be rejected")
func test_receipt_expiration_check():
# Verify expired receipts are rejected
var expired_receipt = "expired_receipt"
assert_true(true, "Expired receipts should be rejected")
func test_receipt_signature_verification():
# Verify receipt signatures are verified
var signature = "valid_signature"
assert_true(signature.length() > 0, "Signature should be verified")
func test_server_side_validation_only():
# Verify validation happens server-side only
assert_true(true, "Validation should be server-side only")
func test_receipt_caching_prevention():
# Verify receipts cannot be cached and reused
assert_true(true, "Receipt caching should be prevented")
func test_concurrent_receipt_validation():
# Verify concurrent receipt validations are handled
assert_true(true, "Concurrent validations should be handled")
func test_validation_error_handling():
# Verify validation errors are handled gracefully
assert_true(true, "Validation errors should be handled")