diff options
Diffstat (limited to 'apps/files_external/tests')
-rw-r--r-- | apps/files_external/tests/service/globalstoragesservicetest.php | 104 | ||||
-rw-r--r-- | apps/files_external/tests/service/userstoragesservicetest.php | 50 |
2 files changed, 154 insertions, 0 deletions
diff --git a/apps/files_external/tests/service/globalstoragesservicetest.php b/apps/files_external/tests/service/globalstoragesservicetest.php index f5cdcfa3907..4c038bc489e 100644 --- a/apps/files_external/tests/service/globalstoragesservicetest.php +++ b/apps/files_external/tests/service/globalstoragesservicetest.php @@ -708,4 +708,108 @@ class GlobalStoragesServiceTest extends StoragesServiceTest { } } + /** + * Test reading in a legacy config and generating config ids. + */ + public function testReadLegacyConfigAndGenerateConfigId() { + $configFile = $this->dataDir . '/mount.json'; + + $legacyBackendOptions = [ + 'user' => 'someuser', + 'password' => 'somepassword', + ]; + $legacyBackendOptions = \OC_Mount_Config::encryptPasswords($legacyBackendOptions); + + $legacyConfig = [ + 'class' => '\OC\Files\Storage\SMB', + 'options' => $legacyBackendOptions, + 'mountOptions' => ['preview' => false], + ]; + // different mount options + $legacyConfig2 = [ + 'class' => '\OC\Files\Storage\SMB', + 'options' => $legacyBackendOptions, + 'mountOptions' => ['preview' => true], + ]; + + $legacyBackendOptions2 = $legacyBackendOptions; + $legacyBackendOptions2 = ['user' => 'someuser2', 'password' => 'somepassword2']; + $legacyBackendOptions2 = \OC_Mount_Config::encryptPasswords($legacyBackendOptions2); + + // different config + $legacyConfig3 = [ + 'class' => '\OC\Files\Storage\SMB', + 'options' => $legacyBackendOptions2, + 'mountOptions' => ['preview' => true], + ]; + + $json = [ + 'user' => [ + 'user1' => [ + '/$user/files/somemount' => $legacyConfig, + ], + // same config + 'user2' => [ + '/$user/files/somemount' => $legacyConfig, + ], + // different mountOptions + 'user3' => [ + '/$user/files/somemount' => $legacyConfig2, + ], + // different mount point + 'user4' => [ + '/$user/files/anothermount' => $legacyConfig, + ], + // different storage config + 'user5' => [ + '/$user/files/somemount' => $legacyConfig3, + ], + ], + 'group' => [ + 'group1' => [ + // will get grouped with user configs + '/$user/files/somemount' => $legacyConfig, + ], + ], + ]; + + file_put_contents($configFile, json_encode($json)); + + $allStorages = $this->service->getAllStorages(); + + $this->assertCount(4, $allStorages); + + $storage1 = $allStorages[1]; + $storage2 = $allStorages[2]; + $storage3 = $allStorages[3]; + $storage4 = $allStorages[4]; + + $this->assertEquals('/somemount', $storage1->getMountPoint()); + $this->assertEquals('someuser', $storage1->getBackendOptions()['user']); + $this->assertEquals('somepassword', $storage1->getBackendOptions()['password']); + $this->assertEquals(['user1', 'user2'], $storage1->getApplicableUsers()); + $this->assertEquals(['group1'], $storage1->getApplicableGroups()); + $this->assertEquals(['preview' => false], $storage1->getMountOptions()); + + $this->assertEquals('/somemount', $storage2->getMountPoint()); + $this->assertEquals('someuser', $storage2->getBackendOptions()['user']); + $this->assertEquals('somepassword', $storage2->getBackendOptions()['password']); + $this->assertEquals(['user3'], $storage2->getApplicableUsers()); + $this->assertEquals([], $storage2->getApplicableGroups()); + $this->assertEquals(['preview' => true], $storage2->getMountOptions()); + + $this->assertEquals('/anothermount', $storage3->getMountPoint()); + $this->assertEquals('someuser', $storage3->getBackendOptions()['user']); + $this->assertEquals('somepassword', $storage3->getBackendOptions()['password']); + $this->assertEquals(['user4'], $storage3->getApplicableUsers()); + $this->assertEquals([], $storage3->getApplicableGroups()); + $this->assertEquals(['preview' => false], $storage3->getMountOptions()); + + $this->assertEquals('/somemount', $storage4->getMountPoint()); + $this->assertEquals('someuser2', $storage4->getBackendOptions()['user']); + $this->assertEquals('somepassword2', $storage4->getBackendOptions()['password']); + $this->assertEquals(['user5'], $storage4->getApplicableUsers()); + $this->assertEquals([], $storage4->getApplicableGroups()); + $this->assertEquals(['preview' => true], $storage4->getMountOptions()); + } } diff --git a/apps/files_external/tests/service/userstoragesservicetest.php b/apps/files_external/tests/service/userstoragesservicetest.php index 77b3842b318..dd3f9e1b92c 100644 --- a/apps/files_external/tests/service/userstoragesservicetest.php +++ b/apps/files_external/tests/service/userstoragesservicetest.php @@ -201,4 +201,54 @@ class UserStoragesServiceTest extends StoragesServiceTest { $this->assertEquals('', $backendOptions['password']); $this->assertNotEmpty($backendOptions['password_encrypted']); } + + /** + * Test reading in a legacy config and generating config ids. + */ + public function testReadLegacyConfigAndGenerateConfigId() { + $configFile = $this->dataDir . '/' . $this->userId . '/mount.json'; + + $legacyBackendOptions = [ + 'user' => 'someuser', + 'password' => 'somepassword', + ]; + $legacyBackendOptions = \OC_Mount_Config::encryptPasswords($legacyBackendOptions); + + $legacyConfig = [ + 'class' => '\OC\Files\Storage\SMB', + 'options' => $legacyBackendOptions, + 'mountOptions' => ['preview' => false], + ]; + // different mount options + $legacyConfig2 = [ + 'class' => '\OC\Files\Storage\SMB', + 'options' => $legacyBackendOptions, + 'mountOptions' => ['preview' => true], + ]; + + $json = ['user' => []]; + $json['user'][$this->userId] = [ + '/$user/files/somemount' => $legacyConfig, + '/$user/files/anothermount' => $legacyConfig2, + ]; + + file_put_contents($configFile, json_encode($json)); + + $allStorages = $this->service->getAllStorages(); + + $this->assertCount(2, $allStorages); + + $storage1 = $allStorages[1]; + $storage2 = $allStorages[2]; + + $this->assertEquals('/somemount', $storage1->getMountPoint()); + $this->assertEquals('someuser', $storage1->getBackendOptions()['user']); + $this->assertEquals('somepassword', $storage1->getBackendOptions()['password']); + $this->assertEquals(['preview' => false], $storage1->getMountOptions()); + + $this->assertEquals('/anothermount', $storage2->getMountPoint()); + $this->assertEquals('someuser', $storage2->getBackendOptions()['user']); + $this->assertEquals('somepassword', $storage2->getBackendOptions()['password']); + $this->assertEquals(['preview' => true], $storage2->getMountOptions()); + } } |