@@ -626,6 +626,42 @@ void deriveMetaDataFromHtmlBasedRepository() {
626626 new MavenPomDownloader (emptyMap (), ctx ).downloadMetadata (new GroupArtifact ("does.definitely.not" , "exist" ), null , List .of (repository )));
627627 }
628628
629+ @ Issue ("https://github.com/openrewrite/rewrite/issues/6739" )
630+ @ Test
631+ void deriveMetaDataFromHtmlWithTitleAttributes () throws Exception {
632+ try (MockWebServer server = new MockWebServer ()) {
633+ server .setDispatcher (new Dispatcher () {
634+ @ Override
635+ public MockResponse dispatch (RecordedRequest request ) {
636+ if (request .getPath () != null && request .getPath ().endsWith ("maven-metadata.xml" )) {
637+ return new MockResponse ().setResponseCode (404 );
638+ }
639+ return new MockResponse ().setResponseCode (200 ).setBody (
640+ """
641+ <html><body>
642+ <a href="../" title="../">../</a>
643+ <a href="1.0.0/" title="1.0.0/">1.0.0/</a>
644+ <a href="1.1.0/" title="1.1.0/">1.1.0/</a>
645+ <a href="2.0.0/" title="2.0.0/">2.0.0/</a>
646+ </body></html>
647+ """
648+ );
649+ }
650+ });
651+ server .start ();
652+
653+ MavenRepository repository = MavenRepository .builder ()
654+ .id ("html-with-title" )
655+ .uri ("http://%s:%d/" .formatted (server .getHostName (), server .getPort ()))
656+ .knownToExist (true )
657+ .deriveMetadataIfMissing (true )
658+ .build ();
659+ MavenMetadata metaData = new MavenPomDownloader (emptyMap (), ctx )
660+ .downloadMetadata (new GroupArtifact ("fred" , "fred" ), null , List .of (repository ));
661+ assertThat (metaData .getVersioning ().getVersions ()).containsExactlyInAnyOrder ("1.0.0" , "1.1.0" , "2.0.0" );
662+ }
663+ }
664+
629665 @ SuppressWarnings ("ConstantConditions" )
630666 @ Test
631667 void mergeMetadata () throws Exception {
0 commit comments