-
Notifications
You must be signed in to change notification settings - Fork 513
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* init file structure and trees * tree: initialize * tree misc * tree _transferTokensOnClaim * tree _beforeTokenTransfer * tree canSet * tree _collectPriceOnClaim * test: initialize * test misc * test _beforeTokenTransfers * test transferTokensOnClaim * test _canSetFunctions * update tests * clean tests + lint
- Loading branch information
1 parent
9e843f5
commit e06a324
Showing
12 changed files
with
1,128 additions
and
0 deletions.
There are no files selected for viewing
66 changes: 66 additions & 0 deletions
66
src/test/open-edition/_beforeTokenTransfers/_beforeTokenTransfers.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
// SPDX-License-Identifier: Apache-2.0 | ||
pragma solidity ^0.8.0; | ||
|
||
import { OpenEditionERC721 } from "contracts/prebuilts/open-edition/OpenEditionERC721.sol"; | ||
import { TWProxy } from "contracts/infra/TWProxy.sol"; | ||
|
||
// Test imports | ||
import "src/test/utils/BaseTest.sol"; | ||
|
||
contract OpenEditionERC721Harness is OpenEditionERC721 { | ||
function beforeTokenTransfers( | ||
address from, | ||
address to, | ||
uint256 startTokenId_, | ||
uint256 quantity | ||
) public { | ||
_beforeTokenTransfers(from, to, startTokenId_, quantity); | ||
} | ||
} | ||
|
||
contract OpenEditionERC721Test_beforeTokenTransfers is BaseTest { | ||
OpenEditionERC721Harness public openEdition; | ||
|
||
address private openEditionImpl; | ||
|
||
function setUp() public override { | ||
super.setUp(); | ||
openEditionImpl = address(new OpenEditionERC721Harness()); | ||
vm.prank(deployer); | ||
openEdition = OpenEditionERC721Harness( | ||
address( | ||
new TWProxy( | ||
openEditionImpl, | ||
abi.encodeCall( | ||
OpenEditionERC721.initialize, | ||
( | ||
deployer, | ||
NAME, | ||
SYMBOL, | ||
CONTRACT_URI, | ||
forwarders(), | ||
saleRecipient, | ||
royaltyRecipient, | ||
royaltyBps | ||
) | ||
) | ||
) | ||
) | ||
); | ||
} | ||
|
||
/*/////////////////////////////////////////////////////////////// | ||
Unit tests: misc | ||
//////////////////////////////////////////////////////////////*/ | ||
|
||
function test_revert_transfersRestricted() public { | ||
address from = address(0x1); | ||
address to = address(0x2); | ||
bytes32 role = keccak256("TRANSFER_ROLE"); | ||
vm.prank(deployer); | ||
openEdition.revokeRole(role, address(0)); | ||
|
||
vm.expectRevert(bytes("!T")); | ||
openEdition.beforeTokenTransfers(from, to, 0, 1); | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
src/test/open-edition/_beforeTokenTransfers/_beforeTokenTransfers.tree
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
function _beforeTokenTransfers( | ||
address from, | ||
address to, | ||
uint256 startTokenId_, | ||
uint256 quantity | ||
) | ||
└── when address(0) does not have the transfer role | ||
└── when from does not equal address(0) | ||
└── when to does not equal address(0) | ||
└── when from does not have the transfer role | ||
└── when to does not have the transfer role | ||
└── it should revert ✅ |
128 changes: 128 additions & 0 deletions
128
src/test/open-edition/_canSetFunctions/_canSetFunctions.t.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
// SPDX-License-Identifier: Apache-2.0 | ||
pragma solidity ^0.8.0; | ||
|
||
import { OpenEditionERC721 } from "contracts/prebuilts/open-edition/OpenEditionERC721.sol"; | ||
import { TWProxy } from "contracts/infra/TWProxy.sol"; | ||
|
||
// Test imports | ||
import "src/test/utils/BaseTest.sol"; | ||
|
||
contract OpenEditionERC721Harness is OpenEditionERC721 { | ||
function canSetPrimarySaleRecipient() external view returns (bool) { | ||
return _canSetPrimarySaleRecipient(); | ||
} | ||
|
||
function canSetOwner() external view returns (bool) { | ||
return _canSetOwner(); | ||
} | ||
|
||
/// @dev Checks whether royalty info can be set in the given execution context. | ||
function canSetRoyaltyInfo() external view returns (bool) { | ||
return _canSetRoyaltyInfo(); | ||
} | ||
|
||
/// @dev Checks whether contract metadata can be set in the given execution context. | ||
function canSetContractURI() external view returns (bool) { | ||
return _canSetContractURI(); | ||
} | ||
|
||
/// @dev Checks whether platform fee info can be set in the given execution context. | ||
function canSetClaimConditions() external view returns (bool) { | ||
return _canSetClaimConditions(); | ||
} | ||
|
||
/// @dev Returns whether the shared metadata of tokens can be set in the given execution context. | ||
function canSetSharedMetadata() external view virtual returns (bool) { | ||
return _canSetSharedMetadata(); | ||
} | ||
} | ||
|
||
contract OpenEditionERC721Test_canSetFunctions is BaseTest { | ||
OpenEditionERC721Harness public openEdition; | ||
|
||
address private openEditionImpl; | ||
|
||
function setUp() public override { | ||
super.setUp(); | ||
openEditionImpl = address(new OpenEditionERC721Harness()); | ||
vm.prank(deployer); | ||
openEdition = OpenEditionERC721Harness( | ||
address( | ||
new TWProxy( | ||
openEditionImpl, | ||
abi.encodeCall( | ||
OpenEditionERC721.initialize, | ||
( | ||
deployer, | ||
NAME, | ||
SYMBOL, | ||
CONTRACT_URI, | ||
forwarders(), | ||
saleRecipient, | ||
royaltyRecipient, | ||
royaltyBps | ||
) | ||
) | ||
) | ||
) | ||
); | ||
} | ||
|
||
/*/////////////////////////////////////////////////////////////// | ||
Unit tests: misc | ||
//////////////////////////////////////////////////////////////*/ | ||
|
||
function test_canSetPrimarySaleRecipient_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetPrimarySaleRecipient()); | ||
} | ||
|
||
function test_canSetPrimarySaleRecipient_returnFalse() public { | ||
assertFalse(openEdition.canSetPrimarySaleRecipient()); | ||
} | ||
|
||
function test_canSetOwner_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetOwner()); | ||
} | ||
|
||
function test_canSetOwner_returnFalse() public { | ||
assertFalse(openEdition.canSetOwner()); | ||
} | ||
|
||
function test_canSetRoyaltyInfo_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetRoyaltyInfo()); | ||
} | ||
|
||
function test_canSetRoyaltyInfo_returnFalse() public { | ||
assertFalse(openEdition.canSetRoyaltyInfo()); | ||
} | ||
|
||
function test_canSetContractURI_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetContractURI()); | ||
} | ||
|
||
function test_canSetContractURI_returnFalse() public { | ||
assertFalse(openEdition.canSetContractURI()); | ||
} | ||
|
||
function test_canSetClaimConditions_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetClaimConditions()); | ||
} | ||
|
||
function test_canSetClaimConditions_returnFalse() public { | ||
assertFalse(openEdition.canSetClaimConditions()); | ||
} | ||
|
||
function test_canSetSharedMetadata_returnTrue() public { | ||
vm.prank(deployer); | ||
assertTrue(openEdition.canSetSharedMetadata()); | ||
} | ||
|
||
function test_canSetSharedMetadata_returnFalse() public { | ||
assertFalse(openEdition.canSetSharedMetadata()); | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
src/test/open-edition/_canSetFunctions/_canSetFunctions.tree
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
function _canSetPrimarySaleRecipient() | ||
├── when _msgSender has DEFAULT_ADMIN_ROLE | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have DEFAULT_ADMIN_ROLE | ||
└── it should return false ✅ | ||
|
||
function _canSetOwner() | ||
├── when _msgSender has DEFAULT_ADMIN_ROLE | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have DEFAULT_ADMIN_ROLE | ||
└── it should return false ✅ | ||
|
||
|
||
function _canSetRoyaltyInfo() | ||
├── when _msgSender has DEFAULT_ADMIN_ROLE | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have DEFAULT_ADMIN_ROLE | ||
└── it should return false ✅ | ||
|
||
|
||
function _canSetContractURI() | ||
├── when _msgSender has DEFAULT_ADMIN_ROLE | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have DEFAULT_ADMIN_ROLE | ||
└── it should return false ✅ | ||
|
||
|
||
function _canSetClaimConditions() | ||
├── when _msgSender has DEFAULT_ADMIN_ROLE | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have DEFAULT_ADMIN_ROLE | ||
└── it should return false ✅ | ||
|
||
|
||
function _canSetSharedMetadata() | ||
├── when _msgSender has minter role | ||
│ └── it should return true ✅ | ||
└── when _msgSender does not have minter role | ||
└── it should return false ✅ |
Oops, something went wrong.