/******************************************************************************* * Copyright (c) 2014 Ericsson * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * 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)); } }