| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <?php
- App::uses('AjaxComponent', 'Tools.Controller/Component');
- App::uses('Component', 'Controller');
- App::uses('Controller', 'Controller');
- App::uses('AppModel', 'Model');
- /**
- */
- class AjaxComponentTest extends CakeTestCase {
- public $fixtures = array('core.cake_session', 'plugin.tools.tools_user', 'plugin.tools.role');
- public function setUp() {
- parent::setUp();
- Configure::delete('Ajax');
- $this->Controller = new AjaxComponentTestController(new CakeRequest, new CakeResponse);
- $this->Controller->constructClasses();
- }
- /**
- * AjaxComponentTest::testNonAjax()
- *
- * @return void
- */
- public function testNonAjax() {
- $this->Controller->startupProcess();
- $this->assertFalse($this->Controller->Components->Ajax->respondAsAjax);
- }
- /**
- * AjaxComponentTest::testDefaults()
- *
- * @return void
- */
- public function testDefaults() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $this->Controller->startupProcess();
- $this->assertTrue($this->Controller->Components->Ajax->respondAsAjax);
- $this->Controller->Session->setFlash('A message', 'custom');
- $session = $this->Controller->Session->read('Message.flash');
- $expected = array(
- 'message' => 'A message',
- 'element' => 'custom',
- 'params' => array()
- );
- $this->assertEquals($expected, $session);
- $this->Controller->Components->Ajax->beforeRender($this->Controller);
- $this->assertEquals('Tools.Ajax', $this->Controller->viewClass);
- $this->assertEquals($expected, $this->Controller->viewVars['_message']);
- $session = $this->Controller->Session->read('Message.flash');
- $this->assertNull($session);
- $this->Controller->redirect('/');
- $this->assertSame(array(), $this->Controller->response->header());
- $expected = array(
- 'url' => Router::url('/', true),
- 'status' => null,
- 'exit' => true
- );
- $this->assertEquals($expected, $this->Controller->viewVars['_redirect']);
- }
- /**
- * AjaxComponentTest::testAutoDetectOnFalse()
- *
- * @return void
- */
- public function testAutoDetectOnFalse() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $this->Controller->Components->unload('Ajax');
- $this->Controller->Components->load('Tools.Ajax', array('autoDetect' => false));
- $this->Controller->startupProcess();
- $this->assertFalse($this->Controller->Components->Ajax->respondAsAjax);
- }
- /**
- * AjaxComponentTest::testAutoDetectOnFalseViaConfig()
- *
- * @return void
- */
- public function testAutoDetectOnFalseViaConfig() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- Configure::write('Ajax.autoDetect', false);
- $this->Controller->Components->unload('Ajax');
- $this->Controller->Components->load('Tools.Ajax');
- $this->Controller->startupProcess();
- $this->assertFalse($this->Controller->Components->Ajax->respondAsAjax);
- }
- /**
- * AjaxComponentTest::testToolsMultiMessages()
- *
- * @return void
- */
- public function testToolsMultiMessages() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- Configure::write('Ajax.flashKey', 'messages');
- $this->Controller->Components->unload('Ajax');
- $this->Controller->Components->load('Tools.Ajax');
- $this->Controller->startupProcess();
- $this->assertTrue($this->Controller->Components->Ajax->respondAsAjax);
- $this->Controller->Flash->message('A message', 'success');
- $session = $this->Controller->Session->read('messages');
- $expected = array(
- 'success' => array('A message')
- );
- $this->assertEquals($expected, $session);
- $this->Controller->Components->Ajax->beforeRender($this->Controller);
- $this->assertEquals('Tools.Ajax', $this->Controller->viewClass);
- $this->assertEquals($expected, $this->Controller->viewVars['_message']);
- $session = $this->Controller->Session->read('messages');
- $this->assertNull($session);
- }
- /**
- * AjaxComponentTest::testSetVars()
- *
- * @return void
- */
- public function testSetVars() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $this->Controller->Components->unload('Ajax');
- $content = array('id' => 1, 'title' => 'title');
- $this->Controller->set(compact('content'));
- $this->Controller->set('_serialize', array('content'));
- $this->Controller->Components->load('Tools.Ajax');
- $this->assertNotEmpty($this->Controller->viewVars);
- $this->assertNotEmpty($this->Controller->viewVars['_serialize']);
- $this->assertEquals('content', $this->Controller->viewVars['_serialize'][0]);
- }
- /**
- * AjaxComponentTest::testSetVarsWithRedirect()
- *
- * @return void
- */
- public function testSetVarsWithRedirect() {
- $_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
- $this->Controller->startupProcess();
- $content = array('id' => 1, 'title' => 'title');
- $this->Controller->set(compact('content'));
- $this->Controller->set('_serialize', array('content'));
- $this->Controller->redirect('/');
- $this->assertSame(array(), $this->Controller->response->header());
- $expected = array(
- 'url' => Router::url('/', true),
- 'status' => null,
- 'exit' => true
- );
- $this->assertEquals($expected, $this->Controller->viewVars['_redirect']);
- $this->assertNotEmpty($this->Controller->viewVars);
- $this->assertNotEmpty($this->Controller->viewVars['_serialize']);
- $this->assertTrue(in_array('content', $this->Controller->viewVars['_serialize']));
- }
- }
- // Use Controller instead of AppController to avoid conflicts
- class AjaxComponentTestController extends Controller {
- public $components = array('Session', 'Tools.Ajax', 'Tools.Common');
- }
|