Search in sources :

Example 26 with RepoTO

use of org.syncany.config.to.RepoTO in project syncany by syncany.

the class ConfigTest method testConfigMachineNameInvalidNull.

@Test
public void testConfigMachineNameInvalidNull() throws Exception {
    File localDir = new File("/some/folder");
    ConfigTO configTO = new ConfigTO();
    RepoTO repoTO = new RepoTO();
    // <<< Invalid
    configTO.setMachineName(null);
    // Run!
    try {
        new Config(localDir, configTO, repoTO);
        fail("Machine name should not have been accepted.");
    } catch (ConfigException e) {
        TestAssertUtil.assertErrorStackTraceContains("Machine name", e);
    }
}
Also used : ConfigTO(org.syncany.config.to.ConfigTO) RepoTO(org.syncany.config.to.RepoTO) File(java.io.File) Test(org.junit.Test)

Example 27 with RepoTO

use of org.syncany.config.to.RepoTO in project syncany by syncany.

the class ConfigTest method testConfigValid.

@Test
public void testConfigValid() throws Exception {
    // Setup
    File localDir = new File("/some/folder");
    ConfigTO configTO = new ConfigTO();
    RepoTO repoTO = new RepoTO();
    // <<< valid
    configTO.setMachineName("somevalidmachinename");
    // <<< valid
    repoTO.setChunkerTO(TestConfigUtil.createFixedChunkerTO());
    // <<< valid
    repoTO.setMultiChunker(TestConfigUtil.createZipMultiChunkerTO());
    // <<< valid
    repoTO.setRepoId(new byte[] { 0x01, 0x02 });
    // <<< valid
    repoTO.setTransformers(null);
    // Run!
    Config config = new Config(localDir, configTO, repoTO);
    // Test
    assertEquals("/some/folder/.syncany", config.getAppDir().getAbsolutePath());
    assertEquals("/some/folder/.syncany/cache", config.getCacheDir().getAbsolutePath());
    assertEquals("/some/folder/.syncany/db", config.getDatabaseDir().getAbsolutePath());
    assertEquals("/some/folder/.syncany/db/local.db", config.getDatabaseFile().getAbsolutePath());
    assertNotNull(config.getChunker());
    assertEquals("FixedChunker", config.getChunker().getClass().getSimpleName());
    assertEquals("SHA1", config.getChunker().getChecksumAlgorithm());
    assertNotNull(config.getMultiChunker());
    assertEquals("ZipMultiChunker", config.getMultiChunker().getClass().getSimpleName());
    assertNotNull(config.getTransformer());
    assertEquals("NoTransformer", config.getTransformer().getClass().getSimpleName());
    assertNotNull(config.getCache());
}
Also used : ConfigTO(org.syncany.config.to.ConfigTO) RepoTO(org.syncany.config.to.RepoTO) File(java.io.File) Test(org.junit.Test)

Example 28 with RepoTO

use of org.syncany.config.to.RepoTO in project syncany by syncany.

the class TestConfigUtil method createTestLocalConfig.

public static Config createTestLocalConfig(String machineName, TransferSettings connection) throws Exception {
    File tempLocalDir = TestFileUtil.createTempDirectoryInSystemTemp(createUniqueName("client-" + machineName, connection));
    tempLocalDir.mkdirs();
    RepoTO repoTO = createRepoTO();
    // Create config TO
    ConfigTO configTO = new ConfigTO();
    configTO.setMachineName(machineName + CipherUtil.createRandomAlphabeticString(20));
    // Get Masterkey
    SaltedSecretKey masterKey = getMasterKey();
    configTO.setMasterKey(masterKey);
    LocalTransferSettings localConnection = (LocalTransferSettings) connection;
    // Create connection TO
    Map<String, String> localConnectionSettings = new HashMap<String, String>();
    localConnectionSettings.put("path", localConnection.getPath().getAbsolutePath());
    configTO.setTransferSettings(connection);
    // Create
    Config config = new Config(tempLocalDir, configTO, repoTO);
    config.setConnection(connection);
    config.getAppDir().mkdirs();
    config.getCacheDir().mkdirs();
    config.getDatabaseDir().mkdirs();
    config.getLogDir().mkdirs();
    config.getStateDir().mkdirs();
    // Write to config folder (required for some tests)
    new Persister().write(configTO, new File(config.getAppDir() + "/" + Config.FILE_CONFIG));
    new Persister().write(repoTO, new File(config.getAppDir() + "/" + Config.FILE_REPO));
    return config;
}
Also used : SaltedSecretKey(org.syncany.crypto.SaltedSecretKey) LocalTransferSettings(org.syncany.plugins.local.LocalTransferSettings) UnreliableLocalTransferSettings(org.syncany.plugins.unreliable_local.UnreliableLocalTransferSettings) HashMap(java.util.HashMap) UserConfig(org.syncany.config.UserConfig) Config(org.syncany.config.Config) ConfigTO(org.syncany.config.to.ConfigTO) Persister(org.simpleframework.xml.core.Persister) RepoTO(org.syncany.config.to.RepoTO) File(java.io.File)

Example 29 with RepoTO

use of org.syncany.config.to.RepoTO in project syncany by syncany.

the class InitCommand method parseOptions.

@Override
public InitOperationOptions parseOptions(String[] operationArguments) throws Exception {
    InitOperationOptions operationOptions = new InitOperationOptions();
    OptionParser parser = new OptionParser();
    OptionSpec<Void> optionNoCreateTarget = parser.acceptsAll(asList("T", "no-create-target"));
    OptionSpec<Void> optionAdvanced = parser.acceptsAll(asList("a", "advanced"));
    OptionSpec<Void> optionNoCompression = parser.acceptsAll(asList("G", "no-compression"));
    OptionSpec<Void> optionNoEncryption = parser.acceptsAll(asList("E", "no-encryption"));
    OptionSpec<String> optionPlugin = parser.acceptsAll(asList("P", "plugin")).withRequiredArg();
    OptionSpec<String> optionPluginOpts = parser.acceptsAll(asList("o", "plugin-option")).withRequiredArg();
    OptionSpec<Void> optionAddDaemon = parser.acceptsAll(asList("n", "add-daemon"));
    OptionSpec<Void> optionShortUrl = parser.acceptsAll(asList("s", "short"));
    OptionSpec<Void> optionHeadlessMode = parser.acceptsAll(asList("l", "headless"));
    OptionSpec<String> optionPassword = parser.acceptsAll(asList("password")).withRequiredArg();
    OptionSet options = parser.parse(operationArguments);
    // Set interactivity mode
    isInteractive = !options.has(optionPlugin);
    // Set headless mode
    isHeadless = options.has(optionHeadlessMode);
    // Ask or set transfer settings
    TransferSettings transferSettings = createTransferSettingsFromOptions(options, optionPlugin, optionPluginOpts);
    // Some misc settings
    boolean createTargetPath = !options.has(optionNoCreateTarget);
    boolean advancedModeEnabled = options.has(optionAdvanced);
    boolean encryptionEnabled = !options.has(optionNoEncryption);
    boolean compressionEnabled = !options.has(optionNoCompression);
    // Cipher specs: --no-encryption, --advanced
    List<CipherSpec> cipherSpecs = getCipherSpecs(encryptionEnabled, advancedModeEnabled);
    // Compression: --no-compression
    // DefaultRepoTOFactory also creates default chunkers
    RepoTOFactory repoTOFactory = new DefaultRepoTOFactory(compressionEnabled, cipherSpecs);
    // Genlink options: --short
    GenlinkOperationOptions genlinkOptions = new GenlinkOperationOptions();
    genlinkOptions.setShortUrl(options.has(optionShortUrl));
    // Set repo password
    String password = validateAndGetPassword(options, optionNoEncryption, optionPassword);
    operationOptions.setPassword(password);
    // Create configTO and repoTO
    ConfigTO configTO = createConfigTO(transferSettings);
    RepoTO repoTO = repoTOFactory.createRepoTO();
    operationOptions.setLocalDir(localDir);
    operationOptions.setConfigTO(configTO);
    operationOptions.setRepoTO(repoTO);
    operationOptions.setCreateTarget(createTargetPath);
    operationOptions.setEncryptionEnabled(encryptionEnabled);
    operationOptions.setCipherSpecs(cipherSpecs);
    operationOptions.setDaemon(options.has(optionAddDaemon));
    operationOptions.setGenlinkOptions(genlinkOptions);
    return operationOptions;
}
Also used : InitOperationOptions(org.syncany.operations.init.InitOperationOptions) DefaultRepoTOFactory(org.syncany.config.to.DefaultRepoTOFactory) TransferSettings(org.syncany.plugins.transfer.TransferSettings) GenlinkOperationOptions(org.syncany.operations.init.GenlinkOperationOptions) OptionParser(joptsimple.OptionParser) DefaultRepoTOFactory(org.syncany.config.to.DefaultRepoTOFactory) RepoTOFactory(org.syncany.config.to.RepoTOFactory) CipherSpec(org.syncany.crypto.CipherSpec) ConfigTO(org.syncany.config.to.ConfigTO) OptionSet(joptsimple.OptionSet) RepoTO(org.syncany.config.to.RepoTO)

Example 30 with RepoTO

use of org.syncany.config.to.RepoTO in project syncany by syncany.

the class ConfigHelperTest method testConfigHelperLoadRepoTO.

@Test
public void testConfigHelperLoadRepoTO() throws Exception {
    // Setup
    Config testConfig = TestConfigUtil.createTestLocalConfig();
    // Run
    ConfigTO loadedConfigTO = ConfigHelper.loadConfigTO(testConfig.getLocalDir());
    RepoTO repoConfigTO = ConfigHelper.loadRepoTO(testConfig.getLocalDir(), loadedConfigTO);
    // Test
    assertNotNull(repoConfigTO);
    assertNotNull(repoConfigTO.getChunkerTO());
    assertNotNull(repoConfigTO.getMultiChunker());
    assertNotNull(repoConfigTO.getRepoId());
    if (TestConfigUtil.getCrypto()) {
        assertNotNull(repoConfigTO.getTransformers());
        assertEquals(2, repoConfigTO.getTransformers().size());
        assertEquals("gzip", repoConfigTO.getTransformers().get(0).getType());
        assertEquals("cipher", repoConfigTO.getTransformers().get(1).getType());
    } else {
        assertNull(repoConfigTO.getTransformers());
    }
    assertEquals("fixed", repoConfigTO.getChunkerTO().getType());
    assertEquals(1, repoConfigTO.getChunkerTO().getSettings().size());
    assertEquals("zip", repoConfigTO.getMultiChunker().getType());
    assertEquals(1, repoConfigTO.getMultiChunker().getSettings().size());
    assertEquals("010203", StringUtil.toHex(repoConfigTO.getRepoId()));
    // Tear down
    TestConfigUtil.deleteTestLocalConfigAndData(testConfig);
}
Also used : ConfigTO(org.syncany.config.to.ConfigTO) RepoTO(org.syncany.config.to.RepoTO) Test(org.junit.Test)

Aggregations

RepoTO (org.syncany.config.to.RepoTO)30 ConfigTO (org.syncany.config.to.ConfigTO)29 File (java.io.File)26 Test (org.junit.Test)24 Config (org.syncany.config.Config)14 TransformerTO (org.syncany.config.to.RepoTO.TransformerTO)7 ArrayList (java.util.ArrayList)6 ConfigException (org.syncany.config.ConfigException)6 Ignore (org.junit.Ignore)2 UserConfig (org.syncany.config.UserConfig)2 SaltedSecretKey (org.syncany.crypto.SaltedSecretKey)2 InitOperationOptions (org.syncany.operations.init.InitOperationOptions)2 LocalTransferSettings (org.syncany.plugins.local.LocalTransferSettings)2 TransferPlugin (org.syncany.plugins.transfer.TransferPlugin)2 UnreliableLocalTransferSettings (org.syncany.plugins.unreliable_local.UnreliableLocalTransferSettings)2 HashMap (java.util.HashMap)1 Random (java.util.Random)1 OptionParser (joptsimple.OptionParser)1 OptionSet (joptsimple.OptionSet)1 Persister (org.simpleframework.xml.core.Persister)1