From f060820f3b4326ed2db45e9a04f9eb8b1cb7b210 Mon Sep 17 00:00:00 2001 From: Edward Hennis Date: Tue, 7 Jun 2016 17:13:12 -0400 Subject: [PATCH] Sign-and-submit: Test escalated fee autofill (RIPD-1188) --- src/ripple/app/tests/Regression_test.cpp | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/ripple/app/tests/Regression_test.cpp b/src/ripple/app/tests/Regression_test.cpp index 2c1846dfd8..1d11586749 100644 --- a/src/ripple/app/tests/Regression_test.cpp +++ b/src/ripple/app/tests/Regression_test.cpp @@ -19,6 +19,8 @@ #include #include #include +#include +#include namespace ripple { namespace test { @@ -157,11 +159,53 @@ struct Regression_test : public beast::unit_test::suite test256r1key (becky); } + void testFeeEscalationAutofill() + { + testcase("Autofilled fee should use the escalated fee"); + using namespace jtx; + Env env(*this, []() + { + auto p = std::make_unique(); + setupConfigForUnitTests(*p); + auto& section = p->section("transaction_queue"); + section.set("minimum_txn_in_ledger_standalone", "3"); + return p; + }(), + features(featureFeeEscalation)); + Env_ss envs(env); + + auto const alice = Account("alice"); + env.fund(XRP(100000), alice); + + auto params = Json::Value(Json::objectValue); + // Max fee = 50k drops + params[jss::fee_mult_max] = 5000; + std::vector const + expectedFees({ 10, 10, 8889, 13889, 20000 }); + + // We should be able to submit 5 transactions within + // our fee limit. + for (int i = 0; i < 5; ++i) + { + envs(noop(alice), fee(none), seq(none))(params); + + auto tx = env.tx(); + if (expect(tx)) + { + expect(tx->getAccountID(sfAccount) == alice.id()); + expect(tx->getTxnType() == ttACCOUNT_SET); + auto const fee = tx->getFieldAmount(sfFee); + expect(fee == drops(expectedFees[i])); + } + } + } + void run() override { testOffer1(); testLowBalanceDestroy(); testSecp256r1key(); + testFeeEscalationAutofill(); } };