View source
<?php
require_once drupal_get_path('module', 'merci') . '/tests/merci_testcase.php';
class MerciIssueTestCase extends MerciTestCase {
public $bucket1;
public $bucket2;
public $resource;
public $merci_user;
public $merci_role;
public static function getInfo() {
return array(
'name' => 'MERCI issue testing',
'description' => 'Prevent regression in MERCI issues.',
'group' => 'Merci',
);
}
function setUp() {
parent::setUp();
$this->bucket1 = $this
->merciCreateItem('bucket');
$this->bucket2 = $this
->merciCreateItem('bucket');
$this->resource = $this
->merciCreateItem('resource');
$this->merci_role = $this
->drupalCreateRole(array(
'view revisions',
'revert revisions',
'create confirmed reservations',
'edit own bucket content',
'delete own bucket content',
'edit own resource content',
'delete own resource content',
'create reservations',
));
$this->merci_user = $this
->drupalCreateUser(array(
'view revisions',
'revert revisions',
'create confirmed reservations',
'edit own bucket content',
'delete own bucket content',
'edit own resource content',
'delete own resource content',
'create reservations',
'create merci_reservation content',
'edit own merci_reservation content',
'delete own merci_reservation content',
));
$edit = array(
'roles' => $this->merci_user->roles + array(
$this->merci_role => $this->merci_role,
),
);
user_save($this->merci_user, $edit);
$edit = array(
'roles' => $this->admin_user->roles + array(
$this->merci_role => $this->merci_role,
),
);
user_save($this->admin_user, $edit);
}
function testIssue1103328() {
$this
->drupalLogin($this->merci_user);
$node = $this->bucket1;
$edit = array(
'title' => $this
->randomName(),
'field_merci_date[und][0][value][date]' => '2011-03-25',
'field_merci_date[und][0][value][time]' => '09:45',
'field_merci_date[und][0][value2][date]' => '2011-03-25',
'field_merci_date[und][0][value2][time]' => '10:45',
'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
);
$first = $this
->merciCreateNode('merci-reservation', $edit);
$this
->assertText(t("@title has been created", array(
'@title' => $edit['title'],
)));
$this
->drupalLogin($this->admin_user);
$node = $this->bucket2;
$edit = array(
'merci_reservation_items[1][merci_item_nid]' => $node->nid,
);
$title = $first->title;
$first = $this
->merciUpdateNode($first->nid, $edit);
$this
->assertText(t("@title has been updated.", array(
'@title' => $title,
)));
$this
->drupalLogin($this->merci_user);
$node = $this->bucket2;
$edit = array(
'title' => $this
->randomName(),
'field_merci_date[und][0][value][date]' => '2011-03-25',
'field_merci_date[und][0][value][time]' => '13:45',
'field_merci_date[und][0][value2][date]' => '2011-03-25',
'field_merci_date[und][0][value2][time]' => '15:45',
'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
);
$second = $this
->merciCreateNode('merci-reservation', $edit);
$this
->assertText(t("@title has been created", array(
'@title' => $edit['title'],
)));
$node = $this->bucket1;
$edit = array(
'title' => $this
->randomName(),
'field_merci_date[und][0][value][date]' => '2011-03-25',
'field_merci_date[und][0][value][time]' => '10:15',
'field_merci_date[und][0][value2][date]' => '2011-03-25',
'field_merci_date[und][0][value2][time]' => '15:15',
'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
);
$third = $this
->merciCreateNode('merci-reservation', $edit);
$this
->assertText(t("@title has been created", array(
'@title' => $edit['title'],
)));
}
function testIssue1070662() {
$this
->drupalLogin($this->merci_user);
$node = $this->resource;
$edit = array(
'field_merci_date[und][0][value][date]' => '2011-01-05',
'field_merci_date[und][0][value][time]' => '09:15',
'field_merci_date[und][0][value2][date]' => '2011-01-05',
'field_merci_date[und][0][value2][time]' => '11:15',
'merci_reservation_items[choice_1][merci_item_nid]' => $node->nid,
);
$third = $this
->merciCreateNode('merci-reservation', $edit, FALSE);
$this
->assertText(t("Title field is required."));
$this
->assertNoText(t("Reservations cannot start at a time before"));
}
function testIssue1070658() {
$this
->drupalLogin($this->merci_user);
$node = $this->bucket1;
$edit = array(
'title' => $this
->randomName(),
'field_merci_date[und][0][value][date]' => '2011-01-05',
'field_merci_date[und][0][value][time]' => '09:15',
'field_merci_date[und][0][value2][date]' => '2011-01-05',
'field_merci_date[und][0][value2][time]' => '11:15',
'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
'merci_reservation_items[choice_2][merci_item_nid]' => $node->type,
);
$first = $this
->merciCreateNode('merci-reservation', $edit);
$this
->assertText(t("@title has been created", array(
'@title' => $edit['title'],
)));
$staff_user = $this
->drupalCreateUser(array(
'view revisions',
'revert revisions',
'create confirmed reservations',
'edit own bucket content',
'delete own bucket content',
'edit own resource content',
'delete own resource content',
'create reservations',
'manage reservations',
'create merci_reservation content',
'edit any merci_reservation content',
'delete any merci_reservation content',
'administer nodes',
));
$this
->drupalLogin($staff_user);
$edit = array(
'merci_reservation_items[1][merci_item_nid]' => $node->nid,
'merci_reservation_items[2][merci_item_nid]' => $node->nid,
);
$fourth = $this
->merciUpdateNode($first->nid, $edit);
$this
->assertText(t("You've selected too many @name", array(
'@name' => $node->title,
)));
}
}