Address#clone
This commit is contained in:
parent
ea9e8e60ef
commit
a42ec4b8f7
|
@ -38,6 +38,14 @@ function Address(opts) {
|
||||||
objectAssign(this, opts);
|
objectAssign(this, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a copy of the address object.
|
||||||
|
* @return {Address} Cloned address.
|
||||||
|
*/
|
||||||
|
Address.prototype.clone = function() {
|
||||||
|
return new Address(this);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test if given object is an Address instance. NOTE: Implementation is
|
* Test if given object is an Address instance. NOTE: Implementation is
|
||||||
* just simple `instanceof` but it improves readability and consistent
|
* just simple `instanceof` but it improves readability and consistent
|
||||||
|
|
25
test.js
25
test.js
|
@ -843,14 +843,14 @@ describe("High-level classes", function() {
|
||||||
// FIXME(Kagami): Add more fail tests.
|
// FIXME(Kagami): Add more fail tests.
|
||||||
describe("Address", function() {
|
describe("Address", function() {
|
||||||
it("should decode Bitmessage address", function() {
|
it("should decode Bitmessage address", function() {
|
||||||
var addr = Address.decode("BM-2cTux3PGRqHTEH6wyUP2sWeT4LrsGgy63z")
|
var addr = Address.decode("BM-2cTux3PGRqHTEH6wyUP2sWeT4LrsGgy63z");
|
||||||
expect(addr.version).to.equal(4);
|
expect(addr.version).to.equal(4);
|
||||||
expect(addr.stream).to.equal(1);
|
expect(addr.stream).to.equal(1);
|
||||||
expect(addr.ripe.toString("hex")).to.equal("003ab6655de4bd8c603eba9b00dd5970725fdd56");
|
expect(addr.ripe.toString("hex")).to.equal("003ab6655de4bd8c603eba9b00dd5970725fdd56");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should decode Bitmessage address badly formatted", function() {
|
it("should decode Bitmessage address badly formatted", function() {
|
||||||
var addr = Address.decode(" 2cTux3PGRqHTEH6wyUP2sWeT4LrsGgy63z ")
|
var addr = Address.decode(" 2cTux3PGRqHTEH6wyUP2sWeT4LrsGgy63z ");
|
||||||
expect(addr.version).to.equal(4);
|
expect(addr.version).to.equal(4);
|
||||||
expect(addr.stream).to.equal(1);
|
expect(addr.stream).to.equal(1);
|
||||||
expect(addr.ripe.toString("hex")).to.equal("003ab6655de4bd8c603eba9b00dd5970725fdd56");
|
expect(addr.ripe.toString("hex")).to.equal("003ab6655de4bd8c603eba9b00dd5970725fdd56");
|
||||||
|
@ -960,6 +960,27 @@ describe("High-level classes", function() {
|
||||||
expect(Address.isAddress({})).to.be.false;
|
expect(Address.isAddress({})).to.be.false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should implement clone method", function() {
|
||||||
|
var addr = Address.decode("BM-2cTux3PGRqHTEH6wyUP2sWeT4LrsGgy63z");
|
||||||
|
expect(addr.version).to.equal(4);
|
||||||
|
expect(addr.stream).to.equal(1);
|
||||||
|
var addr2 = addr.clone();
|
||||||
|
expect(addr2.version).to.equal(4);
|
||||||
|
expect(addr2.stream).to.equal(1);
|
||||||
|
addr2.version = 3;
|
||||||
|
addr2.stream = 2;
|
||||||
|
expect(addr.getTag().toString("hex")).to.equal("facf1e3e6c74916203b7f714ca100d4d60604f0917696d0f09330f82f52bed1a");
|
||||||
|
expect(addr2.getTag().toString("hex")).to.equal("d6487aaea3d2d022d80abbce2605089523ba2b516b81c03545f19a5c85f15fa2");
|
||||||
|
|
||||||
|
var addr3 = Address({
|
||||||
|
signPrivateKey: Buffer("71c95d26c716a5e85e9af9efe26fb5f744dc98005a13d05d23ee92c77e038d9f", "hex"),
|
||||||
|
encPrivateKey: Buffer("9f9969c93c2d186787a7653f70e49be34c03c4a853e6ad0c867db0946bc433c6", "hex"),
|
||||||
|
});
|
||||||
|
var addr4 = addr3.clone();
|
||||||
|
expect(addr4.signPrivateKey.toString("hex")).to.equal("71c95d26c716a5e85e9af9efe26fb5f744dc98005a13d05d23ee92c77e038d9f");
|
||||||
|
expect(addr4.encPrivateKey.toString("hex")).to.equal("9f9969c93c2d186787a7653f70e49be34c03c4a853e6ad0c867db0946bc433c6");
|
||||||
|
});
|
||||||
|
|
||||||
// FIXME(Kagami): Don't run it in browser currently because it's
|
// FIXME(Kagami): Don't run it in browser currently because it's
|
||||||
// very slow. This need to be fixed.
|
// very slow. This need to be fixed.
|
||||||
if (allTests && typeof window === "undefined") {
|
if (allTests && typeof window === "undefined") {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user