Mercurial > hg > icedtea8-forest > jdk
changeset 14893:ac0a8eb96a13
8150204: (fs) Enhance java/nio/file/Files/probeContentType/Basic.java debugging output
Summary: Add debugging information to the test.
Reviewed-by: alanb
author | bpb |
---|---|
date | Mon, 15 Feb 2016 16:59:56 -0800 |
parents | 59e5a46d4e31 |
children | c3057fb0470e |
files | test/java/nio/file/Files/probeContentType/Basic.java |
diffstat | 1 files changed, 64 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/test/java/nio/file/Files/probeContentType/Basic.java Sat Aug 29 08:10:18 2020 +0100 +++ b/test/java/nio/file/Files/probeContentType/Basic.java Mon Feb 15 16:59:56 2016 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. + * 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 @@ -29,14 +29,18 @@ * @run main/othervm Basic */ +import java.io.*; import java.nio.file.*; -import java.io.*; +import java.util.stream.Stream; /** - * Uses Files.probeContentType to probe html file and custom file type. + * Uses Files.probeContentType to probe html file, custom file type, and minimal + * set of file extension to content type mappings. */ +public class Basic { -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"); @@ -51,7 +55,58 @@ 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(); @@ -60,8 +115,7 @@ 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); + failures += checkContentTypes("text/html", type); } } finally { Files.delete(file); @@ -73,11 +127,13 @@ 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); + failures += checkContentTypes("grape/unknown", type); } finally { Files.delete(file); } + if (failures > 0) { + throw new RuntimeException("Test failed!"); + } } }