protected function setUp() { global $phpbb_root_path, $phpEx; $this->request = $this->getMock('\\phpbb\\request\\request'); $this->request->expects($this->any())->method('file')->willReturn(array()); $this->filesystem = new \phpbb\filesystem\filesystem(); $this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx)); $this->php_ini = new \bantu\IniGetWrapper\IniGetWrapper(); $this->container = new phpbb_mock_container_builder($phpbb_root_path, $phpEx); $this->container->set('files.filespec', new \phpbb\files\filespec($this->filesystem, $this->language, $this->php_ini, new \FastImageSize\FastImageSize(), $phpbb_root_path, new \phpbb\mimetype\guesser(array('mimetype.extension_guesser' => new \phpbb\mimetype\extension_guesser())))); $this->factory = new \phpbb\files\factory($this->container); $this->plupload = $this->getMockBuilder('\\phpbb\\plupload\\plupload')->disableOriginalConstructor()->getMock(); $this->plupload->expects($this->any())->method('handle_upload')->willReturn(array()); $this->path = __DIR__ . '/fixture/'; $this->phpbb_root_path = $phpbb_root_path; }
/** * @dataProvider data_upload_form */ public function test_upload_form($upload, $expected, $plupload = array()) { $this->request = $this->getMock('\\phpbb\\request\\request'); $this->request->expects($this->any())->method('file')->willReturn($upload); $filespec = new \phpbb\files\filespec($this->filesystem, $this->language, $this->php_ini, new \FastImageSize\FastImageSize(), $this->phpbb_root_path, new \phpbb\mimetype\guesser(array('mimetype.extension_guesser' => new \phpbb\mimetype\extension_guesser()))); $this->container->set('files.filespec', $filespec); $this->factory = new \phpbb\files\factory($this->container); $this->plupload = $this->getMockBuilder('\\phpbb\\plupload\\plupload')->disableOriginalConstructor()->getMock(); $this->plupload->expects($this->any())->method('handle_upload')->willReturn($plupload); $type_form = new \phpbb\files\types\form($this->factory, $this->language, $this->php_ini, $this->plupload, $this->request); $upload = new \phpbb\files\upload($this->filesystem, $this->factory, $this->language, $this->php_ini, $this->request, $this->phpbb_root_path); $upload->set_allowed_extensions(array('png')); $type_form->set_upload($upload); $file = $type_form->upload('foobar'); $this->assertSame($expected, $file->error); $this->assertInstanceOf('\\phpbb\\files\\filespec', $file); }