public function PhonefieldCreateTest::testPhonefieldCreateFieldAPI in Phone Field 7
File
- tests/
phonefield.create.test, line 38 - CreateTest.
Class
- PhonefieldCreateTest
- Create phonefield.
Code
public function testPhonefieldCreateFieldAPI() {
// @codingStandardsIgnoreEnd
// Create and login user.
$this->web_user = $this
->drupalCreateUser(array(
'create article content',
'administer content types',
'administer fields',
));
$this
->drupalLogin($this->web_user);
$this
->drupalGet('admin/structure/types/manage/article/fields');
// Now add a Phonefield field to the Article content type.
$single_field_name_friendly = $this
->randomName(20);
$single_field_name_machine = strtolower($this
->randomName(10));
$randomphone = (string) mt_rand(111111111111, 999999999999);
$randomphone[3] = $randomphone[7] = '-';
$edit = array(
'fields[_add_new_field][label]' => $single_field_name_friendly,
'fields[_add_new_field][field_name]' => $single_field_name_machine,
'fields[_add_new_field][type]' => 'phonefield_field',
'fields[_add_new_field][widget_type]' => 'phonefield_field',
);
$this
->drupalPost(NULL, $edit, t('Save'));
$this
->assertText(t('These settings apply to the @field field', array(
'@field' => $single_field_name_friendly,
)));
// We'll go with the default settings for this run-through.
$this
->drupalPost(NULL, array(), t('Save field settings'));
// We will go with the defaults.
$this
->drupalPost(NULL, array(), t('Save settings'));
// Is field created?
$this
->assertRaw(t('Saved %field configuration', array(
'%field' => $single_field_name_friendly,
)), 'Field added');
node_types_rebuild();
menu_rebuild();
$permission = 'create article content';
$this
->checkPermissions(array(
$permission,
), TRUE);
// Save all settings (required?)
$this
->drupalPost(NULL, array(), t('Save'));
$this
->assertText(t('Your settings have been saved.'));
// Create a node with this field and make sure the phonefield shows up.
// Create articke form:
$field_name = 'field_' . $single_field_name_machine;
$this
->drupalGet('node/add/article');
$this
->assertField($field_name . '[und][0][phonenumber]', 'Phonefield found');
$edit = array();
$edit['title'] = $this
->randomName(8);
$edit['body[und][0][value]'] = $this
->randomName(16);
$edit['body[und][0][value]'] = $this
->randomName(16);
$edit[$field_name . '[und][0][phonenumber]'] = $randomphone;
$this
->drupalPost('node/add/article', $edit, t('Save'));
$this
->assertText(t('Article @title has been created.', array(
'@title' => $edit['title'],
)));
$url = $this
->getUrl();
// Change to anonymous user.
$this
->drupalLogout();
$this
->drupalGet($url);
$this
->assertRaw($randomphone, t('Field contains phonenumber %phone.', array(
'%phone' => $randomphone,
)));
}