| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: link.token.test,v 1.1.2.7 2010/06/14 18:14:11 jcfiala Exp $ 3 4 /** 5 * @file 6 * Contains simpletests making sure token integration works. 7 */ 8 9 /** 10 * Testing that tokens can be used in link titles 11 */ 12 class LinkTokenTest extends ContentCrudTestCase { 13 14 public $permissions = array( 15 'access content', 16 'administer content types', 17 'administer nodes', 18 'administer filters', 19 'access comments', 20 'post comments', 21 'post comments without approval', 22 'access administration pages', 23 ); 24 25 /** 26 * Implementation of getInfo(). 27 */ 28 function getInfo() { 29 return array( 30 'name' => t('Link tokens - browser test'), 31 'description' => t('Tests including tokens in link titles, making sure they appear in node views. <strong>Requires <a href="@token_link">Token module</a>.</strong>'), 32 'group' => t('Link'), 33 ); 34 } 35 36 /** 37 * Implementation of setUp(). 38 */ 39 function setUp() { 40 parent::setUp('content', 'link', 'token'); 41 } 42 43 /** 44 * Creates a link field with a required title enabled for user-entered tokens. 45 * Creates a node with a token in the link title and checks the value. 46 */ 47 function testUserTokenLinkCreate() { 48 $account = $this->drupalCreateUser(array('administer content types', 'access content', 'create page content')); 49 $this->drupalLogin($account); 50 51 // create field 52 $name = strtolower($this->randomName()); 53 $edit = array( 54 '_add_new_field[label]' => $name, 55 '_add_new_field[field_name]' => $name, 56 '_add_new_field[type]' => 'link', 57 '_add_new_field[widget_type]' => 'link', 58 ); 59 $this->drupalPost('admin/content/node-type/page/fields', $edit, t('Save')); 60 $this->drupalPost(NULL, array( 61 'title' => 'required', 62 'enable_tokens' => 1), t('Save field settings')); 63 64 // Is field created? 65 $this->assertRaw(t('Added field %label.', array('%label' => $name)), 'Field added'); 66 67 // create page form 68 $this->drupalGet('node/add/page'); 69 $field_name = 'field_' . $name; 70 $this->assertField($field_name . '[0][title]', 'Title found'); 71 $this->assertField($field_name . '[0][url]', 'URL found'); 72 73 $input = array( 74 'href' => 'http://example.com/' . $this->randomName(), 75 'label' => $this->randomName(), 76 ); 77 78 $this->drupalLogin($account); 79 $this->drupalGet('node/add/page'); 80 81 $edit = array( 82 'title' => $input['label'], 83 $field_name . '[0][title]' => $input['label'] . " [type]", 84 $field_name . '[0][url]' => $input['href'], 85 ); 86 $this->drupalPost(NULL, $edit, t('Save')); 87 $url = $this->getUrl(); 88 89 // change to anonymous user 90 $this->drupalLogout(); 91 $this->drupalGet($url); 92 93 $this->assertRaw(l($input['label'] . ' page', $input['href'])); 94 } 95 96 97 /** 98 * Creates a link field with a static title and an admin-entered token. 99 * Creates a node with a link and checks the title value. 100 */ 101 function testStaticTokenLinkCreate() { 102 $account = $this->drupalCreateUser(array('administer content types', 'access content', 'create page content')); 103 $this->drupalLogin($account); 104 105 // create field 106 $name = strtolower($this->randomName()); 107 $edit = array( 108 '_add_new_field[label]' => $name, 109 '_add_new_field[field_name]' => $name, 110 '_add_new_field[type]' => 'link', 111 '_add_new_field[widget_type]' => 'link', 112 ); 113 $this->drupalPost('admin/content/node-type/page/fields', $edit, t('Save')); 114 $this->drupalPost(NULL, array( 115 'title' => 'value', 116 'title_value' => $name . ' [type]', 117 'enable_tokens' => TRUE, 118 ), t('Save field settings')); 119 120 // Is filed created? 121 $this->assertRaw(t('Added field %label.', array('%label' => $name)), 'Field added'); 122 123 // create page form 124 $this->drupalGet('node/add/page'); 125 $field_name = 'field_' . $name; 126 $this->assertField($field_name . '[0][url]', 'URL found'); 127 128 $input = array( 129 'href' => 'http://example.com/' . $this->randomName() 130 ); 131 132 $this->drupalLogin($account); 133 $this->drupalGet('node/add/page'); 134 135 $edit = array( 136 'title' => $name, 137 $field_name . '[0][url]' => $input['href'], 138 ); 139 $this->drupalPost(NULL, $edit, t('Save')); 140 141 $url = $this->getUrl(); 142 143 // change to anonymous user 144 $this->drupalLogout(); 145 $this->drupalGet($url); 146 147 $this->assertRaw(l($name . ' page', $input['href'])); 148 } 149 150 /** 151 * Creates a link field with a static title and an admin-entered token. 152 * Creates a node with a link and checks the title value. 153 * 154 * Basically, I want to make sure the [title-raw] token works, because it's a 155 * token that changes from node to node, where [type]'s always going to be the 156 * same. 157 */ 158 function testStaticTokenLinkCreate2() { 159 $account = $this->drupalCreateUser(array('administer content types', 'access content', 'create page content')); 160 $this->drupalLogin($account); 161 162 // create field 163 $name = strtolower($this->randomName()); 164 $edit = array( 165 '_add_new_field[label]' => $name, 166 '_add_new_field[field_name]' => $name, 167 '_add_new_field[type]' => 'link', 168 '_add_new_field[widget_type]' => 'link', 169 ); 170 $this->drupalPost('admin/content/node-type/page/fields', $edit, t('Save')); 171 $this->drupalPost(NULL, array( 172 'title' => 'value', 173 'title_value' => $name . ' [title-raw]', 174 'enable_tokens' => TRUE, 175 ), t('Save field settings')); 176 177 // Is field created? 178 $this->assertRaw(t('Added field %label.', array('%label' => $name)), 'Field added'); 179 180 // create page form 181 $this->drupalGet('node/add/page'); 182 $field_name = 'field_' . $name; 183 $this->assertField($field_name . '[0][url]', 'URL found'); 184 185 $input = array( 186 'href' => 'http://example.com/' . $this->randomName() 187 ); 188 189 $this->drupalLogin($account); 190 $this->drupalGet('node/add/page'); 191 192 $edit = array( 193 'title' => $name, 194 $field_name . '[0][url]' => $input['href'], 195 ); 196 $this->drupalPost(NULL, $edit, t('Save')); 197 198 $url = $this->getUrl(); 199 200 // change to anonymous user 201 $this->drupalLogout(); 202 $this->drupalGet($url); 203 204 $this->assertRaw(l($name .' '. $name, $input['href'])); 205 } 206 207 function test_Link_With_Title_Attribute_token_url_form() { 208 $this->loginWithPermissions($this->permissions); 209 $this->acquireContentTypes(1); 210 $field_settings = array( 211 'type' => 'link', 212 'widget_type' => 'link', 213 'type_name' => $this->content_types[0]->name, 214 'attributes' => array( 215 'class' => '', 216 'target' => 'default', 217 'rel' => 'nofollow', 218 'title' => '', 219 ), 220 ); 221 222 $field = $this->createField($field_settings, 0); 223 //$this->fail('<pre>'. print_r($field, TRUE) .'</pre>'); 224 $field_name = $field['field_name']; 225 $field_db_info = content_database_info($field); 226 $url_type = str_replace('_', '-', $this->content_types[0]->type); 227 228 $edit = array('attributes[title]' => '['. $field_name .'-url]', 229 'enable_tokens' => TRUE); 230 231 $this->drupalPost('admin/content/node-type/'. $url_type .'/fields/'. $field['field_name'], 232 $edit, t('Save field settings')); 233 $this->assertText(t('Saved field @field_name', array('@field_name' => $field['field_name']))); 234 235 // So, having saved this field_name, let's see if it works... 236 $this->acquireNodes(1); 237 238 $node = node_load($this->nodes[0]->nid); 239 240 $this->drupalGet('node/'. $this->nodes[0]->nid); 241 242 $edit = array(); 243 $test_link_url = 'http://www.example.com/test'; 244 $edit[$field['field_name'] .'[0][url]'] = $test_link_url; 245 $title = 'title_'. $this->randomName(20); 246 $edit[$field['field_name'] .'[0][title]'] = $title; 247 248 $this->drupalPost('node/'. $this->nodes[0]->nid .'/edit', $edit, t('Save')); 249 250 // Make sure we get a new version! 251 $node = node_load($this->nodes[0]->nid, NULL, TRUE); 252 $this->assertText(t('@type @title has been updated.', 253 array('@title' => $node->title, 254 '@type' => $this->content_types[0]->name))); 255 256 $this->drupalGet('node/'. $node->nid); 257 $this->assertText($title, 'Make sure the link title/text shows'); 258 $this->assertRaw(' title="'. $test_link_url .'"', "Do we show the link url as the title attribute?"); 259 $this->assertNoRaw(' title="['. $field_name .'-url]"'); 260 $this->assertTrue(module_exists('token'), t('Assure that Token Module is enabled.')); 261 //$this->fail($this->content); 262 } 263 264 /** 265 * If the title of the link is set to the title attribute, then the title 266 * attribute isn't supposed to show. 267 */ 268 function test_Link_With_Title_Attribute_token_title_form() { 269 $this->loginWithPermissions($this->permissions); 270 $this->acquireContentTypes(1); 271 $field_settings = array( 272 'type' => 'link', 273 'widget_type' => 'link', 274 'type_name' => $this->content_types[0]->name, 275 'attributes' => array( 276 'class' => '', 277 'target' => 'default', 278 'rel' => 'nofollow', 279 'title' => '', 280 ), 281 ); 282 283 $field = $this->createField($field_settings, 0); 284 $field_name = $field['field_name']; 285 $field_db_info = content_database_info($field); 286 $url_type = str_replace('_', '-', $this->content_types[0]->type); 287 288 $edit = array('attributes[title]' => '['. $field_name .'-title]', 289 'enable_tokens' => TRUE); 290 291 $this->drupalPost('admin/content/node-type/'. $url_type .'/fields/'. $field['field_name'], 292 $edit, t('Save field settings')); 293 $this->assertText(t('Saved field @field_name', array('@field_name' => $field['field_name']))); 294 295 // So, having saved this field_name, let's see if it works... 296 $this->acquireNodes(1); 297 298 $node = node_load($this->nodes[0]->nid); 299 300 $this->drupalGet('node/'. $this->nodes[0]->nid); 301 302 $edit = array(); 303 $edit[$field['field_name'] .'[0][url]'] = 'http://www.example.com/test'; 304 $title = 'title_'. $this->randomName(20); 305 $edit[$field['field_name'] .'[0][title]'] = $title; 306 307 $this->drupalPost('node/'. $this->nodes[0]->nid .'/edit', $edit, t('Save')); 308 309 // Make sure we get a new version! 310 $node = node_load($this->nodes[0]->nid, NULL, TRUE); 311 $this->assertText(t('@type @title has been updated.', 312 array('@title' => $node->title, 313 '@type' => $this->content_types[0]->name))); 314 315 $this->drupalGet('node/'. $node->nid); 316 $this->assertText($title, 'Make sure the link title/text shows'); 317 $this->assertNoRaw(' title="'. $title .'"', "We should not show the link title as the title attribute?"); 318 $this->assertNoRaw(' title="['. $field_name .'-title]"'); 319 //$this->fail($this->content); 320 } 321 322 /** 323 * Trying to set the url to contain a token. 324 */ 325 function testUserTokenLinkCreateInURL() { 326 $account = $this->drupalCreateUser(array('administer content types', 'access content', 'create page content')); 327 $this->drupalLogin($account); 328 329 // create field 330 $name = strtolower($this->randomName()); 331 $edit = array( 332 '_add_new_field[label]' => $name, 333 '_add_new_field[field_name]' => $name, 334 '_add_new_field[type]' => 'link', 335 '_add_new_field[widget_type]' => 'link', 336 ); 337 $this->drupalPost('admin/content/node-type/page/fields', $edit, t('Save')); 338 $this->drupalPost(NULL, array( 339 'title' => 'required', 340 'enable_tokens' => 1), t('Save field settings')); 341 342 // Is field created? 343 $this->assertRaw(t('Added field %label.', array('%label' => $name)), 'Field added'); 344 345 // create page form 346 $this->drupalGet('node/add/page'); 347 $field_name = 'field_' . $name; 348 $this->assertField($field_name . '[0][title]', 'Title found'); 349 $this->assertField($field_name . '[0][url]', 'URL found'); 350 351 $input = array( 352 'href' => 'http://example.com/' . $this->randomName(), 353 'label' => $this->randomName(), 354 ); 355 356 $this->drupalLogin($account); 357 $this->drupalGet('node/add/page'); 358 359 $edit = array( 360 'title' => $input['label'], 361 $field_name . '[0][title]' => $input['label'], 362 $field_name . '[0][url]' => $input['href'] . "/[type]", 363 ); 364 $this->drupalPost(NULL, $edit, t('Save')); 365 $url = $this->getUrl(); 366 367 // change to anonymous user 368 $this->drupalLogout(); 369 $this->drupalGet($url); 370 371 $this->assertRaw(l($input['label'], $input['href'] .'/page')); 372 //$this->fail($this->content); 373 } 374 375 /** 376 * Trying to set the url to contain a token. 377 */ 378 function testUserTokenLinkCreateInURL2() { 379 $account = $this->drupalCreateUser(array('administer content types', 'access content', 'create page content')); 380 $this->drupalLogin($account); 381 382 // create field 383 $name = strtolower($this->randomName()); 384 $edit = array( 385 '_add_new_field[label]' => $name, 386 '_add_new_field[field_name]' => $name, 387 '_add_new_field[type]' => 'link', 388 '_add_new_field[widget_type]' => 'link', 389 ); 390 $this->drupalPost('admin/content/node-type/page/fields', $edit, t('Save')); 391 $this->drupalPost(NULL, array( 392 'title' => 'required', 393 'enable_tokens' => 1), t('Save field settings')); 394 395 // Is field created? 396 $this->assertRaw(t('Added field %label.', array('%label' => $name)), 'Field added'); 397 398 // create page form 399 $this->drupalGet('node/add/page'); 400 $field_name = 'field_' . $name; 401 $this->assertField($field_name . '[0][title]', 'Title found'); 402 $this->assertField($field_name . '[0][url]', 'URL found'); 403 404 $input = array( 405 'href' => 'http://example.com/' . $this->randomName(), 406 'label' => $this->randomName(), 407 ); 408 409 $this->drupalLogin($account); 410 $this->drupalGet('node/add/page'); 411 412 $edit = array( 413 'title' => $input['label'], 414 $field_name . '[0][title]' => $input['label'], 415 $field_name . '[0][url]' => $input['href'] . "/[author-uid]", 416 ); 417 $this->drupalPost(NULL, $edit, t('Save')); 418 $url = $this->getUrl(); 419 420 // change to anonymous user 421 $this->drupalLogout(); 422 $this->drupalGet($url); 423 424 $this->assertRaw(l($input['label'], $input['href'] .'/'. $account->uid)); 425 } 426 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |