|
@@ -0,0 +1,82 @@
|
|
|
+contract('DelayedClaimable', function(accounts) {
|
|
|
+ var delayedClaimable;
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ return DelayedClaimable.new().then(function(deployed) {
|
|
|
+ delayedClaimable = deployed;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("Changes pendingOwner after transfer succesfull", function(done) {
|
|
|
+ return delayedClaimable.transferOwnership(accounts[2])
|
|
|
+ .then(function(){
|
|
|
+ return delayedClaimable.setClaimBlocks(1000,0);
|
|
|
+ })
|
|
|
+ .then(function(){
|
|
|
+ return delayedClaimable.claimBeforeBlock();
|
|
|
+ })
|
|
|
+ .then(function(claimBeforeBlock) {
|
|
|
+ assert.isTrue(claimBeforeBlock == 1000);
|
|
|
+ return delayedClaimable.claimAfterBlock();
|
|
|
+ })
|
|
|
+ .then(function(claimAfterBlock) {
|
|
|
+ assert.isTrue(claimAfterBlock == 0);
|
|
|
+ return delayedClaimable.pendingOwner();
|
|
|
+ })
|
|
|
+ .then(function(pendingOwner) {
|
|
|
+ assert.isTrue(pendingOwner === accounts[2]);
|
|
|
+ return delayedClaimable.claimOwnership({from: accounts[2]});
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return delayedClaimable.owner();
|
|
|
+ })
|
|
|
+ .then(function(owner) {
|
|
|
+ assert.isTrue(owner === accounts[2]);
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("Changes pendingOwner after transfer fails", function(done) {
|
|
|
+ return delayedClaimable.transferOwnership(accounts[1])
|
|
|
+ .then(function(){
|
|
|
+ return delayedClaimable.setClaimBlocks(11000,10000);
|
|
|
+ })
|
|
|
+ .then(function(){
|
|
|
+ return delayedClaimable.claimBeforeBlock();
|
|
|
+ })
|
|
|
+ .then(function(claimBeforeBlock) {
|
|
|
+ assert.isTrue(claimBeforeBlock == 11000);
|
|
|
+ return delayedClaimable.claimAfterBlock();
|
|
|
+ })
|
|
|
+ .then(function(claimAfterBlock) {
|
|
|
+ assert.isTrue(claimAfterBlock == 10000);
|
|
|
+ return delayedClaimable.pendingOwner();
|
|
|
+ })
|
|
|
+ .then(function(pendingOwner) {
|
|
|
+ assert.isTrue(pendingOwner === accounts[1]);
|
|
|
+ return delayedClaimable.claimOwnership({from: accounts[1]});
|
|
|
+ })
|
|
|
+ .catch(function(error) {
|
|
|
+ if (error.message.search('invalid JUMP') == -1) throw error;
|
|
|
+ })
|
|
|
+ .then(function() {
|
|
|
+ return delayedClaimable.owner();
|
|
|
+ })
|
|
|
+ .then(function(owner) {
|
|
|
+ assert.isTrue(owner != accounts[1]);
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("Set claimBeforeBlock and claimAfterBlock invalid values fail", function(done) {
|
|
|
+ return delayedClaimable.transferOwnership(accounts[1])
|
|
|
+ .then(function(){
|
|
|
+ return delayedClaimable.setClaimBlocks(1000,10000);
|
|
|
+ })
|
|
|
+ .catch(function(error) {
|
|
|
+ if (error.message.search('invalid JUMP') == -1) throw error;
|
|
|
+ })
|
|
|
+ .then(done);
|
|
|
+ });
|
|
|
+
|
|
|
+});
|