| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | <?php/** * @file * Test case for Testing the page example module. * * This file contains the test cases to check if module is performing as * expected. *//** * Functional tests for the Page Example module. * * @ingroup page_example */class PageExampleTestCase extends DrupalWebTestCase {  protected $webUser;  /**   * {@inheritdoc}   */  public static function getInfo() {    return array(      'name' => 'Page example functionality',      'description' => 'Creates page and render the content based on the arguments passed in the URL.',      'group' => 'Examples',    );  }  /**   * Enable modules and create user with specific permissions.   */  public function setUp() {    parent::setUp('page_example');  }  /**   * Generates a random string of ASCII numeric characters (values 48 to 57).   *   * @param int $length   *   Length of random string to generate.   *   * @return string   *   Randomly generated string.   */  protected static function randomNumber($length = 8) {    $str = '';    for ($i = 0; $i < $length; $i++) {      $str .= chr(mt_rand(48, 57));    }    return $str;  }  /**   * Verify that current user has no access to page.   *   * @param string $url   *   URL to verify.   */  public function pageExampleVerifyNoAccess($url) {    // Test that page returns 403 Access Denied.    $this->drupalGet($url);    $this->assertResponse(403);  }  /**   * Functional test for various page types.   */  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');  }}
 |