提交 d4989d49 编写于 作者: N Nathan Hourt

Ref #123: Write tests, fix bugs

上级 d6f89ca4
......@@ -364,6 +364,8 @@ void apply_eos_setproxy(apply_context& context) {
void apply_eos_updateauth(apply_context& context) {
auto update = context.msg.as<types::updateauth>();
EOS_ASSERT(!update.permission.empty(), message_validate_exception, "Cannot create authority with empty name");
EOS_ASSERT(update.permission != update.parent, message_validate_exception,
"Cannot set an authority as its own parent");
EOS_ASSERT(validate(update.authority), message_validate_exception,
"Invalid authority: ${auth}", ("auth", update.authority));
if (update.permission == "active")
......
......@@ -80,7 +80,7 @@ inline std::vector<Name> sort_names( std::vector<Name>&& names ) {
trx.scope = {#account}; \
trx.emplaceMessage(config::EosContractName, \
vector<types::AccountPermission>{{#account,"active"}}, \
"updateauth", types::updateauth{#account, #authname, parentname, auth}); \
"updateauth", types::updateauth{#account, authname, parentname, auth}); \
trx.expiration = chain.head_block_time() + 100; \
trx.set_reference_block(chain.head_block_id()); \
chain.push_transaction(trx, chain_controller::skip_transaction_signatures); \
......@@ -93,7 +93,7 @@ inline std::vector<Name> sort_names( std::vector<Name>&& names ) {
trx.scope = {#account}; \
trx.emplaceMessage(config::EosContractName, \
vector<types::AccountPermission>{{#account,"active"}}, \
"deleteauth", types::deleteauth{#account, #authname}); \
"deleteauth", types::deleteauth{#account, authname}); \
trx.expiration = chain.head_block_time() + 100; \
trx.set_reference_block(chain.head_block_id()); \
chain.push_transaction(trx, chain_controller::skip_transaction_signatures); \
......
......@@ -171,7 +171,7 @@
#define Make_Account(...) BOOST_PP_OVERLOAD(MKACCT, __VA_ARGS__)(__VA_ARGS__)
/**
* @brief Shorthand way to create or update a named authority on an account
* @brief Shorthand way to create or update named authority on an account
*
* @code{.cpp}
* // Add a new authority named "money" to account "alice" as a child of her active authority
......@@ -181,7 +181,12 @@
*/
#define Set_Authority(...) BOOST_PP_OVERLOAD(SETAUTH, __VA_ARGS__)(__VA_ARGS__)
/**
* @brief Shorthand way to delete a named authority from an account
* @brief Shorthand way to delete named authority from an account
*
* @code{.cpp}
* // Delete authority named "money" from account "alice"
* Delete_Authority(chain, alice, "money");
* @endcode
*/
#define Delete_Authority(...) BOOST_PP_OVERLOAD(DELAUTH, __VA_ARGS__)(__VA_ARGS__)
......
......@@ -392,6 +392,8 @@ BOOST_FIXTURE_TEST_CASE(auth_tests, testing_fixture) {
Make_Key(k1);
Set_Authority(chain, alice, "spending", "active", Key_Authority(k1_public_key));
BOOST_CHECK_THROW(Set_Authority(chain, alice, "spending", "spending", Key_Authority(k1_public_key)),
message_validate_exception);
Set_Authority(chain, alice, "spending", "owner", Key_Authority(k1_public_key));
Delete_Authority(chain, alice, "spending");
} FC_LOG_AND_RETHROW() }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册