function test_set_mixed_rules() { ACL::clear(); $field_rule = array(array('test', array('id' => array('actions' => array('select', 'update')))), array('test', array('name' => array('actions' => array('select', 'update'))))); ACL::set_rules($field_rule, \CrossORM\RULE_TYPE_FIELD); $table_rule = array('test', array('actions' => array('update', 'delete'))); ACL::set_rule($table_rule, \CrossORM\RULE_TYPE_TABLE); $full_rule = array('tables' => array('test' => array('actions' => array('select')))); ACL::set_rule($full_rule); $rules = ACL::get_rules(); $this->assertObjectHasAttribute('default_default', $rules, 'ACL Rules missing default actor at root of object'); echo json_encode(array('field_rule' => $field_rule, 'table_rule' => $table_rule, 'full_rule' => $full_rule, 'result' => $rules, 'flat' => ACL::get_rules(true)), JSON_NUMERIC_CHECK); }