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