@@ -0,0 +1,3007 @@
+/*%0A * Copyright 2013, Red Hat, Inc. and individual contributors%0A * as indicated by the @author tags. See the copyright.txt file in the%0A * distribution for a full listing of individual contributors.%0A *%0A * This is free software; you can redistribute it and/or modify it%0A * under the terms of the GNU Lesser General Public License as%0A * published by the Free Software Foundation; either version 2.1 of%0A * the License, or (at your option) any later version.%0A *%0A * This software is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU%0A * Lesser General Public License for more details.%0A *%0A * You should have received a copy of the GNU Lesser General Public%0A * License along with this software; if not, write to the Free%0A * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA%0A * 02110-1301 USA, or see the FSF site: http://www.fsf.org.%0A */%0Apackage org.zanata.service.impl;%0A%0Aimport static org.hamcrest.MatcherAssert.assertThat;%0Aimport static org.hamcrest.Matchers.is;%0A%0Aimport org.testng.annotations.BeforeMethod;%0Aimport org.testng.annotations.Test;%0Aimport org.zanata.common.DocumentType;%0Aimport org.zanata.seam.SeamAutowire;%0Aimport org.zanata.service.TranslationFileService;%0A%0A@Test(groups = %7B %22unit-tests%22 %7D)%0Apublic class TranslationFileServiceImplTest%0A%7B%0A%0A   TranslationFileService transFileService;%0A%0A   @BeforeMethod%0A   public void beforeTest()%0A   %7B%0A      transFileService = SeamAutowire.instance()%0A            .ignoreNonResolvable()%0A            .autowire(TranslationFileServiceImpl.class);%0A   %7D%0A%0A   // FIXME this is the current behaviour, but doesn't seem sensible%0A   @Test(enabled = true)%0A   public void extractExtensionFromPlainFilenameCurrentBehaviour()%0A   %7B%0A      assertThat(transFileService.extractExtension(%22foobar%22), is(%22foobar%22));%0A   %7D%0A%0A   @Test(enabled = false)%0A   public void extractExtensionFromPlainFilenameBetterBehaviour()%0A   %7B%0A      assertThat(transFileService.extractExtension(%22foobar%22), is(%22%22));%0A   %7D%0A%0A   public void extractNormalExtension()%0A   %7B%0A      assertThat(transFileService.extractExtension(%22file.txt%22), is(%22txt%22));%0A   %7D%0A%0A   public void extractExtensionWithMultipleDots()%0A   %7B%0A      assertThat(transFileService.extractExtension(%22foo.bar.txt%22), is(%22txt%22));%0A   %7D%0A%0A   public void extractFromSQLInjection()%0A   %7B%0A      String extension = transFileService.extractExtension(%22file.txt;DROP ALL OBJECTS;other.txt%22);%0A      assertThat(extension, is(%22txt%22));%0A   %7D%0A%0A   public void hasPlainTextAdapter()%0A   %7B%0A      assertThat(transFileService.hasAdapterFor(DocumentType.PLAIN_TEXT), is(true));%0A   %7D%0A%0A   public void generateSimpleDocId()%0A   %7B%0A      assertThat(transFileService.generateDocId(%22foo%22, %22bar.txt%22), is(%22foo/bar.txt%22));%0A   %7D%0A%0A   public void generateSQLInjectionDocId()%0A   %7B%0A      String sqlInjectFilename = %22file.txt;DROP ALL OBJECTS;other.txt%22;%0A      assertThat(transFileService.generateDocId(%22%22, sqlInjectFilename), is(sqlInjectFilename));%0A   %7D%0A%7D%0A

Add some basic tests for TranslationFileServiceImpl