Beispiel #1
0
 /**
  * @group 2463
  */
 public function testRecursesJsonModelChildrenWhenRendering()
 {
     $root = new JsonModel(array('foo' => 'bar'));
     $child1 = new JsonModel(array('foo' => 'bar'));
     $child2 = new JsonModel(array('foo' => 'bar'));
     $child1->setCaptureTo('child1');
     $child2->setCaptureTo('child2');
     $root->addChild($child1)->addChild($child2);
     $expected = array('foo' => 'bar', 'child1' => array('foo' => 'bar'), 'child2' => array('foo' => 'bar'));
     $test = $this->renderer->render($root);
     $this->assertEquals(json_encode($expected), $test);
 }
Beispiel #2
0
 public function testChildrenMayInvokeDifferentRenderingStrategiesThanParents()
 {
     $this->view->addRenderingStrategy(function ($e) {
         $model = $e->getModel();
         if (!$model instanceof ViewModel) {
             return;
         }
         return new TestAsset\Renderer\VarExportRenderer();
     });
     $this->view->addRenderingStrategy(function ($e) {
         $model = $e->getModel();
         if (!$model instanceof JsonModel) {
             return;
         }
         return new Renderer\JsonRenderer();
     }, 10);
     // higher priority, so it matches earlier
     $this->result = $result = new stdClass();
     $this->view->addResponseStrategy(function ($e) use($result) {
         $result->content = $e->getResult();
     });
     $child1 = new ViewModel(array('foo' => 'bar'));
     $child1->setCaptureTo('child1');
     $child2 = new JsonModel(array('bar' => 'baz'));
     $child2->setCaptureTo('child2');
     $child2->setTerminal(false);
     $this->model->setVariable('parent', 'node');
     $this->model->addChild($child1);
     $this->model->addChild($child2);
     $this->view->render($this->model);
     $expected = var_export(new ViewVariables(array('parent' => 'node', 'child1' => var_export(array('foo' => 'bar'), true), 'child2' => json_encode(array('bar' => 'baz')))), true);
     $this->assertEquals($expected, $this->result->content);
 }