package com.github.sarxos.webcam.util; import org.junit.Test; import com.github.sarxos.webcam.util.NixVideoDevUtils; import java.io.File; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * @author Dan Rollo * Date: 3/8/14 * Time: 10:44 PM */ public class NixVideoDevUtilsTest { /** * Accept method was failing with exception: String index out of range: 5 * This occurs on opensuse 11 where video device files do not all have a suffix. The files are created like so: * $ ls -l /dev/video* * /dev/video -> video0 * /dev/video0 * * In this case, the link name 'video' is less that 6 characters long, so the filter statement: * Character.isDigit(name.charAt(5)) * causes the exception. * * Fix is to also check for length before checking for isDigit(). */ @Test public void testAcceptHandlesShortVideoDeviceFilename() { final NixVideoDevUtils videoDeviceFilenameFilter = new NixVideoDevUtils(); assertFalse(videoDeviceFilenameFilter.accept(new File("/dev"), "video")); assertTrue(videoDeviceFilenameFilter.accept(new File("/dev"), "video0")); } }