/** * @depends testFactory */ public function testEscapedQuotes() { // correct $field = Carbon_Field::factory('text', 'fancy_name'); // set_value must not alter the data $field->set_value('Lorem \\\' ipsum'); $this->assertEquals($field->get_value(), 'Lorem \\\' ipsum'); // set_value must strip slashes $field->set_value_from_input(array($field->get_name() => 'Lorem \\\' ipsum')); $this->assertEquals($field->get_value(), 'Lorem \' ipsum'); }
/** * @group slow */ public function testSaveGroupAndCheckLoad() { global $wpdb; // prepare container $container = new Carbon_Container_ThemeOptions('Test Container'); $container->setup(); $container->add_fields(array(Carbon_Field::factory('complex', 'group')->add_fields(array(Carbon_Field::factory('text', 'field1'), Carbon_Field::factory('text', 'field2')), 'group1')->add_fields(array(Carbon_Field::factory('text', 'field3'), Carbon_Field::factory('text', 'field4')), 'group2'))); // Prepare POST $_POST = array('_group' => array('0' => array('group' => '_group1', '_field1' => 'lorem', '_field2' => 'ipsum', '_field3' => 'dolor', '_field4' => 'sit'), '1' => array('group' => '_group2', '_field1' => 'lorem', '_field2' => 'ipsum', '_field3' => 'dolor', '_field4' => 'sit'))); // execute $container->save(123); $container->load(); // check field $fields = $container->get_fields(); $group_fields = $fields[0]->get_values(); $expected_values = array('_group1' => array(array('_field1', 'lorem'), array('_field2', 'ipsum')), '_group2' => array(array('_field3', 'dolor'), array('_field4', 'sit'))); $index = 0; $this->assertCount(2, $group_fields); foreach ($expected_values as $exp_group => $exp_group_values) { $group_values = $group_fields[$index]; $this->assertEquals($group_values['type'], $exp_group); unset($group_values['type']); foreach ($exp_group_values as $subindex => $expected) { $this->assertEquals($group_values[$subindex]->get_name(), $expected[0]); $this->assertEquals($group_values[$subindex]->get_value(), $expected[1]); } $index++; } // cleanup $container->detach(); }
function rb_register_resume_meta_boxes() { Carbon_Container::factory('custom_fields', __('Resume Builder'))->show_on_post_type('rb_resume')->add_fields(array(Carbon_Field::factory('separator', 'rb_resume_shortcode_title', __('Resume Shortcodes', 'resume-builder')), Carbon_Field::factory('html', 'rb_resume_shortcode')->set_html(rb_get_resume_shortcode_help_text()), Carbon_Field::factory('separator', 'rb_resume_sections_title', __('The Resume Builder', 'resume-builder')), Carbon_Field::factory('complex', 'rb_resume_sections', __('Resume Sections', 'resume-builder'))->setup_labels(array('singular_name' => __('Resume Section', 'resume-builder'), 'plural_name' => __('Resume Sections', 'resume-builder')))->add_fields('introduction_block', array(Carbon_Field::factory('text', 'sectiontitle', __('Introduction Title', 'resume-builder')), Carbon_Field::factory('text', 'sectionsubtitle', __('Introduction Subtitle', 'resume-builder')), Carbon_Field::factory('attachment', 'sectionimage', __('Introduction Image', 'resume-builder'))->help_text(__('The image should be sized to 237 x 303 pixels.', 'resume-builder')), Carbon_Field::factory('rich_text', 'sectiontext', __('Introduction Text', 'resume-builder')), Carbon_Field::factory('complex', 'sectionbuttons', __('Introduction Buttons', 'resume-builder'))->setup_labels(array('singular_name' => __('Button', 'resume-builder'), 'plural_name' => __('Buttons', 'resume-builder')))->add_fields(array(Carbon_Field::factory('text', 'label', __('Button Label', 'resume-builder'))->set_required(true), Carbon_Field::factory('text', 'link', __('Button Link', 'resume-builder'))->set_required(true), Carbon_Field::factory('select', 'type', __('Button Style', 'resume-builder'))->set_required(true)->add_options(array('filled' => __('Filled', 'resume-builder'), 'open' => __('Open', 'resume-builder')))))))->add_fields('default_block', array(Carbon_Field::factory('text', 'sectiontitle', __('Section Title', 'resume-builder')), Carbon_Field::factory('complex', 'sectioncontent', __('Section Content', 'resume-builder'))->setup_labels(array('singular_name' => __('Subsection', 'resume-builder'), 'plural_name' => __('Subsections', 'resume-builder')))->add_fields('text_block', array(Carbon_Field::factory('rich_text', 'text', __('Text', 'resume-builder'))->set_required(true)))->add_fields('detailed_row', array(Carbon_Field::factory('text', 'rowtitle', __('Row Title', 'resume-builder')), Carbon_Field::factory('text', 'rowsubtitle', __('Row Subtitle', 'resume-builder')), Carbon_Field::factory('text', 'rowsidetext', __('Row Side Text', 'resume-builder')), Carbon_Field::factory('rich_text', 'rowtext', __('Row Text', 'resume-builder')))))), Carbon_Field::factory('separator', 'rb_resume_widget', __('Resume Widgets', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_title', __('Contact Info Title', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_email', __('Email', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_phone', __('Phone', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_website', __('Website', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_contacts_address', __('Address', 'resume-builder')), Carbon_Field::factory('text', 'rb_resume_widget_skills_title', __('Skills Title', 'resume-builder')), Carbon_Field::factory('complex', 'rb_resume_widget_skills', __('Skills', 'resume-builder'))->setup_labels(array('singular_name' => __('Skill', 'resume-builder'), 'plural_name' => __('Skills', 'resume-builder')))->add_fields(array(Carbon_Field::factory('text', 'title', __('Title', 'resume-builder')), Carbon_Field::factory('select', 'rating', __('Star Rating', 'resume-builder'))->add_options(rb_generate_rating()), Carbon_Field::factory('textarea', 'text', __('Description', 'resume-builder')))))); }