Replace concatenated strings with text blocks
See gh-29408
This commit is contained in:
parent
19955c5b77
commit
eec3c6f7bb
|
|
@ -614,22 +614,23 @@ public abstract class AbstractSockJsService implements SockJsService, CorsConfig
|
||||||
private class IframeHandler implements SockJsRequestHandler {
|
private class IframeHandler implements SockJsRequestHandler {
|
||||||
|
|
||||||
private static final String IFRAME_CONTENT =
|
private static final String IFRAME_CONTENT =
|
||||||
"<!DOCTYPE html>\n" +
|
"""
|
||||||
"<html>\n" +
|
<!DOCTYPE html>
|
||||||
"<head>\n" +
|
<html>
|
||||||
" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n" +
|
<head>
|
||||||
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n" +
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
" <script>\n" +
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
" document.domain = document.domain;\n" +
|
<script>
|
||||||
" _sockjs_onload = function(){SockJS.bootstrap_iframe();};\n" +
|
document.domain = document.domain;
|
||||||
" </script>\n" +
|
_sockjs_onload = function(){SockJS.bootstrap_iframe();};
|
||||||
" <script src=\"%s\"></script>\n" +
|
</script>
|
||||||
"</head>\n" +
|
<script src="%s"></script>
|
||||||
"<body>\n" +
|
</head>
|
||||||
" <h2>Don't panic!</h2>\n" +
|
<body>
|
||||||
" <p>This is a SockJS hidden iframe. It's used for cross domain magic.</p>\n" +
|
<h2>Don't panic!</h2>
|
||||||
"</body>\n" +
|
<p>This is a SockJS hidden iframe. It's used for cross domain magic.</p>
|
||||||
"</html>";
|
</body>
|
||||||
|
</html>""";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException {
|
public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException {
|
||||||
|
|
|
||||||
|
|
@ -60,18 +60,19 @@ public class HtmlFileTransportHandler extends AbstractHttpSendingTransportHandle
|
||||||
|
|
||||||
static {
|
static {
|
||||||
StringBuilder sb = new StringBuilder(
|
StringBuilder sb = new StringBuilder(
|
||||||
"<!doctype html>\n" +
|
"""
|
||||||
"<html><head>\n" +
|
<!doctype html>
|
||||||
" <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n" +
|
<html><head>
|
||||||
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n" +
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
"</head><body><h2>Don't panic!</h2>\n" +
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
" <script>\n" +
|
</head><body><h2>Don't panic!</h2>
|
||||||
" document.domain = document.domain;\n" +
|
<script>
|
||||||
" var c = parent.%s;\n" +
|
document.domain = document.domain;
|
||||||
" c.start();\n" +
|
var c = parent.%s;
|
||||||
" function p(d) {c.message(d);};\n" +
|
c.start();
|
||||||
" window.onload = function() {c.stop();};\n" +
|
function p(d) {c.message(d);};
|
||||||
" </script>"
|
window.onload = function() {c.stop();};
|
||||||
|
</script>"""
|
||||||
);
|
);
|
||||||
|
|
||||||
while (sb.length() < MINIMUM_PARTIAL_HTML_CONTENT_LENGTH) {
|
while (sb.length() < MINIMUM_PARTIAL_HTML_CONTENT_LENGTH) {
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,11 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
||||||
assertThat(textMessage.getPayload()).isEqualTo(("CONNECTED\n" + "user-name:joe\n" + "\n" + "\u0000"));
|
assertThat(textMessage.getPayload()).isEqualTo(("""
|
||||||
|
CONNECTED
|
||||||
|
user-name:joe
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -123,7 +127,11 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
||||||
assertThat(textMessage.getPayload()).isEqualTo(("CONNECTED\n" + "user-name:joe\n" + "\n" + "\u0000"));
|
assertThat(textMessage.getPayload()).isEqualTo(("""
|
||||||
|
CONNECTED
|
||||||
|
user-name:joe
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -142,8 +150,13 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||||
assertThat(actual.getPayload()).isEqualTo(("CONNECTED\n" + "version:1.2\n" + "heart-beat:15000,15000\n" +
|
assertThat(actual.getPayload()).isEqualTo(("""
|
||||||
"user-name:joe\n" + "\n" + "\u0000"));
|
CONNECTED
|
||||||
|
version:1.2
|
||||||
|
heart-beat:15000,15000
|
||||||
|
user-name:joe
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -161,8 +174,13 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||||
assertThat(actual.getPayload()).isEqualTo(("CONNECTED\n" + "version:1.0\n" + "heart-beat:0,0\n" +
|
assertThat(actual.getPayload()).isEqualTo(("""
|
||||||
"user-name:joe\n" + "\n" + "\u0000"));
|
CONNECTED
|
||||||
|
version:1.0
|
||||||
|
heart-beat:0,0
|
||||||
|
user-name:joe
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -178,8 +196,12 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||||
assertThat(actual.getPayload()).isEqualTo(("ERROR\n" + "message:Session closed.\n" + "content-length:0\n" +
|
assertThat(actual.getPayload()).isEqualTo(("""
|
||||||
"\n\u0000"));
|
ERROR
|
||||||
|
message:Session closed.
|
||||||
|
content-length:0
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -196,7 +218,11 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
TextMessage actual = (TextMessage) this.session.getSentMessages().get(0);
|
||||||
assertThat(actual.getPayload()).isEqualTo(("RECEIPT\n" + "receipt-id:message-123\n" + "\n\u0000"));
|
assertThat(actual.getPayload()).isEqualTo(("""
|
||||||
|
RECEIPT
|
||||||
|
receipt-id:message-123
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -391,7 +417,11 @@ public class StompSubProtocolHandlerTests {
|
||||||
assertThat(this.session.getSentMessages()).hasSize(1);
|
assertThat(this.session.getSentMessages()).hasSize(1);
|
||||||
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
WebSocketMessage<?> textMessage = this.session.getSentMessages().get(0);
|
||||||
assertThat(textMessage.getPayload())
|
assertThat(textMessage.getPayload())
|
||||||
.isEqualTo("CONNECTED\n" + "user-name:__pete__@gmail.com\n" + "\n" + "\u0000");
|
.isEqualTo("""
|
||||||
|
CONNECTED
|
||||||
|
user-name:__pete__@gmail.com
|
||||||
|
|
||||||
|
\u0000""");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -470,7 +500,11 @@ public class StompSubProtocolHandlerTests {
|
||||||
|
|
||||||
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
assertThat(this.session.getSentMessages().size()).isEqualTo(1);
|
||||||
textMessage = (TextMessage) this.session.getSentMessages().get(0);
|
textMessage = (TextMessage) this.session.getSentMessages().get(0);
|
||||||
assertThat(textMessage.getPayload()).isEqualTo(("CONNECTED\n" + "user-name:joe\n" + "\n" + "\u0000"));
|
assertThat(textMessage.getPayload()).isEqualTo(("""
|
||||||
|
CONNECTED
|
||||||
|
user-name:joe
|
||||||
|
|
||||||
|
\u0000"""));
|
||||||
|
|
||||||
this.protocolHandler.afterSessionEnded(this.session, CloseStatus.BAD_DATA, this.channel);
|
this.protocolHandler.afterSessionEnded(this.session, CloseStatus.BAD_DATA, this.channel);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,10 @@ public class RestTemplateXhrTransportTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void connectReceiveAndClose() throws Exception {
|
public void connectReceiveAndClose() throws Exception {
|
||||||
String body = "o\n" + "a[\"foo\"]\n" + "c[3000,\"Go away!\"]";
|
String body = """
|
||||||
|
o
|
||||||
|
a["foo"]
|
||||||
|
c[3000,"Go away!"]""";
|
||||||
ClientHttpResponse response = response(HttpStatus.OK, body);
|
ClientHttpResponse response = response(HttpStatus.OK, body);
|
||||||
connect(response);
|
connect(response);
|
||||||
|
|
||||||
|
|
@ -157,7 +160,11 @@ public class RestTemplateXhrTransportTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void responseClosedAfterDisconnected() throws Exception {
|
public void responseClosedAfterDisconnected() throws Exception {
|
||||||
String body = "o\n" + "c[3000,\"Go away!\"]\n" + "a[\"foo\"]\n";
|
String body = """
|
||||||
|
o
|
||||||
|
c[3000,"Go away!"]
|
||||||
|
a["foo"]
|
||||||
|
""";
|
||||||
ClientHttpResponse response = response(HttpStatus.OK, body);
|
ClientHttpResponse response = response(HttpStatus.OK, body);
|
||||||
connect(response);
|
connect(response);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue