/**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * {@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>'));
     }
 }