Example #1
0
 /**
  * testMergeVars method
  *
  * @access public
  * @return void
  */
 function testMergeVars()
 {
     if ($this->skipIf(defined('APP_CONTROLLER_EXISTS'), '%s Need a non-existent AppController')) {
         return;
     }
     $TestController = new TestController();
     $TestController->constructClasses();
     $testVars = get_class_vars('TestController');
     $appVars = get_class_vars('AppController');
     $components = is_array($appVars['components']) ? array_merge($appVars['components'], $testVars['components']) : $testVars['components'];
     if (!in_array('Session', $components)) {
         $components[] = 'Session';
     }
     $helpers = is_array($appVars['helpers']) ? array_merge($appVars['helpers'], $testVars['helpers']) : $testVars['helpers'];
     $uses = is_array($appVars['uses']) ? array_merge($appVars['uses'], $testVars['uses']) : $testVars['uses'];
     $this->assertEqual(count(array_diff($TestController->helpers, $helpers)), 0);
     $this->assertEqual(count(array_diff($TestController->uses, $uses)), 0);
     $this->assertEqual(count(array_diff_assoc(Set::normalize($TestController->components), Set::normalize($components))), 0);
     $TestController = new AnotherTestController();
     $TestController->constructClasses();
     $appVars = get_class_vars('AppController');
     $testVars = get_class_vars('AnotherTestController');
     $this->assertTrue(in_array('ControllerPost', $appVars['uses']));
     $this->assertNull($testVars['uses']);
     $this->assertFalse(isset($TestController->ControllerPost));
     $TestController = new ControllerCommentsController();
     $TestController->constructClasses();
     $appVars = get_class_vars('AppController');
     $testVars = get_class_vars('ControllerCommentsController');
     $this->assertTrue(in_array('ControllerPost', $appVars['uses']));
     $this->assertEqual(array('ControllerPost'), $testVars['uses']);
     $this->assertTrue(isset($TestController->ControllerPost));
     $this->assertTrue(isset($TestController->ControllerComment));
 }
 /**
  * testMergeVars method
  *
  * @return void
  */
 public function testMergeVars()
 {
     $request = new CakeRequest('controller_posts/index');
     $TestController = new TestController($request);
     $TestController->constructClasses();
     $testVars = get_class_vars('TestController');
     $appVars = get_class_vars('ControllerTestAppController');
     $components = is_array($appVars['components']) ? array_merge($appVars['components'], $testVars['components']) : $testVars['components'];
     if (!in_array('Session', $components)) {
         $components[] = 'Session';
     }
     $helpers = is_array($appVars['helpers']) ? array_merge($appVars['helpers'], $testVars['helpers']) : $testVars['helpers'];
     $uses = is_array($appVars['uses']) ? array_merge($appVars['uses'], $testVars['uses']) : $testVars['uses'];
     $this->assertEquals(0, count(array_diff_key($TestController->helpers, array_flip($helpers))));
     $this->assertEquals(0, count(array_diff($TestController->uses, $uses)));
     $this->assertEquals(count(array_diff_assoc(Hash::normalize($TestController->components), Hash::normalize($components))), 0);
     $expected = array('ControllerComment', 'ControllerAlias', 'ControllerPost');
     $this->assertEquals($expected, $TestController->uses, '$uses was merged incorrectly, ControllerTestAppController models should be last.');
     $TestController = new AnotherTestController($request);
     $TestController->constructClasses();
     $appVars = get_class_vars('ControllerTestAppController');
     $testVars = get_class_vars('AnotherTestController');
     $this->assertTrue(in_array('ControllerPost', $appVars['uses']));
     $this->assertFalse($testVars['uses']);
     $this->assertFalse(property_exists($TestController, 'ControllerPost'));
     $TestController = new ControllerCommentsController($request);
     $TestController->constructClasses();
     $appVars = get_class_vars('ControllerTestAppController');
     $testVars = get_class_vars('ControllerCommentsController');
     $this->assertTrue(in_array('ControllerPost', $appVars['uses']));
     $this->assertEquals(array('ControllerPost'), $testVars['uses']);
     $this->assertTrue(isset($TestController->ControllerPost));
     $this->assertTrue(isset($TestController->ControllerComment));
 }
 /**
  * testMergeVars method
  *
  * @return void
  */
 public function testMergeVars()
 {
     $request = new Request();
     $TestController = new TestController($request);
     $TestController->constructClasses();
     $expected = ['Html' => null, 'Session' => null];
     $this->assertEquals($expected, $TestController->helpers);
     $expected = ['Session' => null, 'Security' => null, 'Cookie' => null];
     $this->assertEquals($expected, $TestController->components);
     $TestController = new AnotherTestController($request);
     $TestController->constructClasses();
     $this->assertEquals('Posts', $TestController->modelClass, 'modelClass should not be overwritten when defined.');
 }