Add tests for SetRemarks (#491)

This commit is contained in:
tequ
2025-04-18 08:34:44 +09:00
committed by GitHub
parent 989532702d
commit 4221dcf568
2 changed files with 7 additions and 9 deletions

View File

@@ -25,6 +25,7 @@
#include <ripple/protocol/Indexes.h> #include <ripple/protocol/Indexes.h>
#include <ripple/protocol/PublicKey.h> #include <ripple/protocol/PublicKey.h>
#include <ripple/protocol/Quality.h> #include <ripple/protocol/Quality.h>
#include <ripple/protocol/TxFlags.h>
#include <ripple/protocol/st.h> #include <ripple/protocol/st.h>
namespace ripple { namespace ripple {
@@ -313,22 +314,21 @@ SetRemarks::preclaim(PreclaimContext const& ctx)
TER TER
SetRemarks::doApply() SetRemarks::doApply()
{ {
auto j = ctx_.journal;
Sandbox sb(&ctx_.view()); Sandbox sb(&ctx_.view());
auto const sle = sb.read(keylet::account(account_)); auto const sle = sb.read(keylet::account(account_));
if (!sle) if (!sle)
return terNO_ACCOUNT; return tefINTERNAL;
auto const objID = ctx_.tx[sfObjectID]; auto const objID = ctx_.tx[sfObjectID];
auto sleO = sb.peek(keylet::unchecked(objID)); auto sleO = sb.peek(keylet::unchecked(objID));
if (!sleO) if (!sleO)
return terNO_ACCOUNT; return tefINTERNAL;
std::optional<AccountID> issuer = getRemarksIssuer(sleO); std::optional<AccountID> issuer = getRemarksIssuer(sleO);
if (!issuer || *issuer != account_) if (!issuer || *issuer != account_)
return tecNO_PERMISSION; return tefINTERNAL;
auto const& remarksTxn = ctx_.tx.getFieldArray(sfRemarks); auto const& remarksTxn = ctx_.tx.getFieldArray(sfRemarks);
@@ -400,7 +400,7 @@ SetRemarks::doApply()
} }
if (newRemarks.size() > 32) if (newRemarks.size() > 32)
return tecTOO_MANY_REMARKS; return tefINTERNAL;
if (newRemarks.empty() && sleO->isFieldPresent(sfRemarks)) if (newRemarks.empty() && sleO->isFieldPresent(sfRemarks))
sleO->makeFieldAbsent(sfRemarks); sleO->makeFieldAbsent(sfRemarks);

View File

@@ -377,10 +377,8 @@ struct SetRemarks_test : public beast::unit_test::suite
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// doApply // doApply
// terNO_ACCOUNT // All checks in doApply are done in preclaim.
// tecNO_TARGET BEAST_EXPECT(1);
// tecNO_PERMISSION
// tecTOO_MANY_REMARKS
} }
void void