Skip to content

Commit

Permalink
adding test for viewClass mapping
Browse files Browse the repository at this point in the history
  • Loading branch information
ceeram committed Aug 10, 2012
1 parent 21431cb commit 7ea1a59
Showing 1 changed file with 40 additions and 1 deletion.
Expand Up @@ -21,6 +21,7 @@
App::uses('CakeRequest', 'Network');
App::uses('CakeResponse', 'Network');
App::uses('Router', 'Routing');
App::uses('JsonView', 'View');

/**
* RequestHandlerTestController class
Expand Down Expand Up @@ -70,6 +71,15 @@ public function ajax2_layout() {

}

class CustomJsonView extends JsonView {

/**
* Test method for viewClassMap and overriding _serialize()
*/
protected function _serialize($serialize) {
return json_encode(array('return' => 'ok'));
}
}

/**
* RequestHandlerComponentTest class
Expand Down Expand Up @@ -137,12 +147,14 @@ public function tearDown() {
*/
public function testConstructorSettings() {
$settings = array(
'ajaxLayout' => 'test_ajax'
'ajaxLayout' => 'test_ajax',
'viewClassMap' => array('json' => 'MyPlugin.MyJson')
);
$Collection = new ComponentCollection();
$Collection->init($this->Controller);
$RequestHandler = new RequestHandlerComponent($Collection, $settings);
$this->assertEquals('test_ajax', $RequestHandler->ajaxLayout);
$this->assertEquals(array('json' => 'MyPlugin.MyJson'), $RequestHandler->settings['viewClassMap']);
}

/**
Expand Down Expand Up @@ -264,6 +276,33 @@ public function testInitializeContentTypeAndExtensionMismatch() {
call_user_func_array(array('Router', 'parseExtensions'), $extensions);
}

/**
* testViewClassMap method
*
* @return void
*/
public function testViewClassMap() {
$settings = array('viewClassMap' => array('json' => 'CustomJson'));
$this->RequestHandler->initialize($this->Controller, $settings);
$result = $this->RequestHandler->viewClassMap();
$expected = array(
'json' => 'CustomJson',
'xml' => 'Xml'
);
$this->assertEquals($expected, $result);

$result = $this->RequestHandler->viewClassMap('xls', 'Excel.Excel');
$expected = array(
'json' => 'CustomJson',
'xml' => 'Xml',
'xls' => 'Excel.Excel'
);
$this->assertEquals($expected, $result);

$this->RequestHandler->renderAs($this->Controller, 'json');
$this->assertEquals('CustomJson', $this->Controller->viewClass);
}

/**
* testDisabling method
*
Expand Down

0 comments on commit 7ea1a59

Please sign in to comment.