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);
- }
- }
-
- }
|