| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | <?php/** * @file * Contains simpletests making sure entity_token integration works. *//** * Testing that tokens can be used in link titles */class LinkEntityTokenTest extends LinkBaseTestClass {  public static function getInfo() {    return array(      'name' => 'Link entity tokens test',      'description' => 'Tests that a link field appears properly in entity tokens',      'group' => 'Link',      'dependencies' => array('token', 'entity', 'entity_token'),    );  }  function setUp($modules = array()) {    parent::setUp(array('token', 'entity', 'entity_token'));  }    /**   * Creates a link field, fills it, then uses a loaded node to test tokens.   */  function testFieldTokenNodeLoaded() {    // create field    $settings = array(      'instance[settings][enable_tokens]' => 0,    );    $field_name = $this->createLinkField('page',                                        $settings);    // create page form    $this->drupalGet('node/add/page');    //$field_name = 'field_' . $name;    $this->assertField($field_name . '[und][0][title]', 'Title found');    $this->assertField($field_name . '[und][0][url]', 'URL found');    $token_url_tests = array(      1 => array(        'href' => 'http://example.com/' . $this->randomName(),        'label' => $this->randomName(),      ),      2 => array(        'href' => 'http://example.com/' . $this->randomName() . '?property=value',        'label' => $this->randomName(),      ),      3 => array(        'href' => 'http://example.com/' . $this->randomName() . '#position',        'label' => $this->randomName(),      ),      4 => array(        'href' => 'http://example.com/' . $this->randomName() . '#lower?property=value2',        'label' => $this->randomName(),      ),    );    //$this->assert('pass', '<pre>' . print_r($token_url_tests, TRUE) . '<pre>');    foreach ($token_url_tests as &$input) {      $this->drupalGet('node/add/page');        $edit = array(        'title' => $input['label'],        $field_name . '[und][0][title]' => $input['label'],        $field_name . '[und][0][url]' => $input['href'],      );      $this->drupalPost(NULL, $edit, t('Save'));      $url = $this->getUrl();      $input['url'] = $url;    }    // change to anonymous user    $this->drupalLogout();        foreach ($token_url_tests as $index => $input2) {      $node = node_load($index);      $this->assertNotEqual(NULL, $node, "Do we have a node?");      $this->assertEqual($node->nid, $index, "Test that we have a node.");      $token_name = '[node:' . str_replace('_', '-', $field_name) . ':url]';      $assert_data = token_replace($token_name,                      array('node' => $node));      $this->assertEqual($input2['href'], $assert_data, "Test that the url token has been set to " . $input2['href'] . ' - ' . $assert_data);    }  }    /**   * Creates a link field, fills it, then uses a loaded and node_view'd node to test tokens.   */  function testFieldTokenNodeViewed() {    // create field    $settings = array(      'instance[settings][enable_tokens]' => 0,    );    $field_name = $this->createLinkField('page',                                        $settings);    // create page form    $this->drupalGet('node/add/page');    //$field_name = 'field_' . $name;    $this->assertField($field_name . '[und][0][title]', 'Title found');    $this->assertField($field_name . '[und][0][url]', 'URL found');    $token_url_tests = array(      1 => array(        'href' => 'http://example.com/' . $this->randomName(),        'label' => $this->randomName(),      ),      2 => array(        'href' => 'http://example.com/' . $this->randomName() . '?property=value',        'label' => $this->randomName(),      ),      3 => array(        'href' => 'http://example.com/' . $this->randomName() . '#position',        'label' => $this->randomName(),      ),      4 => array(        'href' => 'http://example.com/' . $this->randomName() . '#lower?property=value2',        'label' => $this->randomName(),      ),    );    //$this->assert('pass', '<pre>' . print_r($token_url_tests, TRUE) . '<pre>');    foreach ($token_url_tests as &$input) {      $this->drupalGet('node/add/page');        $edit = array(        'title' => $input['label'],        $field_name . '[und][0][title]' => $input['label'],        $field_name . '[und][0][url]' => $input['href'],      );      $this->drupalPost(NULL, $edit, t('Save'));      $url = $this->getUrl();      $input['url'] = $url;    }    // change to anonymous user    $this->drupalLogout();        foreach ($token_url_tests as $index => $input2) {      $node = node_load($index);      $node_array = node_view($node, 'full');      $this->assertNotEqual(NULL, $node, "Do we have a node?");      $this->assertEqual($node->nid, $index, "Test that we have a node.");      $token_name = '[node:' . str_replace('_', '-', $field_name) . ':url]';      $assert_data = token_replace($token_name,                      array('node' => $node));      $this->assertEqual($input2['href'], $assert_data, "Test that the url token has been set to " . $input2['href'] . ' - ' . $assert_data);    }  }  }
 |