annotate sites/all/modules/link/tests/link.attribute.test @ 11:b0ee71395280

deleted .DS_Store files
author danieleb <danielebarchiesi@me.com>
date Mon, 28 Oct 2013 16:12:13 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * Basic simpletests to test options on link module.
danielebarchiesi@4 6 */
danielebarchiesi@4 7
danielebarchiesi@4 8 class LinkAttributeCrudTest extends DrupalWebTestCase {
danielebarchiesi@4 9 private $zebra;
danielebarchiesi@4 10
danielebarchiesi@4 11 protected $permissions = array(
danielebarchiesi@4 12 'access content',
danielebarchiesi@4 13 'administer content types',
danielebarchiesi@4 14 'administer nodes',
danielebarchiesi@4 15 'administer filters',
danielebarchiesi@4 16 'access comments',
danielebarchiesi@4 17 'post comments',
danielebarchiesi@4 18 'skip comment approval',
danielebarchiesi@4 19 'access administration pages',
danielebarchiesi@4 20 );
danielebarchiesi@4 21
danielebarchiesi@4 22 public static function getInfo() {
danielebarchiesi@4 23 return array(
danielebarchiesi@4 24 'name' => 'Link Attribute Tests',
danielebarchiesi@4 25 'description' => 'Tests the field attributes, making sure they appear in various displayed situations.',
danielebarchiesi@4 26 'group' => 'Link',
danielebarchiesi@4 27 );
danielebarchiesi@4 28 }
danielebarchiesi@4 29
danielebarchiesi@4 30 function setup() {
danielebarchiesi@4 31 parent::setup('field_ui', 'link');
danielebarchiesi@4 32 $this->zebra = 0;
danielebarchiesi@4 33 // Create and login user.
danielebarchiesi@4 34 $this->web_user = $this->drupalCreateUser(array('administer content types'));
danielebarchiesi@4 35 $this->drupalLogin($this->web_user);
danielebarchiesi@4 36 }
danielebarchiesi@4 37
danielebarchiesi@4 38 protected function createLink($url, $title, $attributes = array()) {
danielebarchiesi@4 39 return array(
danielebarchiesi@4 40 'url' => $url,
danielebarchiesi@4 41 'title' => $title,
danielebarchiesi@4 42 'attributes' => $attributes,
danielebarchiesi@4 43 );
danielebarchiesi@4 44 }
danielebarchiesi@4 45
danielebarchiesi@4 46 protected function assertLinkOnNode($field_name, $link_value, $message = '', $group = 'Other') {
danielebarchiesi@4 47 $this->zebra++;
danielebarchiesi@4 48 $zebra_string = ($this->zebra % 2 == 0) ? 'even' : 'odd';
danielebarchiesi@4 49 $cssFieldLocator = 'field-'. str_replace('_', '-', $field_name);
danielebarchiesi@4 50 $this->assertPattern('@<div class="field field-type-link '. $cssFieldLocator .'".*<div class="field-item '. $zebra_string .'">\s*'. $link_value .'\s*</div>@is',
danielebarchiesi@4 51 $message,
danielebarchiesi@4 52 $group);
danielebarchiesi@4 53 }
danielebarchiesi@4 54
danielebarchiesi@4 55 /**
danielebarchiesi@4 56 * A simple test that just creates a new node type, adds a link field to it, creates a new node of that type, and makes sure
danielebarchiesi@4 57 * that the node is being displayed.
danielebarchiesi@4 58 */
danielebarchiesi@4 59 function testBasic() {
danielebarchiesi@4 60 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 61 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 62 $title = $this->randomName(20);
danielebarchiesi@4 63
danielebarchiesi@4 64 $this->drupalGet('admin/structure/types');
danielebarchiesi@4 65
danielebarchiesi@4 66 // Create the content type.
danielebarchiesi@4 67 $this->clickLink(t('Add content type'));
danielebarchiesi@4 68
danielebarchiesi@4 69 $edit = array (
danielebarchiesi@4 70 'name' => $content_type_friendly,
danielebarchiesi@4 71 'type' => $content_type_machine,
danielebarchiesi@4 72 );
danielebarchiesi@4 73 $this->drupalPost(NULL, $edit, t('Save and add fields'));
danielebarchiesi@4 74 $this->assertText(t('The content type @name has been added.', array('@name' => $content_type_friendly)));
danielebarchiesi@4 75
danielebarchiesi@4 76 // Now add a singleton field.
danielebarchiesi@4 77 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 78 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 79 $single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 80 $edit = array (
danielebarchiesi@4 81 'fields[_add_new_field][label]' => $single_field_name_friendly,
danielebarchiesi@4 82 'fields[_add_new_field][field_name]' => $single_field_name_machine,
danielebarchiesi@4 83 'fields[_add_new_field][type]' => 'link_field',
danielebarchiesi@4 84 'fields[_add_new_field][widget_type]' => 'link_field',
danielebarchiesi@4 85
danielebarchiesi@4 86 );
danielebarchiesi@4 87 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 88
danielebarchiesi@4 89 // We'll go with the default settings for this run-through.
danielebarchiesi@4 90 $this->drupalPost(NULL, array(), t('Save field settings'));
danielebarchiesi@4 91
danielebarchiesi@4 92 // Using all the default settings, so press the button.
danielebarchiesi@4 93 $this->drupalPost(NULL, array(), t('Save settings'));
danielebarchiesi@4 94 $this->assertText(t('Saved @name configuration.', array('@name' => $single_field_name_friendly)));
danielebarchiesi@4 95
danielebarchiesi@4 96 // Somehow clicking "save" isn't enough, and we have to do a
danielebarchiesi@4 97 // node_types_rebuild().
danielebarchiesi@4 98 node_types_rebuild();
danielebarchiesi@4 99 menu_rebuild();
danielebarchiesi@4 100 $type_exists = db_query('SELECT 1 FROM {node_type} WHERE type = :type', array(':type' => $content_type_machine))->fetchField();
danielebarchiesi@4 101 $this->assertTrue($type_exists, 'The new content type has been created in the database.');
danielebarchiesi@4 102
danielebarchiesi@4 103 $permission = 'create ' . $content_type_machine . ' content';
danielebarchiesi@4 104 $permission_edit = 'edit ' . $content_type_machine . ' content';
danielebarchiesi@4 105 // Reset the permissions cache.
danielebarchiesi@4 106 $this->checkPermissions(array($permission), TRUE);
danielebarchiesi@4 107
danielebarchiesi@4 108 // Now that we have a new content type, create a user that has privileges
danielebarchiesi@4 109 // on the content type.
danielebarchiesi@4 110 $permissions = array_merge($this->permissions, array($permission));
danielebarchiesi@4 111 $this->web_user = $this->drupalCreateUser($permissions);
danielebarchiesi@4 112 $this->drupalLogin($this->web_user);
danielebarchiesi@4 113
danielebarchiesi@4 114 // Go to page.
danielebarchiesi@4 115 $this->drupalGet('node/add/'. $content_type_machine);
danielebarchiesi@4 116
danielebarchiesi@4 117 // Add a node.
danielebarchiesi@4 118 $edit = array(
danielebarchiesi@4 119 'title' => $title,
danielebarchiesi@4 120 'field_'. $single_field_name_machine. '[und][0][title]' => 'Link',
danielebarchiesi@4 121 'field_'. $single_field_name_machine. '[und][0][url]' => 'http://www.drupal.org/',
danielebarchiesi@4 122 );
danielebarchiesi@4 123
danielebarchiesi@4 124 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 125 $this->assertText(t('@content_type_friendly @title has been created', array('@content_type_friendly' => $content_type_friendly, '@title' => $title)));
danielebarchiesi@4 126
danielebarchiesi@4 127 $this->drupalGet('node/add/'. $content_type_machine);
danielebarchiesi@4 128
danielebarchiesi@4 129 // Create a node:
danielebarchiesi@4 130 $edit = array(
danielebarchiesi@4 131 'title' => $title,
danielebarchiesi@4 132 'field_' . $single_field_name_machine . '[und][0][url]' => 'http://www.example.com/',
danielebarchiesi@4 133 'field_' . $single_field_name_machine . '[und][0][title]' => 'Display',
danielebarchiesi@4 134 );
danielebarchiesi@4 135
danielebarchiesi@4 136 // Now we can fill in the second item in the multivalue field and save.
danielebarchiesi@4 137 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 138 $this->assertText(t('@content_type_friendly @title has been created', array('@content_type_friendly' => $content_type_friendly, '@title' => $title)));
danielebarchiesi@4 139
danielebarchiesi@4 140 $this->assertText('Display');
danielebarchiesi@4 141 $this->assertLinkByHref('http://www.example.com');
danielebarchiesi@4 142 }
danielebarchiesi@4 143
danielebarchiesi@4 144 protected function createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine) {
danielebarchiesi@4 145 $this->drupalGet('admin/structure/types/manage/' . $content_type_machine . '/fields');
danielebarchiesi@4 146 $edit = array (
danielebarchiesi@4 147 'fields[_add_new_field][label]' => $single_field_name_friendly,
danielebarchiesi@4 148 'fields[_add_new_field][field_name]' => $single_field_name_machine,
danielebarchiesi@4 149 'fields[_add_new_field][type]' => 'link_field',
danielebarchiesi@4 150 'fields[_add_new_field][widget_type]' => 'link_field',
danielebarchiesi@4 151 );
danielebarchiesi@4 152 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 153
danielebarchiesi@4 154 // We'll go with the default settings for this run-through.
danielebarchiesi@4 155 $this->drupalPost(NULL, array(), t('Save field settings'));
danielebarchiesi@4 156
danielebarchiesi@4 157 // Using all the default settings, so press the button.
danielebarchiesi@4 158 $this->drupalPost(NULL, array(), t('Save settings'));
danielebarchiesi@4 159 $this->assertText(t('Saved @name configuration.', array('@name' => $single_field_name_friendly)));
danielebarchiesi@4 160
danielebarchiesi@4 161 // Somehow clicking "save" isn't enough, and we have to do a
danielebarchiesi@4 162 // node_types_rebuild().
danielebarchiesi@4 163 node_types_rebuild();
danielebarchiesi@4 164 menu_rebuild();
danielebarchiesi@4 165 $type_exists = db_query('SELECT 1 FROM {node_type} WHERE type = :type', array(':type' => $content_type_machine))->fetchField();
danielebarchiesi@4 166 $this->assertTrue($type_exists, 'The new content type has been created in the database.');
danielebarchiesi@4 167 }
danielebarchiesi@4 168
danielebarchiesi@4 169 protected function createNodeTypeUser($content_type_machine) {
danielebarchiesi@4 170 $permission = 'create ' . $content_type_machine . ' content';
danielebarchiesi@4 171 $permission_edit = 'edit ' . $content_type_machine . ' content';
danielebarchiesi@4 172 // Reset the permissions cache.
danielebarchiesi@4 173 $this->checkPermissions(array($permission), TRUE);
danielebarchiesi@4 174
danielebarchiesi@4 175 // Now that we have a new content type, create a user that has privileges
danielebarchiesi@4 176 // on the content type.
danielebarchiesi@4 177 $permissions = array_merge($this->permissions, array($permission));
danielebarchiesi@4 178 $this->web_user = $this->drupalCreateUser($permissions);
danielebarchiesi@4 179 $this->drupalLogin($this->web_user);
danielebarchiesi@4 180 }
danielebarchiesi@4 181
danielebarchiesi@4 182 protected function createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $title, $url, $node_title = '') {
danielebarchiesi@4 183 $this->drupalGet('node/add/'. $content_type_machine);
danielebarchiesi@4 184
danielebarchiesi@4 185 if (!$node_title) {
danielebarchiesi@4 186 $node_title = $this->randomName(20);
danielebarchiesi@4 187 }
danielebarchiesi@4 188 $edit = array(
danielebarchiesi@4 189 'title' => $node_title,
danielebarchiesi@4 190 );
danielebarchiesi@4 191 if ($url) {
danielebarchiesi@4 192 $edit['field_' . $single_field_name_machine . '[und][0][url]'] = $url;
danielebarchiesi@4 193 }
danielebarchiesi@4 194 if ($title) {
danielebarchiesi@4 195 $edit['field_' . $single_field_name_machine . '[und][0][title]'] = $title;
danielebarchiesi@4 196 }
danielebarchiesi@4 197
danielebarchiesi@4 198 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 199 $this->assertText(t('@content_type_friendly @title has been created', array('@content_type_friendly' => $content_type_friendly, '@title' => $node_title)));
danielebarchiesi@4 200
danielebarchiesi@4 201 }
danielebarchiesi@4 202
danielebarchiesi@4 203 /**
danielebarchiesi@4 204 * Test the link_plain formatter and it's output.
danielebarchiesi@4 205 */
danielebarchiesi@4 206 function testFormatterPlain() {
danielebarchiesi@4 207 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 208 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 209
danielebarchiesi@4 210 $this->drupalCreateContentType(array(
danielebarchiesi@4 211 'type' => $content_type_machine,
danielebarchiesi@4 212 'name' => $content_type_friendly,
danielebarchiesi@4 213 ));
danielebarchiesi@4 214
danielebarchiesi@4 215 // Now add a singleton field.
danielebarchiesi@4 216 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 217 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 218 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 219 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 220
danielebarchiesi@4 221 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 222 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 223 $edit = array(
danielebarchiesi@4 224 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 225 'fields[field_'. $single_field_name_machine .'][type]' => 'link_plain',
danielebarchiesi@4 226 );
danielebarchiesi@4 227 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 228
danielebarchiesi@4 229 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 230
danielebarchiesi@4 231 $link_tests = array(
danielebarchiesi@4 232 'plain' => array(
danielebarchiesi@4 233 'text' => 'Display',
danielebarchiesi@4 234 'url' => 'http://www.example.com/',
danielebarchiesi@4 235 ),
danielebarchiesi@4 236 'query' => array(
danielebarchiesi@4 237 'text' => 'Display',
danielebarchiesi@4 238 'url' => 'http://www.example.com/?q=test',
danielebarchiesi@4 239 ),
danielebarchiesi@4 240 'fragment' => array(
danielebarchiesi@4 241 'text' => 'Display',
danielebarchiesi@4 242 'url' => 'http://www.example.com/#test',
danielebarchiesi@4 243 ),
danielebarchiesi@4 244 );
danielebarchiesi@4 245
danielebarchiesi@4 246 foreach ($link_tests as $key => $link_test) {
danielebarchiesi@4 247 $link_text = $link_test['text'];
danielebarchiesi@4 248 $link_url = $link_test['url'];
danielebarchiesi@4 249 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 250
danielebarchiesi@4 251 $this->assertText($link_url);
danielebarchiesi@4 252 $this->assertNoText($link_text);
danielebarchiesi@4 253 $this->assertNoLinkByHref($link_url);
danielebarchiesi@4 254 }
danielebarchiesi@4 255 }
danielebarchiesi@4 256
danielebarchiesi@4 257 function testFormatterURL() {
danielebarchiesi@4 258 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 259 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 260
danielebarchiesi@4 261 $this->drupalCreateContentType(array(
danielebarchiesi@4 262 'type' => $content_type_machine,
danielebarchiesi@4 263 'name' => $content_type_friendly,
danielebarchiesi@4 264 ));
danielebarchiesi@4 265
danielebarchiesi@4 266 // Now add a singleton field.
danielebarchiesi@4 267 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 268 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 269 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 270 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 271
danielebarchiesi@4 272 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 273 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 274 $edit = array(
danielebarchiesi@4 275 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 276 'fields[field_'. $single_field_name_machine .'][type]' => 'link_url',
danielebarchiesi@4 277 );
danielebarchiesi@4 278 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 279
danielebarchiesi@4 280 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 281
danielebarchiesi@4 282 $link_tests = array(
danielebarchiesi@4 283 'plain' => array(
danielebarchiesi@4 284 'text' => 'Display',
danielebarchiesi@4 285 'url' => 'http://www.example.com/',
danielebarchiesi@4 286 ),
danielebarchiesi@4 287 'query' => array(
danielebarchiesi@4 288 'text' => 'Display',
danielebarchiesi@4 289 'url' => 'http://www.example.com/?q=test',
danielebarchiesi@4 290 ),
danielebarchiesi@4 291 'fragment' => array(
danielebarchiesi@4 292 'text' => 'Display',
danielebarchiesi@4 293 'url' => 'http://www.example.com/#test',
danielebarchiesi@4 294 ),
danielebarchiesi@4 295 );
danielebarchiesi@4 296
danielebarchiesi@4 297 foreach ($link_tests as $key => $link_test) {
danielebarchiesi@4 298 $link_text = $link_test['text'];
danielebarchiesi@4 299 $link_url = $link_test['url'];
danielebarchiesi@4 300 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 301
danielebarchiesi@4 302 $this->assertNoText($link_text);
danielebarchiesi@4 303 $this->assertLinkByHref($link_url);
danielebarchiesi@4 304 }
danielebarchiesi@4 305 }
danielebarchiesi@4 306
danielebarchiesi@4 307 function testFormatterShort() {
danielebarchiesi@4 308 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 309 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 310
danielebarchiesi@4 311 $this->drupalCreateContentType(array(
danielebarchiesi@4 312 'type' => $content_type_machine,
danielebarchiesi@4 313 'name' => $content_type_friendly,
danielebarchiesi@4 314 ));
danielebarchiesi@4 315
danielebarchiesi@4 316 // Now add a singleton field.
danielebarchiesi@4 317 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 318 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 319 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 320 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 321
danielebarchiesi@4 322 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 323 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 324 $edit = array(
danielebarchiesi@4 325 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 326 'fields[field_'. $single_field_name_machine .'][type]' => 'link_short',
danielebarchiesi@4 327 );
danielebarchiesi@4 328 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 329
danielebarchiesi@4 330 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 331
danielebarchiesi@4 332 $link_tests = array(
danielebarchiesi@4 333 'plain' => array(
danielebarchiesi@4 334 'text' => 'Display',
danielebarchiesi@4 335 'url' => 'http://www.example.com/',
danielebarchiesi@4 336 ),
danielebarchiesi@4 337 'query' => array(
danielebarchiesi@4 338 'text' => 'Display',
danielebarchiesi@4 339 'url' => 'http://www.example.com/?q=test',
danielebarchiesi@4 340 ),
danielebarchiesi@4 341 'fragment' => array(
danielebarchiesi@4 342 'text' => 'Display',
danielebarchiesi@4 343 'url' => 'http://www.example.com/#test',
danielebarchiesi@4 344 ),
danielebarchiesi@4 345 );
danielebarchiesi@4 346
danielebarchiesi@4 347 foreach ($link_tests as $key => $link_test) {
danielebarchiesi@4 348 $link_text = $link_test['text'];
danielebarchiesi@4 349 $link_url = $link_test['url'];
danielebarchiesi@4 350 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 351
danielebarchiesi@4 352 $this->assertText('Link');
danielebarchiesi@4 353 $this->assertNoText($link_text);
danielebarchiesi@4 354 $this->assertLinkByHref($link_url);
danielebarchiesi@4 355 }
danielebarchiesi@4 356 }
danielebarchiesi@4 357
danielebarchiesi@4 358 function testFormatterLabel() {
danielebarchiesi@4 359 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 360 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 361
danielebarchiesi@4 362 $this->drupalCreateContentType(array(
danielebarchiesi@4 363 'type' => $content_type_machine,
danielebarchiesi@4 364 'name' => $content_type_friendly,
danielebarchiesi@4 365 ));
danielebarchiesi@4 366
danielebarchiesi@4 367 // Now add a singleton field.
danielebarchiesi@4 368 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 369 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 370 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 371 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 372
danielebarchiesi@4 373 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 374 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 375 $edit = array(
danielebarchiesi@4 376 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 377 'fields[field_'. $single_field_name_machine .'][type]' => 'link_label',
danielebarchiesi@4 378 );
danielebarchiesi@4 379 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 380
danielebarchiesi@4 381 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 382
danielebarchiesi@4 383 $link_tests = array(
danielebarchiesi@4 384 'plain' => array(
danielebarchiesi@4 385 'text' => 'Display',
danielebarchiesi@4 386 'url' => 'http://www.example.com/',
danielebarchiesi@4 387 ),
danielebarchiesi@4 388 'query' => array(
danielebarchiesi@4 389 'text' => 'Display',
danielebarchiesi@4 390 'url' => 'http://www.example.com/?q=test',
danielebarchiesi@4 391 ),
danielebarchiesi@4 392 'fragment' => array(
danielebarchiesi@4 393 'text' => 'Display',
danielebarchiesi@4 394 'url' => 'http://www.example.com/#test',
danielebarchiesi@4 395 ),
danielebarchiesi@4 396 );
danielebarchiesi@4 397
danielebarchiesi@4 398 foreach ($link_tests as $key => $link_test) {
danielebarchiesi@4 399 $link_text = $link_test['text'];
danielebarchiesi@4 400 $link_url = $link_test['url'];
danielebarchiesi@4 401 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 402
danielebarchiesi@4 403 $this->assertNoText($link_text);
danielebarchiesi@4 404 $this->assertText($single_field_name_friendly);
danielebarchiesi@4 405 $this->assertLinkByHref($link_url);
danielebarchiesi@4 406 }
danielebarchiesi@4 407 }
danielebarchiesi@4 408
danielebarchiesi@4 409 function testFormatterSeparate() {
danielebarchiesi@4 410 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 411 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 412
danielebarchiesi@4 413 $this->drupalCreateContentType(array(
danielebarchiesi@4 414 'type' => $content_type_machine,
danielebarchiesi@4 415 'name' => $content_type_friendly,
danielebarchiesi@4 416 ));
danielebarchiesi@4 417
danielebarchiesi@4 418 // Now add a singleton field.
danielebarchiesi@4 419 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 420 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 421 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 422 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 423
danielebarchiesi@4 424 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 425 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 426 $edit = array(
danielebarchiesi@4 427 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 428 'fields[field_'. $single_field_name_machine .'][type]' => 'link_separate',
danielebarchiesi@4 429 );
danielebarchiesi@4 430 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 431
danielebarchiesi@4 432 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 433
danielebarchiesi@4 434 $plain_url = 'http://www.example.com/';
danielebarchiesi@4 435 $link_tests = array(
danielebarchiesi@4 436 'plain' => array(
danielebarchiesi@4 437 'text' => $this->randomName(20),
danielebarchiesi@4 438 'url' => $plain_url,
danielebarchiesi@4 439 ),
danielebarchiesi@4 440 'query' => array(
danielebarchiesi@4 441 'text' => $this->randomName(20),
danielebarchiesi@4 442 'url' => $plain_url . '?q=test',
danielebarchiesi@4 443 ),
danielebarchiesi@4 444 'fragment' => array(
danielebarchiesi@4 445 'text' => $this->randomName(20),
danielebarchiesi@4 446 'url' => $plain_url . '#test',
danielebarchiesi@4 447 ),
danielebarchiesi@4 448 );
danielebarchiesi@4 449
danielebarchiesi@4 450 foreach ($link_tests as $key => $link_test) {
danielebarchiesi@4 451 $link_text = $link_test['text'];
danielebarchiesi@4 452 $link_url = $link_test['url'];
danielebarchiesi@4 453 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 454
danielebarchiesi@4 455 $this->assertText($link_text);
danielebarchiesi@4 456 $this->assertLink($plain_url);
danielebarchiesi@4 457 $this->assertLinkByHref($link_url);
danielebarchiesi@4 458 }
danielebarchiesi@4 459 }
danielebarchiesi@4 460
danielebarchiesi@4 461 function testFormatterPlainTitle() {
danielebarchiesi@4 462 $content_type_friendly = $this->randomName(20);
danielebarchiesi@4 463 $content_type_machine = strtolower($this->randomName(10));
danielebarchiesi@4 464
danielebarchiesi@4 465 $this->drupalCreateContentType(array(
danielebarchiesi@4 466 'type' => $content_type_machine,
danielebarchiesi@4 467 'name' => $content_type_friendly,
danielebarchiesi@4 468 ));
danielebarchiesi@4 469
danielebarchiesi@4 470 // Now add a singleton field.
danielebarchiesi@4 471 $single_field_name_friendly = $this->randomName(20);
danielebarchiesi@4 472 $single_field_name_machine = strtolower($this->randomName(10));
danielebarchiesi@4 473 //$single_field_name = 'field_'. $single_field_name_machine;
danielebarchiesi@4 474 $this->createSimpleLinkField($single_field_name_machine, $single_field_name_friendly, $content_type_machine);
danielebarchiesi@4 475
danielebarchiesi@4 476 // Okay, now we want to make sure this display is changed:
danielebarchiesi@4 477 $this->drupalGet('admin/structure/types/manage/'. $content_type_machine .'/display');
danielebarchiesi@4 478 $edit = array(
danielebarchiesi@4 479 'fields[field_'. $single_field_name_machine .'][label]' => 'above',
danielebarchiesi@4 480 'fields[field_'. $single_field_name_machine .'][type]' => 'link_title_plain',
danielebarchiesi@4 481 );
danielebarchiesi@4 482 $this->drupalPost(NULL, $edit, t('Save'));
danielebarchiesi@4 483
danielebarchiesi@4 484 $this->createNodeTypeUser($content_type_machine);
danielebarchiesi@4 485
danielebarchiesi@4 486 $link_text = 'Display';
danielebarchiesi@4 487 $link_url = 'http://www.example.com/';
danielebarchiesi@4 488 $this->createNodeForTesting($content_type_machine, $content_type_friendly, $single_field_name_machine, $link_text, $link_url);
danielebarchiesi@4 489
danielebarchiesi@4 490 $this->assertText($link_text);
danielebarchiesi@4 491 $this->assertNoText($link_url);
danielebarchiesi@4 492 $this->assertNoLinkByHref($link_url);
danielebarchiesi@4 493 }
danielebarchiesi@4 494 }