object = new Scripts(); if (! defined('PMA_USR_BROWSER_AGENT')) { define('PMA_USR_BROWSER_AGENT', 'MOZILLA'); } } /** * Tears down the fixture, for example, closes a network connection. * This method is called after a test is executed. * * @access protected * @return void */ protected function tearDown() { unset($this->object); } /** * Call private functions by setting visibility to public. * * @param string $name method name * @param array $params parameters for the invocation * * @return mixed the output from the private method. */ private function _callPrivateFunction($name, $params) { $class = new ReflectionClass(Scripts::class); $method = $class->getMethod($name); $method->setAccessible(true); return $method->invokeArgs($this->object, $params); } /** * Test for _includeFile * * @return void * * @group medium */ public function testIncludeFile() { $this->assertEquals( '' . "\n", $this->_callPrivateFunction( '_includeFiles', [ [ [ 'has_onload' => false, 'filename' => 'common.js' ] ] ] ) ); } /** * Test for getDisplay * * @return void */ public function testGetDisplay() { $this->object->addFile('common.js'); $this->assertRegExp( '@' . "\n" . '@', $this->object->getDisplay() ); } /** * test for addCodeNew * * @return void */ public function testAddCodeNew() { $this->object->addCodeNew('alert(\'CodeAdded\');'); $this->assertEquals( '' . '', $this->object->getDisplay() ); } /** * test for addCode * * @return void */ public function testAddCode() { $this->object->addCode('alert(\'CodeAdded\');'); $this->assertEquals( '' . '', $this->object->getDisplay() ); } /** * test for getFiles * * @return void */ public function testGetFiles() { // codemirror's onload event is blacklisted $this->object->addFile('vendor/codemirror/lib/codemirror.js'); $this->object->addFile('common.js'); $this->assertEquals( [ ['name' => 'vendor/codemirror/lib/codemirror.js', 'fire' => 0], ['name' => 'common.js', 'fire' => 1] ], $this->object->getFiles() ); } /** * test for addFile * * @return void */ public function testAddFile() { // Assert empty _files property of // Scripts $this->assertAttributeEquals( [], '_files', $this->object ); // Add one script file $file = 'common.js'; $hash = 'd7716810d825f4b55d18727c3ccb24e6'; $_files = [ $hash => [ 'has_onload' => 1, 'filename' => 'common.js', 'params' => [], ] ]; $this->object->addFile($file); $this->assertAttributeEquals( $_files, '_files', $this->object ); } /** * test for addFiles * * @return void */ public function testAddFiles() { $filenames = [ 'common.js', 'sql.js', 'common.js', ]; $_files = [ 'd7716810d825f4b55d18727c3ccb24e6' => [ 'has_onload' => 1, 'filename' => 'common.js', 'params' => [], ], '347a57484fcd6ea6d8a125e6e1d31f78' => [ 'has_onload' => 1, 'filename' => 'sql.js', 'params' => [], ], ]; $this->object->addFiles($filenames); $this->assertAttributeEquals( $_files, '_files', $this->object ); } }