blob: 42cd93b9d489754d3a018c152d26d456ce1c25c8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Bernd Hufmann - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.tests.model;
import static org.junit.Assert.assertEquals;
import org.eclipse.core.runtime.Path;
import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceCoreUtils;
import org.junit.Test;
/**
* Test suite for the TmfCoalescedEventRequest class.
*/
public class TmfTraceCoreUtilsTest {
private static final boolean IS_WINDOWS = System.getProperty("os.name").contains("Windows") ? true : false; //$NON-NLS-1$ //$NON-NLS-2$
private static final char BACKSLASH_PUA = 0xF000 + '\\';
private static final char COLON_PUA = 0xF000 + ':';
/**
* Test {@link TmfTraceCoreUtils#validateName(String)}
*/
@Test
public void testValidateName() {
// @see org.eclipse.core.internal.resources.OS for invalid patterns
if (IS_WINDOWS) {
assertEquals("myName", TmfTraceCoreUtils.validateName("myName"));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName_"));
assertEquals("my Name", TmfTraceCoreUtils.validateName("my Name"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my\\Name"));
assertEquals("_", TmfTraceCoreUtils.validateName("."));
assertEquals("._", TmfTraceCoreUtils.validateName(".."));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName:"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my/Name"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my\\Name"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my/Name"));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName."));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName*"));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName>"));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName<"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my?Name"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my\"Name"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my|Name"));
assertEquals("_com1", TmfTraceCoreUtils.validateName("com1"));
assertEquals("_clock$", TmfTraceCoreUtils.validateName("clock$"));
return;
}
assertEquals("myName", TmfTraceCoreUtils.validateName("myName"));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName_"));
assertEquals("my\\ Name", TmfTraceCoreUtils.validateName("my\\ Name"));
assertEquals("_.", TmfTraceCoreUtils.validateName("."));
assertEquals("_..", TmfTraceCoreUtils.validateName(".."));
assertEquals("myName_", TmfTraceCoreUtils.validateName("myName\0"));
assertEquals("my_Name", TmfTraceCoreUtils.validateName("my/Name"));
}
/**
* Test {@link TmfTraceCoreUtils#newSafePath(String)} and {@link TmfTraceCoreUtils#safePathToString(String)}
*/
public void testSafePath() {
String path1 = "my:name:is/santa";
Path safePath1 = newSafePath(path1);
assertEquals(safePath1.toPortableString(), TmfTraceCoreUtils.newSafePath(path1).toPortableString());
String path2 = "my\\name\\is/santa";
Path safePath2 = newSafePath(path2);
assertEquals(safePath2.toPortableString(), TmfTraceCoreUtils.newSafePath(path2).toPortableString());
assertEquals(path1, TmfTraceCoreUtils.safePathToString(safePath1.toPortableString()));
assertEquals(path2, TmfTraceCoreUtils.safePathToString(safePath2.toPortableString()));
}
private static Path newSafePath(String path) {
return new Path(path.replace('\\', BACKSLASH_PUA).replace(':', COLON_PUA));
}
}