12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * Copyright (c) 2014 Tom Needham <tom@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
- class Test_Migrate extends PHPUnit_Framework_TestCase {
- public $users;
- public $tmpfiles = array();
- /**
- * Generates a test user and sets up their file system
- * @return string the test users id
- */
- public function generateUser() {
- $username = uniqid();
- \OC_User::createUser($username, 'password');
- \OC_Util::tearDownFS();
- \OC_User::setUserId('');
- \OC\Files\Filesystem::tearDown();
- \OC_Util::setupFS($username);
- $this->users[] = $username;
- return $username;
- }
- /**
- * validates an export for a user
- * checks for existence of export_info.json and file folder
- * @param string $exportedUser the user that was exported
- * @param string $path the path to the .zip export
- * @param string $exportedBy
- */
- public function validateUserExport($exportedBy, $exportedUser, $path) {
- $this->assertTrue(file_exists($path));
- // Extract
- $extract = get_temp_dir() . '/oc_import_' . uniqid();
- //mkdir($extract);
- $this->tmpfiles[] = $extract;
- $zip = new ZipArchive;
- $zip->open($path);
- $zip->extractTo($extract);
- $zip->close();
- $this->assertTrue(file_exists($extract.'/export_info.json'));
- $exportInfo = file_get_contents($extract.'/export_info.json');
- $exportInfo = json_decode($exportInfo);
- $this->assertNotNull($exportInfo);
- $this->assertEquals($exportedUser, $exportInfo->exporteduser);
- $this->assertEquals($exportedBy, $exportInfo->exportedby);
- $this->assertTrue(file_exists($extract.'/'.$exportedUser.'/files'));
- }
- public function testUserSelfExport() {
- // Create a user
- $user = $this->generateUser();
- \OC_User::setUserId($user);
- $export = \OC_Migrate::export($user);
- // Check it succeeded and exists
- $this->assertTrue(json_decode($export)->success);
- // Validate the export
- $this->validateUserExport($user, $user, json_decode($export)->data);
- }
- public function testUserOtherExport() {
- $user = $this->generateUser();
- $user2 = $this->generateUser();
- \OC_User::setUserId($user2);
- $export = \OC_Migrate::export($user);
- // Check it succeeded and exists
- $this->assertTrue(json_decode($export)->success);
- // Validate the export
- $this->validateUserExport($user2, $user, json_decode($export)->data);
- }
- public function tearDown() {
- $u = new OC_User();
- foreach($this->users as $user) {
- $u->deleteUser($user);
- }
- foreach($this->tmpfiles as $file) {
- \OC_Helper::rmdirr($file);
- }
- }
- }
|