diff --git a/test/testutils.js b/test/testutils.js index f809efac..70448055 100644 --- a/test/testutils.js +++ b/test/testutils.js @@ -171,19 +171,61 @@ var create_accounts = function (remote, src, amount, accounts, callback) { var credit_limit = function (remote, src, amount, callback) { assert(4 === arguments.length); - remote.transaction() - .ripple_line_set(src, amount) - .on('proposed', function (m) { - // console.log("proposed: %s", JSON.stringify(m)); + var _m = amount.match(/^(\d+\/...\/[^\/]+)(?:(\d+)(?:\/(\d+))?)?$/); + if (!_m) { + console.log("credit_limit: parse error: %s", amount); - callback(m.result != 'tesSUCCESS'); - }) - .on('error', function (m) { - // console.log("error: %s", JSON.stringify(m)); + callback('parse_error'); + } + else + { + remote.transaction() + .ripple_line_set(src, _m[1], _m[2], _m[3]) + .on('proposed', function (m) { + // console.log("proposed: %s", JSON.stringify(m)); - callback(m); - }) - .submit(); + callback(m.result != 'tesSUCCESS'); + }) + .on('error', function (m) { + // console.log("error: %s", JSON.stringify(m)); + + callback(m); + }) + .submit(); + } +}; + +var verify_limit = function (remote, src, amount, callback) { + assert(4 === arguments.length); + + var _m = amount.match(/^(\d+\/...\/[^\/]+)(?:(\d+)(?:\/(\d+))?)?$/); + if (!_m) { + console.log("credit_limit: parse error: %s", amount); + + callback('parse_error'); + } + else + { + var _account_limit = _m[1]; + var _quality_in = _m[2]; + var _quality_out = _m[3]; + + remote.request_ripple_balance() + .once('ripple_state', function (m) { + // console.log("proposed: %s", JSON.stringify(m)); + buster.assert(m.account_limit.equals(_account_limit)); + buster.assert('undefined' === _quality_in || m.account_quality_in.equals(_quality_in)); + buster.assert('undefined' === _quality_out || m.account_quality_out.equals(_quality_out)); + + callback(m.result != 'tesSUCCESS'); + }) + .on('error', function (m) { + // console.log("error: %s", JSON.stringify(m)); + + callback(m); + }) + .submit(); + } }; var credit_limits = function (remote, balances, callback) {