DEV Community

Ramkumar SG for RippleX Developers

Posted on

Account Permission Delegation - Testcases

Category Test Count
Core Functional 112
Adversarial / Security 48
Cross-Feature Interactions 19
Total 179

Core Functional

  1. Test DelegateSet with permissions field
  2. Test DelegateSet skipped before payment
  3. Test DelegateSet without permissions field
  4. Test DelegateSet with empty list
  5. Test DelegateSet with permissions as non-JSON
  6. Test DelegateSet by non-existing account
  7. Test DelegateSet by non-existing authorize account
  8. Test DelegateSet by account with deposit auth enabled
  9. Test DelegateSet and submit different transaction
  10. Test DelegateSet and submit transaction as original account
  11. Test DelegateSet with same permission
  12. Test DelegateSet to self
  13. Test DelegateSet with invalid permission
  14. Test DelegateSet with restricted permission
  15. Test DelegateSet with 10 permissions
  16. Test DelegateSet with more than 10 permissions
  17. Test DelegateSet with multiple permissions
  18. Test DelegateSet and delete delegated account
  19. Test DelegateSet and delete delegating account
  20. Test DelegateSet and make pay self
  21. Test DelegateSet and make pay delegated account without deposit auth
  22. Test DelegateSet and make pay delegated account with deposit auth
  23. Test DelegateSet authorize multiple users
  24. Test DelegateSet and submit AccountSet as original account
  25. Test DelegateSet and make payment
  26. Test DelegateSet and offer create
  27. Test DelegateSet and create and cash check
  28. Test DelegateSet and create and cancel check
  29. Test DelegateSet and create and finish escrow
  30. Test DelegateSet and create and cancel escrow
  31. Test DelegateSet and create and claim paychan
  32. Test DelegateSet and create and fund paychan
  33. Test DelegateSet and payment on ticket
  34. Test DelegateSet and create trustline
  35. Test DelegateSet and clawback
  36. Test DelegateSet and AMM create
  37. Test DelegateSet and AMM deposit
  38. Test DelegateSet multiple times with same permission
  39. Test DelegateSet remove permission add same permission
  40. Test DelegateSet change in permission
  41. Test DelegateSet and update with invalid permission
  42. Test DelegateSet granular permission TrustlineAuthorize
  43. Test DelegateSet granular permission TrustlineFreeze and TrustlineUnfreeze individual freeze
  44. Test DelegateSet granular permission TrustlineFreeze global freeze
  45. Test DelegateSet and payment with deep freeze
  46. Test DelegateSet granular permission AccountDomainSet
  47. Test DelegateSet granular permission AccountEmailHashSet
  48. Test DelegateSet granular permission AccountMessageKeySet
  49. Test DelegateSet granular permission AccountTransferRateSet
  50. Test DelegateSet granular permission AccountTickSizeSet
  51. Test DelegateSet granular permission PaymentMint
  52. Test DelegateSet granular permission PaymentBurn
  53. Test DelegateSet granular permission MPTokenIssuanceLock and MPTokenIssuanceUnlock
  54. Test DelegateSet on account with master key disabled
  55. Test DelegateSet with empty Permissions revokes delegate authority
  56. Test DelegateSet with NotDelegable permission rejected
  57. Test DelegateSet with empty Permissions when no existing Delegate object is rejected
  58. Test Delegate object appears in authorized account's account_objects
  59. Test Delegated payment with basic permission succeeds
  60. Test Delegated unauthorized tx type returns terNO_DELEGATE_PERMISSION
  61. Test Delegated payment consumes delegate fee, not source fee
  62. Test AccountDelete on authorized account removes Delegate from both directories
  63. Test Token escrow — delegate create and finish escrow (IOU)
  64. Test Token escrow — delegate create and finish escrow (MPT)
  65. Test Circular delegation — positive scenario
  66. Test Circular delegation — negative scenario
  67. Test Chain delegation — positive scenario
  68. Test Chain delegation — negative scenario
  69. Test Delegated account with multiple signers and master key disabled
  70. Test Delegated account with multiple signers and master key not disabled
  71. Test Authorized account with multiple signers and master key disabled
  72. Test Authorized account with multiple signers and master key not disabled
  73. Test DelegateSet with base reserve on delegating account
  74. Test DelegateSet with base reserve on delegated account
  75. Test DelegateSet with no funds for fee on delegated account
  76. Test Delegation to Batch tfAllOrNothing — all payments (outer transaction)
  77. Test Delegation to Batch tfAllOrNothing — all payments (inner transaction)
  78. Test Delegate AccountSet WalletLocator granular permission
  79. Test Delegate AccountSet NFTokenMinter granular permission
  80. Test Delegate AccountSet combined field and flag
  81. Test Delegate AccountSet ClearFlag granular permission
  82. Test Delegate AccountSet SetFlag with granular permission
  83. Test Delegate granular permission exceeds scope
  84. Test Delegate multiple granular permissions with no full AccountSet
  85. Test Delegate AccountSet restricted field returns correct error code
  86. Test Delegate transaction with fee greater than account balance
  87. Test Delegate payment amount exceeds balance
  88. Test Delegate reserve manipulation via trustline creation
  89. Test Delegate using regular key instead of master
  90. Test Delegator regular key change during active delegation
  91. Test Batch tfAllOrNothing with payment and DelegateSet
  92. Test DelegateSet with Delegate field set
  93. Test Delegate trustline freeze without permission
  94. Test Delegate bypass RequireAuth flag
  95. Test Delegate permission change removes old permission
  96. Test Delegate payment with deposit auth bypass attempt
  97. Test Delegate offer crossing with unauthorized account
  98. Test Delegate conflicting granular permissions
  99. Test Delegate all granular AccountSet permissions — no flag access
  100. Test Delegate with zero-amount payment
  101. Test Delegate multi-signed transaction
  102. Test Delegate with multi-signers on delegated and authorized account
  103. Test Payment offline signing
  104. Test Delegate payment with offline signing
  105. Test Delegate payment by third party with offline signing
  106. Test account_tx delegate_filter=actor returns delegated txns
  107. Test account_tx delegate_filter=authorizer returns delegated txns
  108. Test account_tx counter_party narrows results
  109. Test account_tx delegate_filter=actor returns empty for authorizer
  110. Test account_tx counter_party no-match returns empty
  111. Test account_tx with malformed delegate returns invalidParams
  112. Test account_tx with malformed counter_party returns actMalformed

Adversarial / Security

  1. Test DelegateSet replaces existing permissions (silently revoking dropped)
  2. Test DelegateSet to self rejected with temMALFORMED
  3. Test DelegateSet with duplicate PermissionValues rejected
  4. Test DelegateSet with eleven permissions rejected
  5. Test 3.2.0 Vault and Batch tx types are not delegable
  6. Test 3.2.0 Loan tx types are not delegable
  7. Test Delegated Batch outer returns terNO_DELEGATE_PERMISSION
  8. Test Account SignerList cannot authorize delegated tx (returns tefNOT_MULTI_SIGNING)
  9. Test Delegate SignerList can authorize delegated tx
  10. Test Delegated tx signed by delegate's master key succeeds
  11. Test PR #7064 — delegate sign_for on own delegated tx returns invalidParams
  12. Test PR #7064 — delegator can be signer when in delegate's SignerList
  13. Test Delegate to self rejected with temMALFORMED
  14. Test DelegateSet with duplicate permission rejected
  15. Test DelegateSet with unknown PermissionValue rejected
  16. Test DelegateSet to non-existent account returns tecNO_TARGET
  17. Test Batch transaction type is not delegable
  18. Test Delegated tx after revocation returns terNO_DELEGATE_PERMISSION
  19. Test Delegated payment works after master key disabled
  20. Test Delegate field set to own account rejected with temBAD_SIGNER
  21. Test Delegated no-op AccountSet rejected
  22. Test Delegated no-op TrustSet rejected
  23. Test Delegated SignerListSet rejected at preflight
  24. Test Delegated SetRegularKey rejected at preflight
  25. Test AccountSet WalletSize field rejected under granular AccountDomainSet delegate
  26. Test TrustlineFreeze rejects disallowed flag tfSetNoRipple
  27. Test TrustlineFreeze rejects disallowed field QualityIn
  28. Test PaymentBurn rejects disallowed flag tfPartialPayment
  29. Test PaymentBurn rejects disallowed field Paths
  30. Test Union of two granular permissions still forbids fields ungranted by either
  31. Test Union of Freeze and Unfreeze widens allowed flags but not fields
  32. Test AccountDomainSet delegate cannot smuggle SetFlag asfRequireAuth
  33. Test AccountDomainSet delegate cannot smuggle SetFlag asfDisableMaster
  34. Test AccountDomainSet delegate cannot smuggle NFTokenMinter via WalletSize
  35. Test MPTokenIssuanceLock rejects disallowed field DomainID
  36. Test MPTokenIssuanceLock rejects unlock flag
  37. Test PaymentBurn delegate cannot flip issuer to mint
  38. Test PaymentMint delegate cannot flip issuer to burn
  39. Test PaymentBurn delegate rejected when holder balance is zero
  40. Test PaymentMint delegate rejected when destination lacks trustline
  41. Test Granular Mint/Burn do not authorize XRP payment
  42. Test DelegateSet rejects truncating PermissionValue
  43. Test PR #6126 — actor filter ignores regular-key-signed payment
  44. Test PR #6126 — actor filter ignores multi-sig-signed non-delegated payment
  45. Test PR #6126 — delegate marker without delegate param rejected
  46. Test PR #6126 — non-delegate marker with delegate param rejected
  47. Test PR #6126 — delegated tx with multi-signed delegatee matches both filters
  48. Test PR #6126 — delegate actor filter paginates all delegated txns

Cross-Feature Interactions

  1. Test Delegate as outer account executes delegated inner (succeeds)
  2. Test Delegate as BatchSigner authorizes delegated inner (succeeds)
  3. Test Delegated inner without BatchSigner rejected with temBAD_SIGNER
  4. Test Delegated inner signed by account holder rejected with temBAD_SIGNER
  5. Test Delegate without permission — inner fails and Batch rolls back
  6. Test Delegate ConfidentialMPTSend — basic
  7. Test Delegate ConfidentialMPTSend — missing permission
  8. Test Delegate ConfidentialMPTConvert
  9. Test Delegate ConfidentialMPTMergeInbox
  10. Test Delegate ConfidentialMPTConvertBack
  11. Test Delegate ConfidentialMPTClawback by issuer
  12. Test Delegate — send permission only cannot ConvertBack
  13. Test Delegate — ConvertBack permission only cannot send
  14. Test Delegate ConfidentialMPTClawback with non-issuer account rejected at preflight
  15. Test Delegate — revoked permission blocks subsequent use
  16. Test Delegate — self-delegation rejected
  17. Test Delegate — ConfidentialMPTSend with proof over delegate keys rejected
  18. Test PR #7640 — delegated payment rejected with telCAN_NOT_QUEUE when ledger full
  19. Test PR #7640 — delegated payment succeeds when paying open ledger fee

Top comments (0)