function OgBehaviorHandlerTestCase::testSetStateOnInsert in Organic groups 7.2
Test settings the OG membership state via field values, when associating a new group-content to a group.
File
- ./
og.test, line 1939
Class
Code
function testSetStateOnInsert() {
module_enable(array(
'og_test',
));
$permissions = array(
'access content',
"create {$this->group_content} content",
'administer group',
);
$user1 = $this
->drupalCreateUser();
$user2 = $this
->drupalCreateUser($permissions);
$user3 = $this
->drupalCreateUser($permissions);
// Create a group.
$entity1 = entity_create('entity_test', array(
'name' => 'main',
'uid' => $user1->uid,
));
$wrapper = entity_metadata_wrapper('entity_test', $entity1);
$wrapper->{OG_GROUP_FIELD}
->set(1);
$wrapper
->save();
og_group('entity_test', $entity1, array(
'entity_type' => 'user',
'entity' => $user2,
));
og_group('entity_test', $entity1, array(
'entity_type' => 'user',
'entity' => $user3,
));
// Post a node, state should be active.
$type = str_replace('_', '-', $this->group_content);
$edit = array(
'title' => 'state-active',
'og_group_ref[und][0][default][]' => array(
$entity1->pid,
),
);
$this
->drupalLogin($user2);
$this
->drupalPost('node/add/' . $type, $edit, t('Save'));
$gids = og_get_entity_groups('node', 1);
$id = key($gids['entity_test']);
$og_membership = og_membership_load($id);
$this
->assertEqual($og_membership->state, OG_STATE_ACTIVE, 'Memebership status is Active');
// Post a node, state should be pending.
$this
->drupalLogin($user3);
$edit['title'] = 'state-pending';
$this
->drupalPost('node/add/' . $type, $edit, t('Save'));
$gids = og_get_entity_groups('node', 2, array(
OG_STATE_PENDING,
));
$id = key($gids['entity_test']);
$og_membership = og_membership_load($id);
$this
->assertEqual($og_membership->state, OG_STATE_PENDING, 'Memebership status is Active');
}