public function setUp() { WP::setUp(); $this->plugin = \Cft\Plugin::getInstance(); $this->plugin->set('validatorBuilder', new \Cft\ValidatorBuilder($this->plugin)); $this->plugin->set('fieldBuilder', new \Cft\FieldBuilder($this->plugin)); }
public function testGetInstance() { $plugin1 = Plugin::getInstance(); $class = get_class($plugin1); $this->assertEquals($class, 'Cft\\Plugin'); // make sure it's a true singleton $this->assertEquals(spl_object_hash($plugin1), spl_object_hash(Plugin::getInstance())); }
protected function getViewPath($file) { $dirs = Plugin::getInstance()->get('viewDirs'); foreach ($dirs as $dir) { // return the first existing template from all possible locations if (file_exists($dir . $file)) { return $dir . $file; } } }
public function testSave() { $instance = $this->getInstanceWithTrait(['foo' => 'text', 'bar' => ['type' => 'text'], 'baz' => 'textarea', 'qux' => 'wysiwyg']); WP::wpFunction('wp_verify_nonce', ['args' => ['nonce value', 'cft_save_meta'], 'times' => 1, 'return' => 1]); $plugin = Plugin::getInstance(); $plugin->set('request', ['cft_nonce' => 'nonce value', 'foo' => 'I am FOO', 'bar' => 'I am BAR', 'baz' => 'I am BAZ', 'qux' => 'I am QUX']); $plugin->set('validatorBuilder', new ValidatorBuilder($plugin)); // Mock Field instances $foo = $this->getField($this->postId, 'foo', 'text', 'I am FOO'); $bar = $this->getField($this->postId, 'bar', ['type' => 'text'], 'I am BAR'); $baz = $this->getField($this->postId, 'baz', 'textarea', 'I am BAZ'); $qux = $this->getField($this->postId, 'qux', 'wysiwyg', 'I am QUX'); // Map FieldBuilder::build parameters to specific mock instances $map = [[$this->postId, 'foo', 'text', 'I am FOO', $foo], [$this->postId, 'bar', ['type' => 'text'], 'I am BAR', $bar], [$this->postId, 'baz', 'textarea', 'I am BAZ', $baz], [$this->postId, 'qux', 'wysiwyg', 'I am QUX', $qux]]; $builder = $this->getMockBuilder('\\Cft\\FieldBuilder')->setConstructorArgs([$plugin])->setMethods(['build'])->getMock(); $builder->method('build')->will($this->returnValueMap($map)); Plugin::getInstance()->set('fieldBuilder', $builder); $instance->save(); }
public function testRender() { $expected = <<<_SELECT_ <select name="my_select" class="foo"> <option value="1">one</option> <option value="2" selected>two</option> <option value="3">three</option> </select> _SELECT_; \Cft\Plugin::getInstance()->set('view', function () use($expected) { $twig = $this->getMockBuilder('\\Twig_Environment')->getMock(); $data = $this->config; $data['name'] = $this->name; $data['value'] = '2'; $twig->expects($this->once())->method('render')->with('select.twig', $data)->will($this->returnValue($expected)); return new \Cft\View\TwigView($twig); }); $this->subject->setValue('2'); $rendered = $this->getRendered(function () { $this->subject->render(); }); $this->assertHtmlEquals($expected, $rendered); }
public function setUp() { $this->plugin = Plugin::getInstance(); $this->builder = new ValidatorBuilder($this->plugin); }
public function render() { $view = Plugin::getInstance()->get('view'); echo $view->render('textarea.twig', ['name' => $this->getName(), 'text' => $this->getValue(), 'attributes' => $this->getConfig('attributes')]); }
public function render() { $view = Plugin::getInstance()->get('view'); echo $view->render('select.twig', ['name' => $this->getName(), 'value' => $this->getValue(), 'type' => $this->getType(), 'attributes' => $this->getConfig('attributes'), 'options' => $this->getConfig('options')]); }
public function setUp() { $this->plugin = Plugin::getInstance(); $this->plugin->set('validatorBuilder', new ValidatorBuilder($this->plugin)); $this->builder = new FieldBuilder($this->plugin); }
protected function getPostedValue($name) { $request = Plugin::getInstance()->get('request') ?: []; return isset($request[$name]) ? $request[$name] : ''; }