Welcome! Log In Create A New Profile

Advanced

[njs] Tests: added js_body_filter test with non-UTF8 data.

Anonymous User
October 18, 2024 01:24AM
details: https://github.com/nginx/njs/commit/198539036deacc8d263005a14849fd93c5d314f4
branches: master
commit: 198539036deacc8d263005a14849fd93c5d314f4
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Thu, 17 Oct 2024 18:44:17 -0700
description:
Tests: added js_body_filter test with non-UTF8 data.

To test for implicit UTF8 conversion.

---
nginx/t/js_body_filter.t | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/nginx/t/js_body_filter.t b/nginx/t/js_body_filter.t
index b90a2502..679b6cba 100644
--- a/nginx/t/js_body_filter.t
+++ b/nginx/t/js_body_filter.t
@@ -55,6 +55,11 @@ http {
proxy_pass http://127.0.0.1:8081/source;
}

+ location /buffer_type_nonutf8 {
+ js_body_filter test.buffer_type buffer_type=buffer;
+ proxy_pass http://127.0.0.1:8081/nonutf8_source;
+ }
+
location /forward {
js_body_filter test.forward buffer_type=string;
proxy_pass http://127.0.0.1:8081/source;
@@ -80,6 +85,11 @@ http {
postpone_output 1;
js_content test.source;
}
+
+ location /nonutf8_source {
+ postpone_output 1;
+ js_content test.nonutf8_source;
+ }
}
}

@@ -128,6 +138,17 @@ $t->write_file('test.js', <<EOF);
chain(chunks, 0);
}

+ function nonutf8_source(r) {
+ var chunks = ['aaaa', 'bb', 'cc', 'dddd'].map(v=>Buffer.from(v, 'hex'));
+ chunks.delay = 5;
+ chunks.r = r;
+ chunks.chain = chain;
+
+ r.status = 200;
+ r.sendHeader();
+ chain(chunks, 0);
+ }
+
function filter(r, data, flags) {
if (flags.last || data.length >= Number(r.args.len)) {
r.sendBuffer(`\${data}|`, flags);
@@ -149,16 +170,18 @@ $t->write_file('test.js', <<EOF);
}

export default {njs: test_njs, append, buffer_type, filter, forward,
- prepend, source};
+ prepend, source, nonutf8_source};

EOF

-$t->try_run('no njs body filter')->plan(6);
+$t->try_run('no njs body filter')->plan(7);

###############################################################################

like(http_get('/append'), qr/AAABBCDDDDXXX/, 'append');
like(http_get('/buffer_type'), qr/AAABBCDDDD/, 'buffer type');
+like(http_get('/buffer_type_nonutf8'), qr/\xaa\xaa\xbb\xcc\xdd\xdd/,
+ 'buffer type nonutf8');
like(http_get('/forward'), qr/AAABBCDDDD/, 'forward');
like(http_get('/filter?len=3'), qr/AAA|DDDD|/, 'filter 3');
like(http_get('/filter?len=2&dup=1'), qr/AAA|AAABB|BBDDDD|DDDD/,
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Tests: added js_body_filter test with non-UTF8 data.

Anonymous User 178 October 18, 2024 01:24AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 255
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready