diff --git a/test/classes/PMA_DisplayResults_test.php b/test/classes/PMA_DisplayResults_test.php index 24fb2bdb5d..bc2c444884 100644 --- a/test/classes/PMA_DisplayResults_test.php +++ b/test/classes/PMA_DisplayResults_test.php @@ -442,7 +442,7 @@ class PMA_DisplayResults_Test extends PHPUnit_Framework_TestCase 41, '123', false, - '333' + '310' ) ); } diff --git a/test/classes/plugin/import/ImportOds_test.php b/test/classes/plugin/import/ImportOds_test.php new file mode 100644 index 0000000000..51ce3df8b8 --- /dev/null +++ b/test/classes/plugin/import/ImportOds_test.php @@ -0,0 +1,185 @@ +object = new ImportOds(); + + //setting + $GLOBALS['finished'] = false; + $GLOBALS['read_limit'] = 100000000; + $GLOBALS['offset'] = 0; + $GLOBALS['cfg']['Server']['DisableIS'] = false; + $GLOBALS['cfg']['ServerDefault'] = 0; + $GLOBALS['cfg']['AllowUserDropDatabase'] = false; + $GLOBALS['cfg']['MySQLManualType'] = 'none'; + + $GLOBALS['import_file'] = 'test/test_data/db_test.ods'; + + /** + * Load interface for zip extension. + */ + include_once 'libraries/zip_extension.lib.php'; + $result = PMA_getZipContents($GLOBALS['import_file']); + $GLOBALS['import_text'] = $result["data"]; + $GLOBALS['compression'] = 'application/zip'; + $GLOBALS['read_multiply'] = 10; + $GLOBALS['import_type'] = 'ods'; + $GLOBALS['import_handle'] = @fopen($GLOBALS['import_file'], 'r'); + + //varible for Ods + $_REQUEST['ods_recognize_percentages'] = true; + $_REQUEST['ods_recognize_currency'] = true; + $_REQUEST['ods_empty_rows'] = true; + } + + /** + * 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); + } + + /** + * Test for getProperties + * + * @return void + * + * @group medium + */ + public function testGetProperties() + { + $properties = $this->object->getProperties(); + $this->assertEquals( + __('OpenDocument Spreadsheet'), + $properties->getText() + ); + $this->assertEquals( + 'ods', + $properties->getExtension() + ); + $this->assertEquals( + __('Options'), + $properties->getOptionsText() + ); + } + + /** + * Test for doImport + * + * @return void + * + * @group medium + */ + public function testDoImport() + { + //$sql_query_disabled will show the import SQL detail + //$import_notice will show the import detail result + global $import_notice, $sql_query, $sql_query_disabled; + $sql_query_disabled = false; + + //Mock DBI + $dbi = $this->getMockBuilder('PMA_DatabaseInterface') + ->disableOriginalConstructor() + ->getMock(); + $GLOBALS['dbi'] = $dbi; + + //Test function called + $this->object->doImport(); + + //asset that all sql are executed + $this->assertContains( + 'CREATE DATABASE IF NOT EXISTS `ODS_DB` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci', + $sql_query + ); + $this->assertContains( + 'CREATE TABLE IF NOT EXISTS `ODS_DB`.`pma_bookmark`', + $sql_query + ); + $this->assertContains( + "INSERT INTO `ODS_DB`.`pma_bookmark` (`A`, `B`, `C`, `D`) VALUES (1, 'dbbase', NULL, 'ddd');", + $sql_query + ); + + //asset that all databases and tables are imported + $this->assertContains( + 'The following structures have either been created or altered.', + $import_notice + ); + $this->assertContains( + 'Go to database: `ODS_DB`', + $import_notice + ); + $this->assertContains( + 'Edit settings for `ODS_DB`', + $import_notice + ); + $this->assertContains( + 'Go to table: `pma_bookmark`', + $import_notice + ); + $this->assertContains( + 'Edit settings for `pma_bookmark`', + $import_notice + ); + + //asset that the import process is finished + $this->assertEquals( + true, + $GLOBALS['finished'] + ); + } +} + + + diff --git a/test/test_data/db_test.ods b/test/test_data/db_test.ods new file mode 100644 index 0000000000..8b34826007 Binary files /dev/null and b/test/test_data/db_test.ods differ