1cc8d3a34b
Reviewed-by: prappo
361 lines
18 KiB
Java
361 lines
18 KiB
Java
/*
|
|
* Copyright (c) 2012, 2020, 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.
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* @test
|
|
* @bug 7112427 8012295 8025633 8026567 8061305 8081854 8150130 8162363
|
|
* 8167967 8172528 8175200 8178830 8182257 8186332 8182765 8025091
|
|
* 8203791 8184205
|
|
* @summary Test of the JavaFX doclet features.
|
|
* @library ../../lib
|
|
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
|
* @build javadoc.tester.*
|
|
* @run main TestJavaFX
|
|
*/
|
|
|
|
import javadoc.tester.JavadocTester;
|
|
|
|
public class TestJavaFX extends JavadocTester {
|
|
|
|
public static void main(String... args) throws Exception {
|
|
TestJavaFX tester = new TestJavaFX();
|
|
tester.setAutomaticCheckAccessibility(false);
|
|
tester.setAutomaticCheckLinks(false);
|
|
tester.runTests();
|
|
}
|
|
|
|
@Test
|
|
public void test1() {
|
|
javadoc("-d", "out1",
|
|
"-sourcepath", testSrc,
|
|
"-javafx",
|
|
"--disable-javafx-strict-checks",
|
|
"-package",
|
|
"pkg1");
|
|
checkExit(Exit.OK);
|
|
|
|
checkOutput("pkg1/C.html", true,
|
|
"""
|
|
<dt>See Also:</dt>
|
|
<dd><a href="#getRate()"><code>getRate()</code></a>,\s
|
|
<a href="#setRate(double)"><code>setRate(double)</code></a></dd>""",
|
|
"""
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">void</span> <span class="member-name">setRate</spa\
|
|
n>​<span class="parameters">(double value)</span></div>
|
|
<div class="block">Sets the value of the property rate.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>""",
|
|
"""
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">double</span> <span class="member-name">getRate</s\
|
|
pan>()</div>
|
|
<div class="block">Gets the value of the property rate.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>""",
|
|
"""
|
|
<td class="col-first"><code><a href="C.DoubleProperty.html" title="class in pkg1">C.DoubleProperty</a></code></td>
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#rateProperty">rate</a></span></code></th>
|
|
<td class="col-last">
|
|
<div class="block">Defines the direction/speed at which the <code>Timeline</code> is expected to
|
|
be played.</div>
|
|
</td>""",
|
|
"<dt>Default value:</dt>",
|
|
"""
|
|
<dt>Since:</dt>
|
|
<dd>JavaFX 8.0</dd>""",
|
|
"<dt>Property description:</dt>",
|
|
"""
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#setTestMethodProperty()">setTestMethodProperty</a></span>()</code></th>""",
|
|
"""
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#pausedProperty">paused</a></span></code></th>
|
|
<td class="col-last">
|
|
<div class="block">Defines if paused.</div>""",
|
|
"""
|
|
<section class="detail" id="pausedProperty">
|
|
<h3>paused</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type"><a href="C.BooleanProperty.html" title="class in pkg1">\
|
|
C.BooleanProperty</a></span> <span class="member-name">pausedProperty</span\
|
|
></div>
|
|
<div class="block">Defines if paused. The second line.</div>""",
|
|
"""
|
|
<section class="detail" id="isPaused()">
|
|
<h3>isPaused</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">double</span> <span class="member-name">isPaused</\
|
|
span>()</div>
|
|
<div class="block">Gets the value of the property paused.</div>""",
|
|
"""
|
|
<section class="detail" id="setPaused(boolean)">
|
|
<h3>setPaused</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">void</span> <span class="member-name">setPaused</s\
|
|
pan>​<span class="parameters">(boolean value)</span></div>
|
|
<div class="block">Sets the value of the property paused.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>
|
|
<dd>Defines if paused. The second line.</dd>
|
|
<dt>Default value:</dt>
|
|
<dd>false</dd>""",
|
|
"""
|
|
<section class="detail" id="isPaused()">
|
|
<h3>isPaused</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">double</span> <span class="member-name">isPaused</\
|
|
span>()</div>
|
|
<div class="block">Gets the value of the property paused.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>
|
|
<dd>Defines if paused. The second line.</dd>
|
|
<dt>Default value:</dt>
|
|
<dd>false</dd>""",
|
|
"""
|
|
<section class="detail" id="rateProperty">
|
|
<h3>rate</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type"><a href="C.DoubleProperty.html" title="class in pkg1">C\
|
|
.DoubleProperty</a></span> <span class="member-name">rateProperty</span></d\
|
|
iv>
|
|
<div class="block">Defines the direction/speed at which the <code>Timeline</code> is expected to
|
|
be played. This is the second line.</div>""",
|
|
"""
|
|
<section class="detail" id="setRate(double)">
|
|
<h3>setRate</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">void</span> <span class="member-name">setRate</spa\
|
|
n>​<span class="parameters">(double value)</span></div>
|
|
<div class="block">Sets the value of the property rate.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>
|
|
<dd>Defines the direction/speed at which the <code>Timeline</code> is expected to
|
|
be played. This is the second line.</dd>
|
|
<dt>Default value:</dt>
|
|
<dd>11</dd>
|
|
<dt>Since:</dt>
|
|
<dd>JavaFX 8.0</dd>""",
|
|
"""
|
|
<section class="detail" id="getRate()">
|
|
<h3>getRate</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">double</span> <span class="member-name">getRate</s\
|
|
pan>()</div>
|
|
<div class="block">Gets the value of the property rate.</div>
|
|
<dl class="notes">
|
|
<dt>Property description:</dt>
|
|
<dd>Defines the direction/speed at which the <code>Timeline</code> is expected to
|
|
be played. This is the second line.</dd>
|
|
<dt>Default value:</dt>
|
|
<dd>11</dd>
|
|
<dt>Since:</dt>
|
|
<dd>JavaFX 8.0</dd>""",
|
|
"""
|
|
<section class="property-summary" id="property.summary">
|
|
<h2>Property Summary</h2>
|
|
<div class="member-summary">
|
|
<table class="summary-table">
|
|
<caption><span>Properties</span></caption>""",
|
|
"""
|
|
<tr class="alt-color">
|
|
<td class="col-first"><code><a href="C.BooleanProperty.html" title="class in pkg1">C.BooleanProperty</a></code></td>
|
|
""",
|
|
"""
|
|
<tr class="row-color">
|
|
<td class="col-first"><code><a href="C.DoubleProperty.html" title="class in pkg1">C.DoubleProperty</a></code></td>
|
|
""");
|
|
|
|
checkOutput("pkg1/C.html", false,
|
|
"A()",
|
|
"""
|
|
<h2 id="property.summary">Property Summary</h2>
|
|
<div class="member-summary">
|
|
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-select\
|
|
ed="true" aria-controls="member-summary_tabpanel" tabindex="0" onkeydown="switch\
|
|
Tab(event)" id="t0" class="active-table-tab">All Methods</button><button role="t\
|
|
ab" aria-selected="false" aria-controls="member-summary_tabpanel" tabindex="-1" \
|
|
onkeydown="switchTab(event)" id="t2" class="table-tab" onclick="show(2);">Instan\
|
|
ce Methods</button><button role="tab" aria-selected="false" aria-controls="membe\
|
|
r-summary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="ta\
|
|
ble-tab" onclick="show(8);">Concrete Methods</button></div>""",
|
|
"""
|
|
<tr id="i0" class="alt-color">
|
|
<td class="col-first"><code><a href="C.BooleanProperty.html" title="class in pkg1">C.BooleanProperty</a></code></td>
|
|
""",
|
|
"""
|
|
<tr id="i1" class="row-color">
|
|
<td class="col-first"><code><a href="C.DoubleProperty.html" title="class in pkg1">C.DoubleProperty</a></code></td>
|
|
""");
|
|
|
|
checkOutput("index-all.html", true,
|
|
"""
|
|
<div class="block">Gets the value of the property paused.</div>""",
|
|
"""
|
|
<div class="block">Defines if paused.</div>""");
|
|
|
|
checkOutput("pkg1/D.html", true,
|
|
"""
|
|
<h3 id="properties.inherited.from.class.pkg1.C">Properties inherited from class&\
|
|
nbsp;pkg1.<a href="C.html" title="class in pkg1">C</a></h3>
|
|
<code><a href="C.html#pausedProperty">paused</a>, <a href="C.html#rateProperty">rate</a></code></div>""");
|
|
|
|
checkOutput("pkg1/D.html", false, "shouldNotAppear");
|
|
}
|
|
|
|
/*
|
|
* Test with -javafx option enabled, to ensure property getters and setters
|
|
* are treated correctly.
|
|
*/
|
|
@Test
|
|
public void test2() {
|
|
javadoc("-d", "out2a",
|
|
"-sourcepath", testSrc,
|
|
"-javafx",
|
|
"--disable-javafx-strict-checks",
|
|
"-package",
|
|
"pkg2");
|
|
checkExit(Exit.OK);
|
|
checkOutput("pkg2/Test.html", true,
|
|
"""
|
|
<section class="property-details" id="property.detail">
|
|
<h2>Property Details</h2>
|
|
<ul class="member-list">
|
|
<li>
|
|
<section class="detail" id="betaProperty">
|
|
<h3>beta</h3>
|
|
<div class="member-signature"><span class="modifiers">public</span> <span c\
|
|
lass="return-type">java.lang.Object</span> <span class="member-name">betaPr\
|
|
operty</span></div>
|
|
</section>
|
|
</li>
|
|
<li>
|
|
<section class="detail" id="gammaProperty">
|
|
<h3>gamma</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">java.util.List<java.lang.String></span> <spa\
|
|
n class="member-name">gammaProperty</span></div>
|
|
</section>
|
|
</li>
|
|
<li>
|
|
<section class="detail" id="deltaProperty">
|
|
<h3>delta</h3>
|
|
<div class="member-signature"><span class="modifiers">public final</span> <\
|
|
span class="return-type">java.util.List<java.util.Set<? super java.lang.Ob\
|
|
ject>></span> <span class="member-name">deltaProperty</span></div>
|
|
</section>
|
|
</li>
|
|
</ul>
|
|
</section>""",
|
|
"""
|
|
<section class="property-summary" id="property.summary">
|
|
<h2>Property Summary</h2>
|
|
<div class="member-summary">
|
|
<table class="summary-table">
|
|
<caption><span>Properties</span></caption>""");
|
|
|
|
checkOutput("pkg2/Test.html", false,
|
|
"""
|
|
<h2>Property Summary</h2>
|
|
<div class="member-summary">
|
|
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-select\
|
|
ed="true" aria-controls="member-summary_tabpanel" tabindex="0" onkeydown="switch\
|
|
Tab(event)" id="t0" class="active-table-tab">All Methods</button><button role="t\
|
|
ab" aria-selected="false" aria-controls="member-summary_tabpanel" tabindex="-1" \
|
|
onkeydown="switchTab(event)" id="t2" class="table-tab" onclick="show(2);">Instan\
|
|
ce Methods</button><button role="tab" aria-selected="false" aria-controls="membe\
|
|
r-summary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="ta\
|
|
ble-tab" onclick="show(8);">Concrete Methods</button></div>""");
|
|
}
|
|
|
|
/*
|
|
* Test without -javafx option, to ensure property getters and setters
|
|
* are treated just like any other java method.
|
|
*/
|
|
@Test
|
|
public void test3() {
|
|
javadoc("-d", "out2b",
|
|
"-sourcepath", testSrc,
|
|
"-package",
|
|
"pkg2");
|
|
checkExit(Exit.OK);
|
|
checkOutput("pkg2/Test.html", false, "<h2>Property Summary</h2>");
|
|
checkOutput("pkg2/Test.html", true,
|
|
"""
|
|
<thead>
|
|
<tr>
|
|
<th class="col-first" scope="col">Modifier and Type</th>
|
|
<th class="col-second" scope="col">Method</th>
|
|
<th class="col-last" scope="col">Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="alt-color" id="i0">
|
|
<td class="col-first"><code><T> java.lang.Object</code></td>
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#alphaProperty(java.util.List)">alphaProperty</a></span>​(java.util.List&\
|
|
lt;T> foo)</code></th>
|
|
<td class="col-last"> </td>
|
|
</tr>
|
|
<tr class="row-color" id="i1">
|
|
<td class="col-first"><code>java.lang.Object</code></td>
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#betaProperty()">betaProperty</a></span>()</code></th>
|
|
<td class="col-last"> </td>
|
|
</tr>
|
|
<tr class="alt-color" id="i2">
|
|
<td class="col-first"><code>java.util.List<java.util.Set<? super java.lang.Object>></code></td>
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#deltaProperty()">deltaProperty</a></span>()</code></th>
|
|
<td class="col-last"> </td>
|
|
</tr>
|
|
<tr class="row-color" id="i3">
|
|
<td class="col-first"><code>java.util.List<java.lang.String></code></td>
|
|
<th class="col-second" scope="row"><code><span class="member-name-link"><a href=\
|
|
"#gammaProperty()">gammaProperty</a></span>()</code></th>
|
|
<td class="col-last"> </td>"""
|
|
);
|
|
}
|
|
|
|
/*
|
|
* Force the doclet to emit a warning when processing a synthesized,
|
|
* DocComment, and ensure that the run succeeds, using the newer
|
|
* --javafx flag.
|
|
*/
|
|
@Test
|
|
public void test4() {
|
|
javadoc("-d", "out4",
|
|
"--javafx",
|
|
"--disable-javafx-strict-checks",
|
|
"-Xdoclint:none",
|
|
"-sourcepath", testSrc,
|
|
"-package",
|
|
"pkg4");
|
|
checkExit(Exit.OK);
|
|
|
|
// make sure the doclet indeed emits the warning
|
|
checkOutput(Output.OUT, true, "C.java:0: warning - invalid usage of tag <");
|
|
}
|
|
}
|