<?php
// $Id$

/**
 * @file
 * Webform module permission tests.
 */

include_once(dirname(__FILE__) .'/webform.test');

class WebformPermissionsTestCase extends WebformTestCase {
  /**
   * Implementation of getInfo().
   */
  function getInfo() {
    return array(
      'name' => t('Webform permissions'),
      'description' => t('Create webforms and check editing and access permissions.'),
      'group' => t('Webform'),
    );
  }

  /**
   * Implementation of setUp().
   */
  function setUp() {
    parent::setUp();
  }

  /**
   * Implementation of tearDown().
   */
  function tearDown() {
    parent::tearDown();
  }

  /**
   * Create a webform node in which authenticated users have access to submit.
  */
  function testWebformSubmitAccess() {
    $this->webformReset();
    $node = $this->webformTestForm();
    $node->webform['roles'] = array(2);
    node_save($node);

    // Test that the authenticated user is able to access.
    $this->drupalLogin($this->webform_users['userAccess']);
    $this->drupalGet('node/'. $node->nid);
    $this->assertText($node->body, t('Webform node created and accessible to authenticated users at !url', array('!url' => 'node/'. $node->nid)), t('Webform'));

    // Confirm that the submission has been created.
    $this->drupalPost(NULL, array(), 'Submit');
    $this->assertText($node->webform['confirmation'], t('Confirmation message "@confirmation" received.', array('@confirmation' => $node->webform['confirmation'])), t('Webform'));
    $this->drupalLogout();

    // The anonymous user should not be able to submit.
    $this->drupalGet('node/'. $node->nid);
    // Note: Should be: You must <a href="!login">login</a> or <a href="!register">register</a> to view this form.
    // Something in SimpleTest isn't handling the string correctly.
    $this->assertText(t(' to view this form.', array('!login' => url('user/login'), '!register' => url('user/register'))), t('Anonymous user is not allowed to submit form.'), t('Webform'));
    $this->drupalLogout();
  }

  /**
   * Create webform
   */

}
