| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | <?php/** * Base class for External Link tests. * * Provides common setup stuff and various helper functions */class ExtlinkBaseWebTestCase extends DrupalWebTestCase {  /**   * User with various administrative permissions.   * @var Drupal user   */  protected $admin_user;  /**   * Normal visitor with limited permissions   * @var Drupal user;   */  protected $normal_user;      /**   * Drupal path of the (general) External Links admin page   */  const EXTLINK_ADMIN_PATH = 'admin/config/user-interface/extlink';    function setUp() {    // Enable any module that you will need in your tests.    parent::setUp('extlink');    // Create a normal user.    $permissions = array(      'access comments', 'post comments', 'skip comment approval',      'access content', 'create page content', 'edit own page content',    );    $this->normal_user = $this->drupalCreateUser($permissions);    // Create an admin user.    $permissions[] = 'administer site configuration';    $permissions[] = 'administer permissions';    $permissions[] = 'administer content types';    $this->admin_user = $this->drupalCreateUser($permissions);  }    protected function getNodeFormValues() {    $edit = array(      'title' => 'node_title ' . $this->randomName(32),      'body[' . LANGUAGE_NONE . '][0][value]' => 'node_body ' . $this->randomName(256) . ' <a href="http://google.com">Google!</a>',    );    return $edit;  }    /**   * Test if External Link is present   */  protected function assertExternalLinkPresence() {    $elements = $this->xpath('//span[@class="ext"]');    if (count($elements) > 0)       $this->pass('There should be an External Link on the form.', 'External Links');    else       $this->fail('There should be an External Link on the form.', 'External Links');  }}class ExtlinkTestCase extends ExtlinkBaseWebTestCase {  public static function getInfo() {    return array(      'name' => t('General External Links functionality'),      'description' => t('Testing the basic functionality of External Links'),      'group' => t('External Links'),    );  }}class ExtlinkAdminTestCase extends ExtlinkBaseWebTestCase {  public static function getInfo() {    return array(      'name' => t('External Links administration functionality'),      'description' => t('Testing of the External Links administration interface and functionality.'),      'group' => t('External Links'),    );  }  /**   * Test access to the admin pages.   */  function testAdminAccess() {    $this->drupalLogin($this->normal_user);    $this->drupalGet(self::EXTLINK_ADMIN_PATH);    file_put_contents('tmp.simpletest.html', $this->drupalGetContent());    $this->assertText(t('Access denied'), 'Normal users should not be able to access the External Links admin pages', 'External Links');    $this->drupalLogin($this->admin_user);    $this->drupalGet(self::EXTLINK_ADMIN_PATH);    file_put_contents('tmp.simpletest.html', $this->drupalGetContent());    $this->assertNoText(t('Access denied'), 'Admin users should be able to access the External Links admin pages', 'External Links');  }}?>
 |