diff --git a/CHANGELOG.md b/CHANGELOG.md index 7802a9088..6aed3cc89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,9 @@ ### Breaking changes: +## 2.1.2 (2019-17-01) + * Removed most of the test suite from the npm package, except `PublicRole.behavior.js`, which may be useful to users testing their own `Roles`. + ## 2.1.1 (2019-04-01) * Version bump to avoid conflict in the npm registry. diff --git a/ethpm.json b/ethpm.json index 03149be3d..d1234541f 100644 --- a/ethpm.json +++ b/ethpm.json @@ -1,6 +1,6 @@ { "package_name": "zeppelin", - "version": "2.1.1", + "version": "2.1.2", "description": "Secure Smart Contract library for Solidity", "authors": [ "OpenZeppelin Community " diff --git a/package-lock.json b/package-lock.json index bc241ff27..ed84dd244 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "openzeppelin-solidity", - "version": "2.1.1", + "version": "2.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 669248cab..fe21e352a 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "openzeppelin-solidity", - "version": "2.1.1", + "version": "2.1.2", "description": "Secure Smart Contract library for Solidity", "files": [ "build", "contracts", - "test" + "test/behaviors" ], "scripts": { "build": "scripts/build.sh", diff --git a/test/access/roles/CapperRole.test.js b/test/access/roles/CapperRole.test.js index a79944a27..66722fe50 100644 --- a/test/access/roles/CapperRole.test.js +++ b/test/access/roles/CapperRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const CapperRoleMock = artifacts.require('CapperRoleMock'); contract('CapperRole', function ([_, capper, otherCapper, ...otherAccounts]) { diff --git a/test/access/roles/MinterRole.test.js b/test/access/roles/MinterRole.test.js index b2e70b53a..54d1c0fe5 100644 --- a/test/access/roles/MinterRole.test.js +++ b/test/access/roles/MinterRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const MinterRoleMock = artifacts.require('MinterRoleMock'); contract('MinterRole', function ([_, minter, otherMinter, ...otherAccounts]) { diff --git a/test/access/roles/PauserRole.test.js b/test/access/roles/PauserRole.test.js index 927e46c0b..275bf9fce 100644 --- a/test/access/roles/PauserRole.test.js +++ b/test/access/roles/PauserRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const PauserRoleMock = artifacts.require('PauserRoleMock'); contract('PauserRole', function ([_, pauser, otherPauser, ...otherAccounts]) { diff --git a/test/access/roles/SignerRole.test.js b/test/access/roles/SignerRole.test.js index 317c100d7..184929453 100644 --- a/test/access/roles/SignerRole.test.js +++ b/test/access/roles/SignerRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const SignerRoleMock = artifacts.require('SignerRoleMock'); contract('SignerRole', function ([_, signer, otherSigner, ...otherAccounts]) { diff --git a/test/access/roles/WhitelistAdminRole.test.js b/test/access/roles/WhitelistAdminRole.test.js index e59dcd895..d757262f2 100644 --- a/test/access/roles/WhitelistAdminRole.test.js +++ b/test/access/roles/WhitelistAdminRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const WhitelistAdminRoleMock = artifacts.require('WhitelistAdminRoleMock'); contract('WhitelistAdminRole', function ([_, whitelistAdmin, otherWhitelistAdmin, ...otherAccounts]) { diff --git a/test/access/roles/WhitelistedRole.test.js b/test/access/roles/WhitelistedRole.test.js index e578f6fa2..ee566ff44 100644 --- a/test/access/roles/WhitelistedRole.test.js +++ b/test/access/roles/WhitelistedRole.test.js @@ -1,4 +1,4 @@ -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const WhitelistedRoleMock = artifacts.require('WhitelistedRoleMock'); contract('WhitelistedRole', function ([_, whitelisted, otherWhitelisted, whitelistAdmin, ...otherAccounts]) { diff --git a/test/access/roles/PublicRole.behavior.js b/test/behaviors/access/roles/PublicRole.behavior.js similarity index 84% rename from test/access/roles/PublicRole.behavior.js rename to test/behaviors/access/roles/PublicRole.behavior.js index 4c4f34706..3a673e6a0 100644 --- a/test/access/roles/PublicRole.behavior.js +++ b/test/behaviors/access/roles/PublicRole.behavior.js @@ -5,6 +5,21 @@ function capitalize (str) { return str.replace(/\b\w/g, l => l.toUpperCase()); } +// Tests that a role complies with the standard role interface, that is: +// * an onlyRole modifier +// * an isRole function +// * an addRole function, accessible to role havers +// * a renounceRole function +// * roleAdded and roleRemoved events +// Both the modifier and an additional internal remove function are tested through a mock contract that exposes them. +// This mock contract should be stored in this.contract. +// +// @param authorized an account that has the role +// @param otherAuthorized another account that also has the role +// @param anyone an account that doesn't have the role, passed inside an array for ergonomics +// @param rolename a string with the name of the role +// @param manager undefined for regular roles, or a manager account for managed roles. In these, only the manager +// account can create and remove new role bearers. function shouldBehaveLikePublicRole (authorized, otherAuthorized, [anyone], rolename, manager) { rolename = capitalize(rolename); diff --git a/test/crowdsale/IndividuallyCappedCrowdsale.test.js b/test/crowdsale/IndividuallyCappedCrowdsale.test.js index 40a3bf71c..086f1b591 100644 --- a/test/crowdsale/IndividuallyCappedCrowdsale.test.js +++ b/test/crowdsale/IndividuallyCappedCrowdsale.test.js @@ -2,7 +2,7 @@ const { BN, ether, shouldFail } = require('openzeppelin-test-helpers'); const IndividuallyCappedCrowdsaleImpl = artifacts.require('IndividuallyCappedCrowdsaleImpl'); const SimpleToken = artifacts.require('SimpleToken'); -const { shouldBehaveLikePublicRole } = require('../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior'); contract('IndividuallyCappedCrowdsale', function ( [_, capper, otherCapper, wallet, alice, bob, charlie, anyone, ...otherAccounts]) { diff --git a/test/drafts/SignatureBouncer.test.js b/test/drafts/SignatureBouncer.test.js index 21aa9d185..32866378e 100644 --- a/test/drafts/SignatureBouncer.test.js +++ b/test/drafts/SignatureBouncer.test.js @@ -1,6 +1,6 @@ const { shouldFail } = require('openzeppelin-test-helpers'); const { getSignFor } = require('../helpers/sign'); -const { shouldBehaveLikePublicRole } = require('../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior'); const SignatureBouncerMock = artifacts.require('SignatureBouncerMock'); diff --git a/test/lifecycle/Pausable.test.js b/test/lifecycle/Pausable.test.js index 0b5fe3126..337adcfc7 100644 --- a/test/lifecycle/Pausable.test.js +++ b/test/lifecycle/Pausable.test.js @@ -1,5 +1,5 @@ const { expectEvent, shouldFail } = require('openzeppelin-test-helpers'); -const { shouldBehaveLikePublicRole } = require('../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior'); const PausableMock = artifacts.require('PausableMock'); diff --git a/test/token/ERC20/ERC20Mintable.test.js b/test/token/ERC20/ERC20Mintable.test.js index 083565d87..659276ddd 100644 --- a/test/token/ERC20/ERC20Mintable.test.js +++ b/test/token/ERC20/ERC20Mintable.test.js @@ -1,6 +1,6 @@ const { shouldBehaveLikeERC20Mintable } = require('./behaviors/ERC20Mintable.behavior'); const ERC20MintableMock = artifacts.require('ERC20MintableMock'); -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); contract('ERC20Mintable', function ([_, minter, otherMinter, ...otherAccounts]) { beforeEach(async function () { diff --git a/test/token/ERC20/ERC20Pausable.test.js b/test/token/ERC20/ERC20Pausable.test.js index 6240f64d1..cee627ab3 100644 --- a/test/token/ERC20/ERC20Pausable.test.js +++ b/test/token/ERC20/ERC20Pausable.test.js @@ -1,7 +1,7 @@ const { BN, expectEvent, shouldFail } = require('openzeppelin-test-helpers'); const ERC20PausableMock = artifacts.require('ERC20PausableMock'); -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherAccount, ...otherAccounts]) { const initialSupply = new BN(100); diff --git a/test/token/ERC721/ERC721Pausable.test.js b/test/token/ERC721/ERC721Pausable.test.js index d43ea0071..840e1a905 100644 --- a/test/token/ERC721/ERC721Pausable.test.js +++ b/test/token/ERC721/ERC721Pausable.test.js @@ -1,7 +1,7 @@ require('openzeppelin-test-helpers'); const { shouldBehaveLikeERC721PausedToken } = require('./ERC721PausedToken.behavior'); const { shouldBehaveLikeERC721 } = require('./ERC721.behavior'); -const { shouldBehaveLikePublicRole } = require('../../access/roles/PublicRole.behavior'); +const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior'); const ERC721PausableMock = artifacts.require('ERC721PausableMock.sol');