$t->is($user->hasCredential($credential), true, '->hasCredential() can takes an array of credential as a parameter'); // [[root, [supplier, [owner, quasiowner]], accounts]] // root OR (supplier AND (owner OR quasiowner)) OR accounts $user->clearCredentials(); $credential = array(array('root', array('supplier', array('owner', 'quasiowner')), 'accounts')); $t->is($user->hasCredential($credential), false, '->hasCredential() can takes an array of credential as a parameter'); $user->addCredential('root'); $t->is($user->hasCredential($credential), true, '->hasCredential() can takes an array of credential as a parameter'); $user->clearCredentials(); $user->addCredential('supplier'); $t->is($user->hasCredential($credential), false, '->hasCredential() can takes an array of credential as a parameter'); $user->addCredential('owner'); $t->is($user->hasCredential($credential), true, '->hasCredential() can takes an array of credential as a parameter'); $user->addCredential('quasiowner'); $t->is($user->hasCredential($credential), true, '->hasCredential() can takes an array of credential as a parameter'); $user->removeCredential('owner'); $t->is($user->hasCredential($credential), true, '->hasCredential() can takes an array of credential as a parameter'); $user->removeCredential('supplier'); $t->is($user->hasCredential($credential), false, '->hasCredential() can takes an array of credential as a parameter'); $user->clearCredentials(); $user->addCredential('admin'); $user->addCredential('user'); $t->is($user->hasCredential('admin'), true); $t->is($user->hasCredential('user'), true); $user->addCredentials('superadmin', 'subscriber'); $t->is($user->hasCredential('subscriber'), true); $t->is($user->hasCredential('superadmin'), true); // admin and (user or subscriber) $t->is($user->hasCredential(array(array('admin', array('user', 'subscriber')))), true); $user->addCredentials(array('superadmin1', 'subscriber1')); $t->is($user->hasCredential('subscriber1'), true);