< prev index next >

test/java/nio/file/Files/probeContentType/Basic.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 27,45 **** * @library ../.. * @build Basic SimpleFileTypeDetector * @run main/othervm Basic */ - import java.nio.file.*; import java.io.*; /** ! * Uses Files.probeContentType to probe html file and custom file type. */ - public class Basic { static Path createHtmlFile() throws IOException { Path file = Files.createTempFile("foo", ".html"); try (OutputStream out = Files.newOutputStream(file)) { out.write("<html><body>foo</body></html>".getBytes()); } --- 27,49 ---- * @library ../.. * @build Basic SimpleFileTypeDetector * @run main/othervm Basic */ import java.io.*; + import java.nio.file.*; + import java.util.stream.Stream; /** ! * Uses Files.probeContentType to probe html file, custom file type, and minimal ! * set of file extension to content type mappings. */ public class Basic { + private static final boolean IS_UNIX = + ! System.getProperty("os.name").startsWith("Windows"); + static Path createHtmlFile() throws IOException { Path file = Files.createTempFile("foo", ".html"); try (OutputStream out = Files.newOutputStream(file)) { out.write("<html><body>foo</body></html>".getBytes()); }
*** 49,69 **** static Path createGrapeFile() throws IOException { return Files.createTempFile("red", ".grape"); } public static void main(String[] args) throws IOException { // exercise default file type detector Path file = createHtmlFile(); try { String type = Files.probeContentType(file); if (type == null) { System.err.println("Content type cannot be determined - test skipped"); } else { ! if (!type.equals("text/html")) ! throw new RuntimeException("Unexpected type: " + type); } } finally { Files.delete(file); } --- 53,123 ---- static Path createGrapeFile() throws IOException { return Files.createTempFile("red", ".grape"); } + private static int checkContentTypes(String expected, String actual) { + assert expected != null; + assert actual != null; + + if (!expected.equals(actual)) { + if (IS_UNIX) { + Path userMimeTypes = + Paths.get(System.getProperty("user.home"), ".mime.types"); + if (!Files.exists(userMimeTypes)) { + System.out.println(userMimeTypes + " does not exist"); + } else if (!Files.isReadable(userMimeTypes)) { + System.out.println(userMimeTypes + " is not readable"); + } else { + System.out.println(userMimeTypes + " contents:"); + try (Stream<String> lines = Files.lines(userMimeTypes)) { + lines.forEach(System.out::println); + System.out.println(""); + } catch (IOException ioe) { + System.err.println("Problem reading " + + userMimeTypes); + } + } + + Path etcMimeTypes = Paths.get("/etc/mime.types"); + if (!Files.exists(etcMimeTypes)) { + System.out.println(etcMimeTypes + " does not exist"); + } else if (!Files.isReadable(etcMimeTypes)) { + System.out.println(etcMimeTypes + " is not readable"); + } else { + System.out.println(etcMimeTypes + " contents:"); + try (Stream<String> lines = Files.lines(etcMimeTypes)) { + lines.forEach(System.out::println); + System.out.println(""); + } catch (IOException ioe) { + System.err.println("Problem reading " + + etcMimeTypes); + } + } + } + + System.err.println("Expected \"" + expected + + "\" but obtained \"" + + actual + "\""); + + return 1; + } + + return 0; + } + public static void main(String[] args) throws IOException { + int failures = 0; // exercise default file type detector Path file = createHtmlFile(); try { String type = Files.probeContentType(file); if (type == null) { System.err.println("Content type cannot be determined - test skipped"); } else { ! failures += checkContentTypes("text/html", type); } } finally { Files.delete(file); }
*** 71,83 **** file = createGrapeFile(); try { String type = Files.probeContentType(file); if (type == null) throw new RuntimeException("Custom file type detector not installed?"); ! if (!type.equals("grape/unknown")) ! throw new RuntimeException("Unexpected type: " + type); } finally { Files.delete(file); } } } --- 125,139 ---- file = createGrapeFile(); try { String type = Files.probeContentType(file); if (type == null) throw new RuntimeException("Custom file type detector not installed?"); ! failures += checkContentTypes("grape/unknown", type); } finally { Files.delete(file); } + if (failures > 0) { + throw new RuntimeException("Test failed!"); + } } }
< prev index next >