On Thu, 29 Feb 2024 15:59:58 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
>> I disagree on this. The code is complicated and full of branches. Manual >> testing is very error prone. However, since you restored most of the code >> to its original (which wasn't tested either) I could live with it. Still, >> here's a small test that you could use to verify correct hits: >> >> >> /* >> * Copyright (c) 2012, 2023, 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. Oracle designates this >> * particular file as subject to the "Classpath" exception as provided >> * by Oracle in the LICENSE file that accompanied this code. >> * >> * This code is distributed in the hope that it will be useful, but WITHOUT >> * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or >> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License >> * version 2 for more details (a copy is included in the LICENSE file that >> * accompanied this code). >> * >> * You should have received a copy of the GNU General Public License version >> * 2 along with this work; if not, write to the Free Software Foundation, >> * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. >> * >> * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA >> * or visit www.oracle.com if you need additional information or have any >> * questions. >> */ >> >> package test.com.sun.javafx.text; >> >> import static org.junit.Assume.assumeTrue; >> import static org.junit.jupiter.api.Assertions.assertEquals; >> >> import org.junit.jupiter.api.Test; >> >> import com.sun.javafx.font.PGFont; >> import com.sun.javafx.geom.RectBounds; >> import com.sun.javafx.scene.text.FontHelper; >> import com.sun.javafx.scene.text.TextLayout.Hit; >> import com.sun.javafx.scene.text.TextSpan; >> import com.sun.javafx.text.PrismTextLayout; >> >> import javafx.scene.text.Font; >> >> public class TextLayoutTest { >> private final PrismTextLayout layout = new PrismTextLayout(); >> private final PGFont arialFont = (PGFont) >> FontHelper.getNativeFont(Font.font("Arial", 12)); >> >> record TestSpan(String text, Object font) implements TextSpan { >> @Override >> public String getText() { >> return text; >> } >> >> @Override >> public Object getFont() { >> retur... > > @hjohn how do you get this coverage diagram? > > The BreakIterator is a part of the existing code, we should probably have > this discussion outside of this PR. I agree, there might be a situation when > the app wants to select a specific locale for the text component instead of > relying on the default locale. @andy-goryachev-oracle The coverage comes from EclEmma, an Eclipse plugin. Once installed, there is another way to run tests called `Coverage as...` just above `Run as...`. It's very useful to use it on a JUnit test to see if there are major branches you missed in testing that may require additional cases. ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1323#discussion_r1507945798