You are here

public function AgreementCustomUnprivilegedUserTestCase::testAgreementFrequency in Agreement 7.2

Same name and namespace in other branches
  1. 6.2 agreement.test \AgreementCustomUnprivilegedUserTestCase::testAgreementFrequency()

Tests the agreement frequency setting.

File

./agreement.test, line 332
Tests for Agreement module.

Class

AgreementCustomUnprivilegedUserTestCase
Tests the agreement functionality with custom settings.

Code

public function testAgreementFrequency() {

  // A) Agreement required once.
  $this->agreement['settings']['visibility_settings'] = 1;
  $this->agreement['settings']['visibility_pages'] = '<front>';
  agreement_type_save($this->agreement);
  $this->agreement = agreement_type_load($this->agreement['name'], FALSE);
  $this
    ->unprivilegedUserLogin();

  // Go to front page, open agreement.
  $this
    ->drupalGet('node');
  $this
    ->isAgreementPage($this->agreement);
  $this
    ->submitAgreementFormWithAgreeing($this->unprivilegedUser->uid);

  // Log out, log back in, no agreement.
  $this
    ->drupalLogin($this->unprivilegedUser);
  $this
    ->drupalGet('node');
  $this
    ->isNotAgreementPage($this->agreement);

  // B) Agreement required on every login.
  $this->agreement['settings']['frequency'] = 0;
  agreement_type_save($this->agreement);
  $this->agreement = agreement_type_load($this->agreement['name'], FALSE);
  $this
    ->drupalLogin($this->unprivilegedUser);

  // Go to front page, open agreement.
  $this
    ->drupalGet('node');
  $this
    ->isAgreementPage($this->agreement);
  $this
    ->submitAgreementFormWithAgreeing($this->unprivilegedUser->uid);

  // Log out, log back in, open agreement.
  $this
    ->drupalLogin($this->unprivilegedUser);
  $this
    ->drupalGet('node');
  $this
    ->isAgreementPage($this->agreement);

  // Change password, no agreement.
  $this
    ->submitAgreementFormWithAgreeing($this->unprivilegedUser->uid);
  $this->agreement['settings']['visibility_pages'] = '';
  agreement_type_save($this->agreement);
  $this->agreement = agreement_type_load($this->agreement['name'], FALSE);
  $edit = array(
    'current_pass' => $this->unprivilegedUser->pass_raw,
    'pass[pass1]' => $pass = $this
      ->randomString(),
    'pass[pass2]' => $pass,
  );
  $this
    ->drupalPost('user/' . $this->unprivilegedUser->uid . '/edit', $edit, t('Save'));
  $this
    ->isNotAgreementPage($this->agreement);
  $this
    ->assertText(t('The changes have been saved.'), t('Password was changed'));
}