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