You are here

function MerciUserTestCase::testMerciHoursOfOperation in MERCI (Manage Equipment Reservations, Checkout and Inventory) 6.2

Same name and namespace in other branches
  1. 7.2 tests/merci_user.test \MerciUserTestCase::testMerciHoursOfOperation()

File

tests/merci_user.test, line 152

Class

MerciUserTestCase

Code

function testMerciHoursOfOperation() {

  // Login the admin user.
  $this
    ->drupalLogin($this->admin_user);
  $settings = array(
    'merci_default_reservation_status' => '2',
    'merci_max_days_advance_reservation' => '0',
    'merci_saturday_is_weekend' => '1',
    'merci_sunday_is_weekend' => '1',
    'merci_hours_mon' => '09:00-17:00',
    'merci_hours_tue' => '09:00-17:00',
    'merci_hours_wed' => '09:00-17:00',
    'merci_hours_thu' => '09:00-17:00',
    'merci_hours_fri' => '09:00-17:00',
    'merci_hours_sat' => '09:00-17:00',
    'merci_hours_sun' => '09:00-17:00',
    'merci_hours_admin' => '07:00-22:00',
    'merci_closed_dates' => '12-25',
    'merci_lock' => FALSE,
  );
  $this
    ->merciCreateConfig($settings);

  // Login the merci user.
  $this
    ->drupalLogin($this->merci_user);
  $today = date('Y-m-d');
  $day = strtolower(date('D'));
  $fancy_day = date('l');

  // Test start time to early
  $node = $this->bucket1;
  $edit = array(
    'title' => $this
      ->randomName(),
    'field_merci_date[0][value][date]' => $today,
    'field_merci_date[0][value][time]' => '08:15',
    'field_merci_date[0][value2][date]' => $today,
    'field_merci_date[0][value2][time]' => '11:15',
    'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
  );
  $first = $this
    ->merciCreateNode('merci-reservation', $edit, FALSE);
  $this
    ->assertText(t("Reservations cannot start at a time before 9:00."));

  // Test end time to late
  $node = $this->bucket1;
  $edit = array(
    'title' => $this
      ->randomName(),
    'field_merci_date[0][value][date]' => $today,
    'field_merci_date[0][value][time]' => '16:15',
    'field_merci_date[0][value2][date]' => $today,
    'field_merci_date[0][value2][time]' => '23:15',
    'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
  );
  $first = $this
    ->merciCreateNode('merci-reservation', $edit, FALSE);
  $this
    ->assertText(t("Reservations cannot end at a time after 17:00."));

  // Login the admin user.
  $this
    ->drupalLogin($this->admin_user);
  $settings = array(
    'merci_default_reservation_status' => '2',
    'merci_max_days_advance_reservation' => '0',
    'merci_saturday_is_weekend' => '1',
    'merci_sunday_is_weekend' => '1',
    'merci_hours_mon' => '09:00-17:00',
    'merci_hours_tue' => '09:00-17:00',
    'merci_hours_wed' => '09:00-17:00',
    'merci_hours_thu' => '09:00-17:00',
    'merci_hours_fri' => '09:00-17:00',
    'merci_hours_sat' => '09:00-17:00',
    'merci_hours_sun' => '09:00-17:00',
    'merci_hours_admin' => '07:00-22:00',
    'merci_closed_dates' => '12-25',
    'merci_lock' => FALSE,
  );
  unset($settings['merci_hours_' . $day]);
  $form_state['values'] = $settings;
  module_load_include('inc', 'merci', 'includes/merci.admin');
  merci_admin_settings_submit($form, &$form_state);

  //$this->merciCreateConfig($settings);

  // Login the merci user.
  $this
    ->drupalLogin($this->merci_user);

  // Test start day on closed day
  // Test end day on closed day
  $node = $this->bucket1;
  $edit = array(
    'title' => $this
      ->randomName(),
    'field_merci_date[0][value][date]' => $today,
    'field_merci_date[0][value][time]' => '09:15',
    'field_merci_date[0][value2][date]' => $today,
    'field_merci_date[0][value2][time]' => '10:15',
    'merci_reservation_items[choice_1][merci_item_nid]' => $node->type,
  );
  $first = $this
    ->merciCreateNode('merci-reservation', $edit, FALSE);
  $this
    ->assertRaw(t("Reservations cannot start on a %day.", array(
    '%day' => $fancy_day,
  )));
  $this
    ->assertRaw(t("Reservations cannot end on a %day.", array(
    '%day' => $fancy_day,
  )));
}