/** * Tests block_example functionality. */ function testBlockExampleBasic() { // Test an empty string returns an empty array. $floating_block_text = ''; $floating_block_array = _floating_block_admin_convert_text_to_array($floating_block_text); $this->assertEqual($floating_block_array, array()); $this->assertEqual(_floating_block_admin_convert_array_to_text($floating_block_array), $floating_block_text); // Test a single line containing a class. $floating_block_text = '.block-1'; $floating_block_array = _floating_block_admin_convert_text_to_array($floating_block_text); $this->assertEqual($floating_block_array, array('.block-1' => array())); $this->assertEqual(_floating_block_admin_convert_array_to_text($floating_block_array), $floating_block_text); // Test a single line containing a class and 1 extra setting. $floating_block_text = '.block-1|container=#main'; $floating_block_array = _floating_block_admin_convert_text_to_array($floating_block_text); $this->assertEqual($floating_block_array, array('.block-1' => array('container' => '#main'))); $this->assertEqual(_floating_block_admin_convert_array_to_text($floating_block_array), $floating_block_text); // Test a single line containing a class and multiple extra setting. $floating_block_text = '.block-1|container=#main,padding_top=8,padding_bottom=4'; $floating_block_array = _floating_block_admin_convert_text_to_array($floating_block_text); $this->assertEqual($floating_block_array, array('.block-1' => array('container' => '#main', 'padding_top' => '8', 'padding_bottom' => '4'))); $this->assertEqual(_floating_block_admin_convert_array_to_text($floating_block_array), $floating_block_text); // Test mutliple line configuration. $floating_block_text = ".block-1|container=#main,padding_top=8\n.block-2"; $floating_block_array = _floating_block_admin_convert_text_to_array($floating_block_text); $this->assertEqual($floating_block_array, array('.block-1' => array('container' => '#main', 'padding_top' => '8'), '.block-2' => array())); $this->assertEqual(_floating_block_admin_convert_array_to_text($floating_block_array), $floating_block_text); }
/** * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { $values = $form_state->getValues(); $array = _floating_block_admin_convert_text_to_array($values['blocks']); $string = _floating_block_admin_convert_array_to_text($array); // Compare that floating block settings string to array conversion is // idempotent. New line characters \n and \r get make comparison difficult. if (str_replace(array("\n", "\r"), '', $string) != str_replace(array("\n", "\r"), '', $values['blocks'])) { $form_state->setErrorByName('blocks', $this->t('Each line must of the format: <code>selector|setting_key=setting_value,setting_key=setting_value,...</code>')); } }