annotate xslt.t @ 1248:70192b1baf01

Tests: added exception test to stream_js.t using 'require'. The stream js tests introduced in edf5a3c9e36a fail on njs 0.1.14. It doesn't currently provide an easy way to check its version, whilst we are obligated to gracefully handle such cases somehow. With such an addition of 'require', now the tests are skipped instead on the previous versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 21 Nov 2017 13:16:39 +0300
parents 882267679006
children 829467f8d696
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for nginx xslt filter module.
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http xslt/)->plan(5);
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26 $t->write_file_expand('nginx.conf', <<'EOF');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 %%TEST_GLOBALS%%
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 224
diff changeset
30 daemon off;
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 events {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 http {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
39 listen 127.0.0.1:8080;
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server_name localhost;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 default_type text/xml;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 location /x1 {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 xslt_stylesheet %%TESTDIR%%/test.xslt;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 location /x2 {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 xslt_stylesheet %%TESTDIR%%/test.xslt
211
ee8fee3c4ae8 Tests: fix xslt tests for CentOS 5.
Maxim Dounin <mdounin@mdounin.ru>
parents: 208
diff changeset
49 param1='value1':param2=/root param3='value%33';
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 location /x3 {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 xml_entities %%TESTDIR%%/entities.dtd;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 xslt_stylesheet %%TESTDIR%%/test.xslt;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 location /x4 {
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 xslt_stylesheet %%TESTDIR%%/first.xslt;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 xslt_stylesheet %%TESTDIR%%/test.xslt;
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 }
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 EOF
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 $t->write_file('test.xslt', <<'EOF');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 <xsl:stylesheet version="1.0"
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 <xsl:output method="html"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 <xsl:param name="param1"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 <xsl:param name="param2"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 <xsl:param name="param3"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 <xsl:template match="/">
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 test xslt result
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 param1=<xsl:value-of select="$param1"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 param2=<xsl:value-of select="$param2"/>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 param3=<xsl:value-of select="$param3"/>
211
ee8fee3c4ae8 Tests: fix xslt tests for CentOS 5.
Maxim Dounin <mdounin@mdounin.ru>
parents: 208
diff changeset
80 data=<xsl:value-of select="/root"/>
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 </xsl:template>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 </xsl:stylesheet>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 EOF
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 $t->write_file('first.xslt', <<'EOF');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 <xsl:stylesheet version="1.0"
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 <xsl:template match="/">
211
ee8fee3c4ae8 Tests: fix xslt tests for CentOS 5.
Maxim Dounin <mdounin@mdounin.ru>
parents: 208
diff changeset
93 <root>other <xsl:value-of select="/root"/></root>
208
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 </xsl:template>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 </xsl:stylesheet>
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 EOF
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 $t->write_file('entities.dtd', '<!ENTITY test "test entity">' . "\n");
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 $t->write_file('x1', '<empty/>');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102 $t->write_file('x2', '<root>data</root>');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 $t->write_file('x3', '<!DOCTYPE root><root>&test;</root>');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 $t->write_file('x4', '<root>data</root>');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 $t->run();
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 ###############################################################################
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 like(http_get("/x1"), qr!200 OK.*test xslt result!ms, 'simple');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 like(http_get("/x1"), qr!200 OK.*Content-Type: text/html!ms, 'content type');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112 like(http_get("/x2"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 'params');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 like(http_get("/x3"), qr!200 OK.*data=test entity!ms, 'entities');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 like(http_get("/x4"), qr!200 OK.*data=other data!ms, 'several stylesheets');
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116
6bac00bba8d4 Tests: xslt filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
117 ###############################################################################