public function RestfulDiscoveryTestCase::testFieldDiscoveryAllowedValues in RESTful 7.2
Same name and namespace in other branches
- 7 tests/RestfulDiscoveryTestCase.test \RestfulDiscoveryTestCase::testFieldDiscoveryAllowedValues()
Field discovery allowed values.
File
- tests/
RestfulDiscoveryTestCase.test, line 180 - Contains RestfulDiscoveryTestCase
Class
- RestfulDiscoveryTestCase
- Class RestfulDiscoveryTestCase.
Code
public function testFieldDiscoveryAllowedValues() {
// Add entity reference fields.
restful_test_add_fields('node', 'article');
$handler = restful()
->getResourceManager()
->getPlugin('test_articles:1.2');
// Create 3 nodes.
$expected_result = array();
foreach (array(
1,
2,
3,
) as $id) {
$title = 'article/' . $id;
$settings = array(
'title' => $title,
'type' => 'article',
);
$node = $this
->drupalCreateNode($settings);
$expected_result[$node->nid] = $title;
}
// Set widget to select list.
$instance = field_info_instance('node', 'entity_reference_single', 'article');
$instance['widget']['type'] = 'options_select';
field_update_instance($instance);
$handler
->setRequest(Request::create('api/v1.2/test_articles', array(), RequestInterface::METHOD_OPTIONS));
$handler
->setPath('');
$formatter = restful()
->getFormatterManager()
->negotiateFormatter(NULL);
$formatter
->setResource($handler);
$result = $formatter
->prepare($handler
->process());
$this
->assertEqual($result['data'][0]['entity_reference_single']['form_element']['allowed_values'], $expected_result);
// Set widget to autocomplete.
$instance['widget']['type'] = 'entityreference_autocomplete';
field_update_instance($instance);
// Invalidate public fields cache.
$handler = restful()
->getResourceManager()
->getPluginCopy('test_articles:1.2');
$handler
->setRequest(Request::create('api/v1.2/test_articles', array(), RequestInterface::METHOD_OPTIONS));
$handler
->setPath('');
$formatter = restful()
->getFormatterManager()
->negotiateFormatter(NULL);
$formatter
->setResource($handler);
$result = $formatter
->prepare($handler
->process());
$this
->assertNull($result['data'][0]['entity_reference_single']['form_element']['allowed_values']);
}