139 Path p0 = mb0.write(base); 140 141 ModuleBuilder mb1 = new ModuleBuilder(tb, "a") 142 .requiresTransitive("m", p0) 143 .classes("package pa ; public class NoOp {}") 144 .exports("pa"); 145 mb1.write(base); 146 147 javadoc("-d", base.resolve("out-detail").toString(), 148 "-quiet", 149 "--module-source-path", base.toString(), 150 "--expand-requires", "transitive", 151 "--show-module-contents", "all", 152 "--module", "a"); 153 154 checkExit(Exit.OK); 155 156 // In details mode all kinds of packages from java.base, 157 // could be listed in the indirects section, so just 158 // check for minimal expected strings. 159 checkOutput("a-summary.html", true, 160 "Indirect Exports table", 161 "<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n" 162 + "<td class=\"colLast\"><a href=\"exportsto/package-summary.html\">exportsto</a></td>\n" 163 + "</tr>\n"); 164 165 checkOutput("a-summary.html", true, 166 "Indirect Opens table", 167 "<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n" 168 + "<td class=\"colLast\">opensto</td>\n" 169 + "</tr>\n"); 170 } 171 172 void verifyIndirectExports(boolean present) { 173 verifyIndirects(present, false); 174 } 175 176 void verifyIndirectOpens(boolean present) { 177 verifyIndirects(present, true); 178 } 179 180 void verifyIndirects(boolean present, boolean opens) { 181 182 String typeString = opens ? "Indirect Opens" : "Indirect Exports"; 183 184 // Avoid false positives, just check for primary string absence. 185 if (!present) { 186 checkOutput("a-summary.html", false, typeString); 187 return; 188 } 189 190 checkOutput("a-summary.html", present, 191 "<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n" 192 + "<caption><span>" + typeString + "</span><span class=\"tabEnd\"> </span></caption>\n" 193 + "<tr>\n" 194 + "<th class=\"colFirst\" scope=\"col\">From</th>\n" 195 + "<th class=\"colLast\" scope=\"col\">Packages</th>\n" 196 + "</tr>\n" 197 + "<tbody>\n" 198 + "<tr class=\"altColor\">\n" 199 + "<th class=\"colFirst\" scope=\"row\"><a href=\"m-summary.html\">m</a></th>\n" 200 + "<td class=\"colLast\"><a href=\"pm/package-summary.html\">pm</a></td>\n" 201 + "</tr>\n" 202 + "</tbody>\n" 203 + "</table>\n"); 204 } 205 206 } 207 | 139 Path p0 = mb0.write(base); 140 141 ModuleBuilder mb1 = new ModuleBuilder(tb, "a") 142 .requiresTransitive("m", p0) 143 .classes("package pa ; public class NoOp {}") 144 .exports("pa"); 145 mb1.write(base); 146 147 javadoc("-d", base.resolve("out-detail").toString(), 148 "-quiet", 149 "--module-source-path", base.toString(), 150 "--expand-requires", "transitive", 151 "--show-module-contents", "all", 152 "--module", "a"); 153 154 checkExit(Exit.OK); 155 156 // In details mode all kinds of packages from java.base, 157 // could be listed in the indirects section, so just 158 // check for minimal expected strings. 159 checkOutput("a/module-summary.html", true, 160 "Indirect Exports table", 161 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n" 162 + "<td class=\"colLast\"><a href=\"../m/exportsto/package-summary.html\">exportsto</a></td>\n" 163 + "</tr>\n"); 164 165 checkOutput("a/module-summary.html", true, 166 "Indirect Opens table", 167 "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n" 168 + "<td class=\"colLast\">opensto</td>\n" 169 + "</tr>\n"); 170 } 171 172 void verifyIndirectExports(boolean present) { 173 verifyIndirects(present, false); 174 } 175 176 void verifyIndirectOpens(boolean present) { 177 verifyIndirects(present, true); 178 } 179 180 void verifyIndirects(boolean present, boolean opens) { 181 182 String typeString = opens ? "Indirect Opens" : "Indirect Exports"; 183 184 // Avoid false positives, just check for primary string absence. 185 if (!present) { 186 checkOutput("a/module-summary.html", false, typeString); 187 return; 188 } 189 190 checkOutput("a/module-summary.html", present, 191 "<table class=\"packagesSummary\" summary=\"" + typeString + " table, listing modules, and packages\">\n" 192 + "<caption><span>" + typeString + "</span><span class=\"tabEnd\"> </span></caption>\n" 193 + "<tr>\n" 194 + "<th class=\"colFirst\" scope=\"col\">From</th>\n" 195 + "<th class=\"colLast\" scope=\"col\">Packages</th>\n" 196 + "</tr>\n" 197 + "<tbody>\n" 198 + "<tr class=\"altColor\">\n" 199 + "<th class=\"colFirst\" scope=\"row\"><a href=\"../m/module-summary.html\">m</a></th>\n" 200 + "<td class=\"colLast\"><a href=\"../m/pm/package-summary.html\">pm</a></td>\n" 201 + "</tr>\n" 202 + "</tbody>\n" 203 + "</table>\n"); 204 } 205 206 } 207 |