/** * Test getViewFileName method * * @return void */ public function testGetViewFileNames() { $viewOptions = ['plugin' => null, 'name' => 'Pages', 'viewPath' => 'Pages']; $request = $this->getMock('Cake\\Network\\Request'); $response = $this->getMock('Cake\\Network\\Response'); $View = new TestView(null, null, null, $viewOptions); $expected = TEST_APP . 'TestApp' . DS . 'Template' . DS . 'Pages' . DS . 'home.ctp'; $result = $View->getViewFileName('home'); $this->assertPathEquals($expected, $result); $expected = TEST_APP . 'TestApp' . DS . 'Template' . DS . 'Posts' . DS . 'index.ctp'; $result = $View->getViewFileName('/Posts/index'); $this->assertPathEquals($expected, $result); $expected = TEST_APP . 'TestApp' . DS . 'Template' . DS . 'Posts' . DS . 'index.ctp'; $result = $View->getViewFileName('../Posts/index'); $this->assertPathEquals($expected, $result); $expected = TEST_APP . 'TestApp' . DS . 'Template' . DS . 'Pages' . DS . 'page.home.ctp'; $result = $View->getViewFileName('page.home'); $this->assertPathEquals($expected, $result, 'Should not ruin files with dots.'); Plugin::load('TestPlugin'); $expected = TEST_APP . 'TestApp' . DS . 'Template' . DS . 'Pages' . DS . 'home.ctp'; $result = $View->getViewFileName('TestPlugin.home'); $this->assertPathEquals($expected, $result, 'Plugin is missing the view, cascade to app.'); $View->templatePath('Tests'); $expected = TEST_APP . 'Plugin' . DS . 'TestPlugin' . DS . 'src' . DS . 'Template' . DS . 'Tests' . DS . 'index.ctp'; $result = $View->getViewFileName('TestPlugin.index'); $this->assertPathEquals($expected, $result); }