Files
openzeppelin-contracts/test/Ownable.js
Manuel Aráoz 3207996777 Merge pull request #65 from se3000/ownable_guard
add check prevening ownables from getting stuck
2016-11-14 22:06:30 -03:00

59 lines
1.4 KiB
JavaScript

contract('Ownable', function(accounts) {
var ownable;
beforeEach(function() {
return Ownable.new().then(function(deployed) {
ownable = deployed;
});
});
it("should have an owner", function(done) {
return ownable.owner()
.then(function(owner) {
assert.isTrue(owner != 0);
})
.then(done)
});
it("changes owner after transfer", function(done) {
var other = accounts[1];
return ownable.transfer(other)
.then(function() {
return ownable.owner();
})
.then(function(owner) {
assert.isTrue(owner === other);
})
.then(done)
});
it("should prevent non-owners from transfering" ,function(done) {
var other = accounts[2];
return ownable.transfer(other, {from: accounts[2]})
.then(function() {
return ownable.owner();
})
.then(function(owner) {
assert.isFalse(owner === other);
})
.then(done)
});
it("should guard ownership against stuck state" ,function(done) {
var ownable = Ownable.deployed();
return ownable.owner()
.then(function (originalOwner) {
return ownable.transfer(null, {from: originalOwner})
.then(function() {
return ownable.owner();
})
.then(function(newOwner) {
assert.equal(originalOwner, newOwner);
})
.then(done);
});
});
});