function PageExampleTestCase::testPageExampleBasic

Functional test for various page types.

File

page_example/page_example.test, line 69

Class

PageExampleTestCase
Functional tests for the Page Example module.

Code

public 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->webUser = $this->drupalCreateUser();
    $this->drupalLogin($this->webUser);
    // 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->webUser = $this->drupalCreateUser(array(
        'access simple page',
    ));
    $this->drupalLogin($this->webUser);
    // Verify that user can access simple content.
    $this->drupalGet('examples/page_example/simple');
    $this->assertResponse(200, 'simple content successfully accessed.');
    $this->assertText(t('The quick brown fox jumps over the lazy dog.'), 'Simple 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 'simple' page and login.
    $this->webUser = $this->drupalCreateUser(array(
        'access arguments page',
    ));
    $this->drupalLogin($this->webUser);
    // Verify that user can access simple content.
    $first = $this->randomNumber(3);
    $second = $this->randomNumber(3);
    $this->drupalGet('examples/page_example/arguments/' . $first . '/' . $second);
    $this->assertResponse(200, 'arguments content successfully accessed.');
    // Verify argument usage.
    $this->assertRaw(t("First number was @number.", array(
        '@number' => $first,
    )), 'arguments first argument successfully verified.');
    $this->assertRaw(t("Second number was @number.", array(
        '@number' => $second,
    )), 'arguments second argument successfully verified.');
    $this->assertRaw(t('The total was @number.', array(
        '@number' => $first + $second,
    )), 'arguments content successfully verified.');
    // Verify incomplete argument call to arguments content.
    $this->drupalGet('examples/page_example/arguments/' . $first . '/');
    $this->assertText("provides two pages");
    // Verify invalid argument call to arguments content.
    $this->drupalGet('examples/page_example/arguments/' . $first . '/' . $this->randomString());
    $this->assertResponse(403, '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, 'Invalid argument for arguments content successfully verified');
    // Check if user can't access simple page.
    $this->pageExampleVerifyNoAccess('examples/page_example/simple');
}