diff --git a/test/config.js b/test/config.js index 6d448ae172..d9e6eb5846 100644 --- a/test/config.js +++ b/test/config.js @@ -7,10 +7,12 @@ var path = require("path"); // Where to find the binary. exports.rippled = path.join(process.cwd(), "rippled"); +exports.server_default = "alpha"; + // Configuration for servers. exports.servers = { // A local test server. - 'alpha' : { + "alpha" : { 'trusted' : true, // "peer_ip" : "0.0.0.0", // "peer_port" : 51235, @@ -26,39 +28,39 @@ exports.servers = { // Configuration for test accounts. exports.accounts = { // Users - 'alice' : { - 'account' : 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn', - 'secret' : 'alice', + "alice" : { + 'account' : "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + 'secret' : "alice", }, - 'bob' : { - 'account' : 'rPMh7Pi9ct699iZUTWaytJUoHcJ7cgyziK', - 'secret' : 'bob', + "bob" : { + 'account' : "rPMh7Pi9ct699iZUTWaytJUoHcJ7cgyziK", + 'secret' : "bob", }, - 'carol' : { - 'account' : 'rH4KEcG9dEwGwpn6AyoWK9cZPLL4RLSmWW', - 'secret' : 'carol', + "carol" : { + 'account' : "rH4KEcG9dEwGwpn6AyoWK9cZPLL4RLSmWW", + 'secret' : "carol", }, // Nexuses - 'bitstamp' : { - 'account' : 'r4jKmc2nQb5yEU6eycefiNKGHTU5NQJASx', - 'secret' : 'bitstamp', + "bitstamp" : { + 'account' : "r4jKmc2nQb5yEU6eycefiNKGHTU5NQJASx", + 'secret' : "bitstamp", }, - 'mtgox' : { - 'account' : 'rGihwhaqU8g7ahwAvTq6iX5rvsfcbgZw6v', - 'secret' : 'mtgox', + "mtgox" : { + 'account' : "rGihwhaqU8g7ahwAvTq6iX5rvsfcbgZw6v", + 'secret' : "mtgox", }, // Merchants - 'amazon' : { - 'account' : 'rhheXqX7bDnXePJeMHhubDDvw2uUTtenPd', - 'secret' : 'amazon', + "amazon" : { + 'account' : "rhheXqX7bDnXePJeMHhubDDvw2uUTtenPd", + 'secret' : "amazon", }, // Master account - 'root' : { - 'account' : 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', - 'secret' : 'masterpassphrase', + "root" : { + 'account' : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + 'secret' : "masterpassphrase", }, }; diff --git a/test/offer-test.js b/test/offer-test.js index 3c7344bfe9..18867ea25f 100644 --- a/test/offer-test.js +++ b/test/offer-test.js @@ -6,34 +6,22 @@ var Amount = require("../js/amount.js").Amount; var Remote = require("../js/remote.js").Remote; var Server = require("./server.js").Server; +var testutils = require("./testutils.js"); + buster.testRunner.timeout = 5000; -var alpha; - buster.testCase("Offer tests", { - 'setUp' : - function (done) { - server = Server.from_config("alpha").on('started', function () { - alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect(); - }).start(); - }, - - 'tearDown' : - function (done) { - alpha - .on('disconnected', function () { - server.on('stopped', done).stop(); - }) - .connect(false); - }, + 'setUp' : testutils.test_setup, + 'tearDown' : testutils.test_teardown, "offer create then cancel in one ledger" : function (done) { + var self = this; var final_create; async.waterfall([ function (callback) { - alpha.transaction() + self.remote.transaction() .offer_create("root", "500", "100/USD/root") .on("proposed", function (m) { // console.log("PROPOSED: offer_create: %s", JSON.stringify(m)); @@ -49,7 +37,7 @@ buster.testCase("Offer tests", { .submit(); }, function (m, callback) { - alpha.transaction() + self.remote.transaction() .offer_cancel("root", m.transaction.Sequence) .on("proposed", function (m) { // console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m)); @@ -65,7 +53,7 @@ buster.testCase("Offer tests", { .submit(); }, function (m, callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed); }) @@ -81,12 +69,13 @@ buster.testCase("Offer tests", { "offer_create then ledger_accept then offer_cancel then ledger_accept." : function (done) { + var self = this; var final_create; var offer_seq; async.waterfall([ function (callback) { - alpha.transaction() + self.remote.transaction() .offer_create("root", "500", "100/USD/root") .on("proposed", function (m) { // console.log("PROPOSED: offer_create: %s", JSON.stringify(m)); @@ -108,7 +97,7 @@ buster.testCase("Offer tests", { }, function (callback) { if (!final_create) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed); @@ -122,7 +111,7 @@ buster.testCase("Offer tests", { function (callback) { // console.log("CANCEL: offer_cancel: %d", offer_seq); - alpha.transaction() + self.remote.transaction() .offer_cancel("root", offer_seq) .on("proposed", function (m) { // console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m)); @@ -140,7 +129,7 @@ buster.testCase("Offer tests", { }, // See if ledger_accept will crash. function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed); callback(); @@ -148,7 +137,7 @@ buster.testCase("Offer tests", { .ledger_accept(); }, function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed); callback(); @@ -166,12 +155,13 @@ buster.testCase("Offer tests", { "new user offer_create then ledger_accept then offer_cancel then ledger_accept." : function (done) { + var self = this; var final_create; var offer_seq; async.waterfall([ function (callback) { - alpha.transaction() + self.remote.transaction() .payment('root', 'alice', "1000") .set_flags('CreateAccount') .on('proposed', function (m) { @@ -182,7 +172,7 @@ buster.testCase("Offer tests", { .submit() }, function (callback) { - alpha.transaction() + self.remote.transaction() .offer_create("alice", "500", "100/USD/alice") .on("proposed", function (m) { // console.log("PROPOSED: offer_create: %s", JSON.stringify(m)); @@ -204,7 +194,7 @@ buster.testCase("Offer tests", { }, function (callback) { if (!final_create) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: %d: %s", ledger_closed_index, ledger_closed); @@ -218,7 +208,7 @@ buster.testCase("Offer tests", { function (callback) { // console.log("CANCEL: offer_cancel: %d", offer_seq); - alpha.transaction() + self.remote.transaction() .offer_cancel("alice", offer_seq) .on("proposed", function (m) { // console.log("PROPOSED: offer_cancel: %s", JSON.stringify(m)); @@ -236,7 +226,7 @@ buster.testCase("Offer tests", { }, // See if ledger_accept will crash. function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed); callback(); @@ -244,7 +234,7 @@ buster.testCase("Offer tests", { .ledger_accept(); }, function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed); callback(); @@ -260,11 +250,12 @@ buster.testCase("Offer tests", { "offer cancel past and future sequence" : function (done) { + var self = this; var final_create; async.waterfall([ function (callback) { - alpha.transaction() + self.remote.transaction() .payment('root', 'alice', Amount.from_json("10000")) .set_flags('CreateAccount') .on("proposed", function (m) { @@ -281,7 +272,7 @@ buster.testCase("Offer tests", { }, // Past sequence but wrong function (m, callback) { - alpha.transaction() + self.remote.transaction() .offer_cancel("root", m.transaction.Sequence) .on("proposed", function (m) { // console.log("PROPOSED: offer_cancel past: %s", JSON.stringify(m)); @@ -291,7 +282,7 @@ buster.testCase("Offer tests", { }, // Same sequence function (m, callback) { - alpha.transaction() + self.remote.transaction() .offer_cancel("root", m.transaction.Sequence+1) .on("proposed", function (m) { // console.log("PROPOSED: offer_cancel same: %s", JSON.stringify(m)); @@ -302,9 +293,9 @@ buster.testCase("Offer tests", { // Future sequence function (m, callback) { // After a malformed transaction, need to recover correct sequence. - alpha.set_account_seq("root", alpha.account_seq("root")-1); + self.remote.set_account_seq("root", self.remote.account_seq("root")-1); - alpha.transaction() + self.remote.transaction() .offer_cancel("root", m.transaction.Sequence+2) .on("proposed", function (m) { // console.log("ERROR: offer_cancel future: %s", JSON.stringify(m)); @@ -314,7 +305,7 @@ buster.testCase("Offer tests", { }, // See if ledger_accept will crash. function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: A: %d: %s", ledger_closed_index, ledger_closed); callback(); @@ -322,7 +313,7 @@ buster.testCase("Offer tests", { .ledger_accept(); }, function (callback) { - alpha + self.remote .once("ledger_closed", function (ledger_closed, ledger_closed_index) { // console.log("LEDGER_CLOSED: B: %d: %s", ledger_closed_index, ledger_closed); callback(); diff --git a/test/remote-test.js b/test/remote-test.js index 4ebf857db9..a22230af09 100644 --- a/test/remote-test.js +++ b/test/remote-test.js @@ -4,6 +4,8 @@ var Amount = require("../js/amount.js").Amount; var Remote = require("../js/remote.js").Remote; var Server = require("./server.js").Server; +var testutils = require("./testutils.js"); + var fastTearDown = true; // How long to wait for server to start. @@ -12,25 +14,12 @@ var serverDelay = 1500; // XXX Not implemented. buster.testRunner.timeout = 5000; buster.testCase("Remote functions", { - 'setUp' : - function (done) { - server = Server.from_config("alpha").on('started', function () { - alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect(); - }).start(); - }, - - 'tearDown' : - function (done) { - alpha - .on('disconnected', function () { - server.on('stopped', done).stop(); - }) - .connect(false); - }, + 'setUp' : testutils.test_setup, + 'tearDown' : testutils.test_teardown, 'request_ledger_current' : function (done) { - alpha.request_ledger_current().on('success', function (m) { + this.remote.request_ledger_current().on('success', function (m) { // console.log(m); buster.assert.equals(m.ledger_current_index, 3); @@ -46,7 +35,7 @@ buster.testCase("Remote functions", { 'request_ledger_closed' : function (done) { - alpha.request_ledger_closed().on('success', function (m) { + this.remote.request_ledger_closed().on('success', function (m) { // console.log("result: %s", JSON.stringify(m)); buster.assert.equals(m.ledger_closed_index, 2); @@ -62,10 +51,12 @@ buster.testCase("Remote functions", { 'manual account_root success' : function (done) { - alpha.request_ledger_closed().on('success', function (r) { + var self = this; + + this.remote.request_ledger_closed().on('success', function (r) { // console.log("result: %s", JSON.stringify(r)); - alpha + self.remote .request_ledger_entry('account_root') .ledger_closed(r.ledger_closed) .account_root("rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh") @@ -93,10 +84,12 @@ buster.testCase("Remote functions", { // XXX This should be detected locally. 'account_root remote malformedAddress' : function (done) { - alpha.request_ledger_closed().on('success', function (r) { + var self = this; + + this.remote.request_ledger_closed().on('success', function (r) { // console.log("result: %s", JSON.stringify(r)); - alpha + self.remote .request_ledger_entry('account_root') .ledger_closed(r.ledger_closed) .account_root("zHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh") @@ -124,10 +117,12 @@ buster.testCase("Remote functions", { 'account_root entryNotFound' : function (done) { - alpha.request_ledger_closed().on('success', function (r) { + var self = this; + + this.remote.request_ledger_closed().on('success', function (r) { // console.log("result: %s", JSON.stringify(r)); - alpha + self.remote .request_ledger_entry('account_root') .ledger_closed(r.ledger_closed) .account_root("alice") @@ -154,10 +149,12 @@ buster.testCase("Remote functions", { 'ledger_entry index' : function (done) { - alpha.request_ledger_closed().on('success', function (r) { + var self = this; + + this.remote.request_ledger_closed().on('success', function (r) { // console.log("result: %s", JSON.stringify(r)); - alpha + self.remote .request_ledger_entry('index') .ledger_closed(r.ledger_closed) .account_root("alice") @@ -185,7 +182,7 @@ buster.testCase("Remote functions", { 'create account' : function (done) { - alpha.transaction() + this.remote.transaction() .payment('root', 'alice', Amount.from_json("10000")) .set_flags('CreateAccount') .on('success', function (r) { @@ -204,10 +201,12 @@ buster.testCase("Remote functions", { "create account final" : function (done) { + var self = this; + var got_proposed; var got_success; - alpha.transaction() + this.remote.transaction() .payment('root', 'alice', Amount.from_json("10000")) .set_flags('CreateAccount') .on('success', function (r) { @@ -234,7 +233,7 @@ buster.testCase("Remote functions", { got_proposed = true; - alpha.ledger_accept(); + self.remote.ledger_accept(); }) .on('status', function (s) { // console.log("status: %s", JSON.stringify(s)); diff --git a/test/send-test.js b/test/send-test.js index fa41aa8d47..2376b4f42e 100644 --- a/test/send-test.js +++ b/test/send-test.js @@ -4,36 +4,24 @@ var Amount = require("../js/amount.js").Amount; var Remote = require("../js/remote.js").Remote; var Server = require("./server.js").Server; +var testutils = require("./testutils.js"); + // How long to wait for server to start. var serverDelay = 1500; buster.testRunner.timeout = 5000; -var alpha; - buster.testCase("Sending", { - 'setUp' : - function (done) { - server = Server.from_config("alpha").on('started', function () { - alpha = Remote.from_config("alpha").once('ledger_closed', done) .connect(); - }).start(); - }, - - 'tearDown' : - function (done) { - alpha - .on('disconnected', function () { - server.on('stopped', done).stop(); - }) - .connect(false); - }, + 'setUp' : testutils.test_setup, + 'tearDown' : testutils.test_teardown, "send to non-existant account without create." : function (done) { + var self = this; + var ledgers = 20; var got_proposed; - var ledgers = 20; - alpha.transaction() + this.remote.transaction() .payment('root', 'alice', Amount.from_json("10000")) .on('success', function (r) { // Transaction sent. @@ -46,7 +34,7 @@ buster.testCase("Sending", { ledgers -= 1; if (ledgers) { - alpha.ledger_accept(); + self.remote.ledger_accept(); } else { buster.assert(false, "Final never received."); @@ -68,7 +56,7 @@ buster.testCase("Sending", { got_proposed = true; - alpha.ledger_accept(); // Move it along. + self.remote.ledger_accept(); // Move it along. }) .on('final', function (m) { // console.log("final: %s", JSON.stringify(m)); diff --git a/test/testutils.js b/test/testutils.js new file mode 100644 index 0000000000..f2f0111275 --- /dev/null +++ b/test/testutils.js @@ -0,0 +1,34 @@ +var Remote = require("../js/remote.js").Remote; +var Server = require("./server.js").Server; + +var config = require("./config.js"); + +var test_setup = function (done, host) { + var self = this; + var host = host || config.server_default; + + this.store = this.store || {}; + + var data = this.store[host] = this.store[host] || {}; + + data.server = Server.from_config(host).on('started', function () { + self.remote = data.remote = Remote.from_config(host).once('ledger_closed', done).connect(); + }).start(); +}; + +var test_teardown = function (done, host) { + var host = host || config.server_default; + + var data = this.store[host]; + + data.remote + .on('disconnected', function () { + data.server.on('stopped', done).stop(); + }) + .connect(false); +}; + +exports.test_setup = test_setup; +exports.test_teardown = test_teardown; + +// vim:sw=2:sts=2:ts=8