login(); } /** * Test for server level import * * @return void * * @group large */ public function testServerImport() { $this->_doImport('server'); $result = $this->dbQuery("SHOW DATABASES LIKE 'test_import%'"); $this->assertGreaterThanOrEqual(2, $result->num_rows); // clear db $this->dbQuery('DROP DATABASE test_import1'); $this->dbQuery('DROP DATABASE test_import2'); } /** * Test for db level import * * @return void * * @group large */ public function testDbImport() { $this->dbQuery('CREATE DATABASE ' . $this->database_name); $this->navigateDatabase($this->database_name); $this->_doImport('db'); $this->dbQuery('USE ' . $this->database_name); $result = $this->dbQuery('SHOW TABLES'); $this->assertEquals(1, $result->num_rows); } /** * Test for table level import * * @return void * * @group large */ public function testTableImport() { // setup the db $this->dbQuery('CREATE DATABASE ' . $this->database_name); $this->dbQuery('USE ' . $this->database_name); $this->dbQuery( 'CREATE TABLE IF NOT EXISTS `test_table` (`val` int(11) NOT NULL)' ); $this->navigateTable('test_table'); $this->_doImport('table'); $result = $this->dbQuery('SELECT * FROM test_table'); $this->assertEquals(2, $result->num_rows); } /** * Function that goes to the import page, uploads a file and submit form * * @param string $type level: server, db or import * * @return void */ private function _doImport($type) { $this->waitForElement('partialLinkText', 'Import')->click(); $this->waitAjax(); $this->waitForElement('id', 'input_import_file'); $this->waitForElement('cssSelector', 'label[for=radio_local_import_file]')->click(); $this->selectByValue( $this->byName('local_import_file'), $type . '_import.sql' ); $this->webDriver->wait(5); $this->webDriver->executeScript( 'window.scrollTo(0,' . $this->byId('buttonGo')->getLocation()->getY() . ')' ); $this->webDriver->wait(5); $this->scrollToBottom(); $this->waitUntilElementIsVisible('id', 'buttonGo', 30); $this->byId('buttonGo')->click(); $this->waitUntilElementIsVisible( 'xpath', "//div[@class='alert alert-success' and contains(., 'Import has been successfully')]", 30 ); } }