2 Star 0 Fork 0

mirrors_nginx/nginx-tests

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
xslt_params.t 2.48 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/perl
# (C) Maxim Dounin
# Tests for nginx xslt filter module.
###############################################################################
use warnings;
use strict;
use Test::More;
BEGIN { use FindBin; chdir($FindBin::Bin); }
use lib 'lib';
use Test::Nginx;
###############################################################################
select STDERR; $| = 1;
select STDOUT; $| = 1;
my $t = Test::Nginx->new()->has(qw/http xslt/);
$t->write_file_expand('nginx.conf', <<'EOF');
%%TEST_GLOBALS%%
daemon off;
events {
}
http {
%%TEST_GLOBALS_HTTP%%
server {
listen 127.0.0.1:8080;
server_name localhost;
default_type text/xml;
location /x1 {
xslt_stylesheet %%TESTDIR%%/test.xslt
param1='value1':param2=/root param3='value%33';
}
location /x2 {
xslt_stylesheet %%TESTDIR%%/test.xslt;
xslt_param param1 "'value1'";
xslt_param param2 "/root";
xslt_string_param param3 "value3";
}
location /x3 {
xslt_stylesheet %%TESTDIR%%/test.xslt
param1='value1':param2=/root;
xslt_string_param param3 "value3";
}
}
}
EOF
$t->write_file('test.xslt', <<'EOF');
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:param name="param1"/>
<xsl:param name="param2"/>
<xsl:param name="param3"/>
<xsl:template match="/">
param1=<xsl:value-of select="$param1"/>
param2=<xsl:value-of select="$param2"/>
param3=<xsl:value-of select="$param3"/>
</xsl:template>
</xsl:stylesheet>
EOF
$t->write_file('x1', '<root>data</root>');
$t->write_file('x2', '<root>data</root>');
$t->write_file('x3', '<root>data</root>');
$t->run()->plan(4);
###############################################################################
like(http_get("/x1"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
'params from xslt_stylesheet');
# before 1.13.7, nginx used to overwrite xslt_stylesheet configuration data
like(http_get("/x1"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
'params from xslt_stylesheet again');
like(http_get("/x2"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
'params from xslt_param/xslt_string_param');
like(http_get("/x3"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
'mixed');
###############################################################################
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_nginx/nginx-tests.git
git@gitee.com:mirrors_nginx/nginx-tests.git
mirrors_nginx
nginx-tests
nginx-tests
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385