1/* 2* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4* 5* This code is free software; you can redistribute it and/or modify it 6* under the terms of the GNU General Public License version 2 only, as 7* published by the Free Software Foundation. 8* 9* This code is distributed in the hope that it will be useful, but WITHOUT 10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12* version 2 for more details (a copy is included in the LICENSE file that 13* accompanied this code). 14* 15* You should have received a copy of the GNU General Public License version 16* 2 along with this work; if not, write to the Free Software Foundation, 17* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18* 19* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20* or visit www.oracle.com if you need additional information or have any 21* questions. 22*/ 23 24import javax.swing.*; 25import javax.swing.text.MutableAttributeSet; 26import javax.swing.text.html.HTML; 27import javax.swing.text.html.HTMLDocument; 28import javax.swing.text.html.HTMLEditorKit; 29import java.io.*; 30import java.lang.reflect.InvocationTargetException; 31 32/* @test 33 @bug 8177450 34 @summary javax.swing.text.html.parser.Parser parseScript ignores a character after commend end 35 @author Mikhail Cherkasov 36 @run main HtmlCommentTagParseTest 37*/ 38public class HtmlCommentTagParseTest { 39 private static volatile boolean failed = false; 40 public static void main(String[] args) throws IOException, InvocationTargetException, InterruptedException { 41 SwingUtilities.invokeAndWait(() -> { 42 MyParser cb = new MyParser(); 43 HTMLEditorKit htmlKit = new HTMLEditorKit(); 44 HTMLDocument htmlDoc = (HTMLDocument) 45 htmlKit.createDefaultDocument(); 46 FileReader reader = null; 47 try { 48 reader = new FileReader(getDirURL() + "test.html"); 49 htmlDoc.getParser().parse(reader, cb, true); 50 if(failed) { 51 throw new RuntimeException("Test failed"); 52 } 53 } catch (IOException e) { 54 throw new RuntimeException(e); 55 } 56 }); 57 } 58 private static String getDirURL() { 59 return new File(System.getProperty("test.src", ".")).getAbsolutePath() + 60 File.separator; 61 } 62 63 private static class MyParser extends HTMLEditorKit.ParserCallback { 64 @Override 65 public void handleError(String errorMsg, int pos) { 66 failed = errorMsg.contains("eof.script"); 67 } 68 } 69}