- Added test to trigger index id error
- re-enable encryption migration tests - sqlite requires reconnect after schema changes
This commit is contained in:
parent
05ba9b3c64
commit
10a29556b0
3 changed files with 51 additions and 8 deletions
|
@ -50,10 +50,44 @@ class Test_Migration extends PHPUnit_Framework_TestCase {
|
|||
|
||||
}
|
||||
|
||||
public function testDataMigration() {
|
||||
public function checkLastIndexId() {
|
||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` ('
|
||||
.' `item_type`, `item_source`, `item_target`, `share_type`,'
|
||||
.' `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`,'
|
||||
.' `file_target`, `token`, `parent`, `expiration`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)');
|
||||
$query->bindValue(1, 'file');
|
||||
$query->bindValue(2, 949);
|
||||
$query->bindValue(3, '/949');
|
||||
$query->bindValue(4, 0);
|
||||
$query->bindValue(5, 'migrate-test-user');
|
||||
$query->bindValue(6, 'migrate-test-owner');
|
||||
$query->bindValue(7, 23);
|
||||
$query->bindValue(8, 1402493312);
|
||||
$query->bindValue(9, 0);
|
||||
$query->bindValue(10, '/migration.txt');
|
||||
$query->bindValue(11, null);
|
||||
$query->bindValue(12, null);
|
||||
$query->bindValue(13, null);
|
||||
$this->assertEquals(1, $query->execute());
|
||||
|
||||
//FIXME fix this test so that we can enable it again
|
||||
$this->markTestIncomplete('Disabled, because of this tests a lot of other tests fail at the moment');
|
||||
$this->assertNotEquals('0', \OC_DB::insertid('*PREFIX*share'));
|
||||
|
||||
// cleanup
|
||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `file_target` = ?');
|
||||
$query->bindValue(1, '/migration.txt');
|
||||
$this->assertEquals(1, $query->execute());
|
||||
|
||||
}
|
||||
|
||||
public function testBrokenLastIndexId() {
|
||||
|
||||
// create test table
|
||||
$this->checkLastIndexId();
|
||||
OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml');
|
||||
$this->checkLastIndexId();
|
||||
}
|
||||
|
||||
public function testDataMigration() {
|
||||
|
||||
$this->assertTableNotExist('encryption_test');
|
||||
|
||||
|
@ -80,9 +114,6 @@ class Test_Migration extends PHPUnit_Framework_TestCase {
|
|||
|
||||
public function testDuplicateDataMigration() {
|
||||
|
||||
//FIXME fix this test so that we can enable it again
|
||||
$this->markTestIncomplete('Disabled, because of this tests a lot of other tests fail at the moment');
|
||||
|
||||
// create test table
|
||||
OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml');
|
||||
|
||||
|
|
|
@ -105,6 +105,16 @@ class OC_DB {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* The existing database connection is closed and connected again
|
||||
*/
|
||||
public static function reconnect() {
|
||||
if(self::$connection) {
|
||||
self::$connection->close();
|
||||
self::$connection->connect();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\DB\Connection
|
||||
*/
|
||||
|
|
|
@ -24,8 +24,6 @@ class MDB2SchemaManager {
|
|||
*/
|
||||
public function __construct($conn) {
|
||||
$this->conn = $conn;
|
||||
$this->conn->close();
|
||||
$this->conn->connect();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -150,6 +148,10 @@ class MDB2SchemaManager {
|
|||
$this->conn->query($sql);
|
||||
}
|
||||
$this->conn->commit();
|
||||
|
||||
if ($this->conn->getDatabasePlatform() instanceof SqlitePlatform) {
|
||||
\OC_DB::reconnect();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue