You are here

function PageExampleTestCase::testPageExampleBasic in Examples for Developers 6

Same name and namespace in other branches
  1. 7 page_example/page_example.test \PageExampleTestCase::testPageExampleBasic()

Login user, create an example node, and test blog functionality through the admin and user interfaces.

File

page_example/page_example.test, line 60
Test case for Testing the page example module.

Class

PageExampleTestCase
@file Test case for Testing the page example module.

Code

function testPageExampleBasic() {

  // Verify that anonymous user can't access the pages created by
  // page_example module
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/simple');
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/arguments/1/2');

  // Create a regular user and login.
  $this->web_user = $this
    ->drupalCreateUser();
  $this
    ->drupalLogin($this->web_user);

  // Verify that regular user can't access the pages created by
  // page_example module
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/simple');
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/arguments/1/2');

  // Create a user with permissions to access 'simple' page and login.
  $this->web_user = $this
    ->drupalCreateUser(array(
    'access simple page',
  ));
  $this
    ->drupalLogin($this->web_user);

  // Verify that user can access foo content
  $this
    ->drupalGet('examples/page_example/simple');
  $this
    ->assertResponse(200, t('Simple page content successfully accessed.'));
  $this
    ->assertText(t('The quick brown fox jumps over the lazy dog.'), t('foo content successfully verified.'));

  // Check if user can't access arguments page
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/arguments/1/2');

  // Create a user with permissions to access 'arguments' page and login.
  $this->web_user = $this
    ->drupalCreateUser(array(
    'access arguments page',
  ));
  $this
    ->drupalLogin($this->web_user);

  // Verify that user can access foo content
  $first = $this
    ->randomNumber(3);
  $second = $this
    ->randomNumber(3);
  $this
    ->drupalGet('examples/page_example/arguments/' . $first . '/' . $second);
  $this
    ->assertResponse(200, t('arguments content successfully accessed.'));

  // Verify argument usage
  $this
    ->assertRaw(t("First number was @number.", array(
    '@number' => $first,
  )), t('arguments first argument successfully verified.'));
  $this
    ->assertRaw(t("Second number was @number.", array(
    '@number' => $second,
  )), t('arguments second argument successfully verified.'));
  $this
    ->assertRaw(t('The total was @number.', array(
    '@number' => $first + $second,
  )), t('arguments content successfully verified.'));

  // Verify incomplete argument call to arguments content
  $this
    ->drupalGet('examples/page_example/arguments/' . $first . '/');
  $this
    ->assertText("provides four pages");

  // Verify invalid argument call to arguments content
  $this
    ->drupalGet('examples/page_example/arguments/' . $first . '/' . $this
    ->randomString());
  $this
    ->assertResponse(403, t('Invalid argument for arguments content successfully verified'));

  // Verify invalid argument call to arguments content
  $this
    ->drupalGet('examples/page_example/arguments/' . $this
    ->randomString() . '/' . $second);
  $this
    ->assertResponse(403, t('Invalid argument for arguments content successfully verified'));

  // Check if user can't access simple page
  $this
    ->pageExampleVerifyNoAccess('examples/page_example/simple');
}