'', ]; $this->templates = new StringTemplate($templates); $this->context = new NullContext([]); } /** * Test render in a simple case. */ public function testRenderSimple(): void { $input = new FileWidget($this->templates); $result = $input->render(['name' => 'image'], $this->context); $expected = [ 'input' => ['type' => 'file', 'name' => 'image'], ]; $this->assertHtml($expected, $result); } /** * Test render with a value */ public function testRenderAttributes(): void { $input = new FileWidget($this->templates); $data = ['name' => 'image', 'required' => true, 'val' => 'nope']; $result = $input->render($data, $this->context); $expected = [ 'input' => ['type' => 'file', 'required' => 'required', 'name' => 'image'], ]; $this->assertHtml($expected, $result); } /** * Ensure templateVars option is hooked up. */ public function testRenderTemplateVars(): void { $this->templates->add([ 'file' => '', ]); $input = new FileWidget($this->templates); $data = [ 'templateVars' => ['custom' => 'value'], 'name' => 'files', ]; $result = $input->render($data, $this->context); $expected = [ 'input' => [ 'type' => 'file', 'name' => 'files', 'custom' => 'value', ], ]; $this->assertHtml($expected, $result); } /** * Test secureFields */ public function testSecureFields(): void { $input = new FileWidget($this->templates); $data = ['name' => 'image', 'required' => true, 'val' => 'nope']; $this->assertEquals(['image'], $input->secureFields($data)); Configure::write('App.uploadedFilesAsObjects', false); $this->assertEquals( ['image[name]', 'image[type]', 'image[tmp_name]', 'image[error]', 'image[size]'], $input->secureFields($data) ); } }