function ArrayUnitTest::testUnset

Tests unsetting nested array values.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Common/ArrayUnitTest.php, line 93
Definition of Drupal\system\Tests\Common\ArrayUnitTest.

Class

ArrayUnitTest
Tests the various drupal_array_* helper functions.

Namespace

Drupal\system\Tests\Common

Code

function testUnset() {

  // Verify unsetting a non-existing nested element throws no errors and the
  // non-existing key is properly reported.
  $key_existed = NULL;
  $parents = $this->parents;
  $parents[] = 'foo';
  drupal_array_unset_nested_value($this->form, $parents, $key_existed);
  $this
    ->assertTrue(isset($this->form['details']['element']['#value']), 'Outermost nested element key still exists.');
  $this
    ->assertIdentical($key_existed, FALSE, 'Non-existing key not found.');

  // Verify unsetting a nested element.
  $key_existed = NULL;
  drupal_array_unset_nested_value($this->form, $this->parents, $key_existed);
  $this
    ->assertFalse(isset($this->form['details']['element']), 'Removed nested element not found.');
  $this
    ->assertIdentical($key_existed, TRUE, 'Existing key was found.');
}