예제 #1
0
 /**
  * Sanitizes the setting data.
  *
  * @param string[][] $data Settings data.
  *
  * @return string[][]
  */
 public function sanitize($data)
 {
     if (!$this->settings_page->current_user_can('edit')) {
         $error = $this->settings_error_factory->create('no-permission-to-edit');
         $error->add();
         $data = $this->option->get();
         return $data;
     }
     $sanitized_data = array();
     foreach ($data as $source => $targets) {
         if (!is_string($source) || $source === '') {
             $error = $this->settings_error_factory->create('invalid-taxonomy');
             $error->add();
         } else {
             foreach ($targets as $target => $link) {
                 if (!is_string($target) || $target === '') {
                     $error = $this->settings_error_factory->create('invalid-taxonomy');
                     $error->add();
                 } else {
                     switch ((int) $link) {
                         case 1:
                             $sanitized_data = $this->add_link($sanitized_data, $source, $target);
                             break;
                         case 2:
                             $sanitized_data = $this->add_link($sanitized_data, $source, $target, TRUE);
                             break;
                     }
                 }
             }
         }
     }
     return $sanitized_data;
 }
예제 #2
0
 /**
  * @covers       tfrommen\LinkedTaxonomies\SettingsError\Factory::create
  * @dataProvider provide_create_data
  *
  * @param string $expected
  * @param string $type
  *
  * @return void
  */
 public function test_create($expected, $type)
 {
     $testee = new Testee();
     WP_Mock::wpPassthruFunction('_x', array('args' => array(Mockery::type('string'), Mockery::type('string'), 'linked-taxonomies')));
     WP_Mock::wpPassthruFunction('esc_html');
     $this->assertSame($expected, get_class($testee->create($type)));
     $this->assertConditionsMet();
 }