@@ -23,40 +23,126 @@ xquery version "3.1";
23
23
24
24
module namespace serialize="http://exist-db.org/testsuite/modules/file/serialize" ;
25
25
26
- import module namespace test="http://exist-db.org/xquery/xqsuite" at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql" ;
27
26
import module namespace file="http://exist-db.org/xquery/file" ;
27
+ import module namespace helper="http://exist-db.org/xquery/test/util/helper" at "resource:util/helper.xqm" ;
28
+ import module namespace fixtures="http://exist-db.org/xquery/test/util/fixtures" at "resource:util/fixtures.xqm" ;
29
+
30
+
31
+ declare namespace test="http://exist-db.org/xquery/xqsuite" ;
32
+
33
+
34
+ declare variable $serialize:suite := "serialize" ;
35
+ declare variable $serialize:text := <node>data</node>;
36
+ declare variable $serialize:xml := <root>
37
+ <unary attribute = "value" />
38
+ <nested>
39
+ text
40
+ </nested>
41
+ </root>;
28
42
29
43
30
44
declare
31
- %test:pending("need to mechanism to setup a temporary file to work with" )
32
- %test:assertEquals("datadata" , "true" , "true" , "true" )
45
+ %test:tearDown
46
+ function serialize:tear-down () as empty-sequence () {
47
+ helper:clear-suite-fs ($serialize:suite)
48
+ };
49
+
50
+ declare
51
+ %test:assertEquals("datamoredata" )
33
52
function serialize:append () {
53
+ let $directory := helper:get-test-directory ($serialize:suite)
54
+ let $_ := file:mkdirs ($directory)
55
+
56
+ let $path := $directory || "/append-test.txt"
34
57
35
- let $node-set := text {"data" }
36
- let $path := system:get-exist-home () || "/test.txt"
37
- let $parameters := ()
38
- let $append := true ()
39
- let $remove := file:delete ($path)
40
- let $ser1 := file:serialize ($node-set, $path, (), false ())
41
- let $ser2 := file:serialize ($node-set, $path, (), true ())
42
- let $read := file:read ($path)
43
- let $remove := file:delete ($path)
44
- return ($read, $ser1, $ser2, $remove)
58
+ let $_ := file:serialize-binary (xs:base64Binary ("data" ), $path)
59
+ let $_ := file:serialize-binary (xs:base64Binary ("moredata" ), $path, true ())
60
+
61
+ return file:read-binary ($path) => xs:string ()
45
62
};
46
63
47
64
declare
48
- %test:pending("need to mechanism to setup a temporary file to work with" )
49
- %test:assertEquals("data" , "true" , "true" , "true" )
65
+ %test:assertEquals("moredata" )
50
66
function serialize:overwrite () {
67
+ let $directory := helper:get-test-directory ($serialize:suite)
68
+ let $_ := file:mkdirs ($directory)
69
+
70
+ let $path := $directory || "/overwrite-test.txt"
71
+ let $_ := file:serialize-binary (xs:base64Binary ("data" ), $path)
72
+ let $_ := file:serialize-binary (xs:base64Binary ("moredata" ), $path, false ())
73
+
74
+ return file:read-binary ($path) => xs:string ()
75
+ };
76
+
77
+ declare
78
+ %test:assertEquals("<node>data</node>" )
79
+ function serialize:serialize3 () {
80
+ let $directory := helper:get-test-directory ($serialize:suite)
81
+ let $_ := file:mkdirs ($directory)
82
+
83
+ let $path := $directory || "/serialize-3-test.txt"
84
+ let $_ := file:serialize ($serialize:text, $path, ())
85
+ let $_ := file:serialize ($serialize:text, $path, ())
86
+
87
+ return file:read ($path)
88
+ };
89
+
90
+ declare
91
+ %test:assertTrue
92
+ function serialize:xml-defaults () {
93
+ let $directory := helper:get-test-directory ($serialize:suite)
94
+ let $_ := file:mkdirs ($directory)
95
+
96
+ let $path := $directory || "/xml-defaults-test.xml"
97
+ let $_ := file:serialize ($serialize:xml, $path, ())
98
+
99
+ return file:read ($path) eq
100
+ "<root>" || $fixtures:NL ||
101
+ " <unary attribute="" value"" />" || $fixtures:NL ||
102
+ " <nested>" || $fixtures:NL ||
103
+ " text" || $fixtures:NL ||
104
+ " </nested>" || $fixtures:NL ||
105
+ "</root>"
106
+ };
107
+
108
+ declare
109
+ %test:assertTrue
110
+ function serialize:xml-final-newline () {
111
+ let $directory := helper:get-test-directory ($serialize:suite)
112
+ let $_ := file:mkdirs ($directory)
113
+
114
+ let $path := $directory || "/xml-final-newline.xml"
115
+ let $_ := file:serialize ($serialize:xml, $path,
116
+ <output:serialization-parameters
117
+ xmlns:output = "http://www.w3.org/2010/xslt-xquery-serialization" >
118
+ <exist:insert-final-newline value = "yes" />
119
+ </output:serialization-parameters>)
120
+
121
+ return file:read ($path) eq
122
+ "<root>" || $fixtures:NL ||
123
+ " <unary attribute="" value"" />" || $fixtures:NL ||
124
+ " <nested>" || $fixtures:NL ||
125
+ " text" || $fixtures:NL ||
126
+ " </nested>" || $fixtures:NL ||
127
+ "</root>" || $fixtures:NL
128
+ };
129
+
130
+ declare
131
+ %test:assertTrue
132
+ function serialize:xml-minified () {
133
+ let $directory := helper:get-test-directory ($serialize:suite)
134
+ let $_ := file:mkdirs ($directory)
135
+
136
+ let $path := $directory || "/xml-minified.xml"
137
+ let $_ := file:serialize ($serialize:xml, $path,
138
+ <output:serialization-parameters
139
+ xmlns:output = "http://www.w3.org/2010/xslt-xquery-serialization" >
140
+ <output:indent value = "no" />
141
+ </output:serialization-parameters>)
142
+
143
+ return file:read ($path) eq
144
+ "<root><unary attribute="" value"" /><nested>" || $fixtures:NL ||
145
+ " text" || $fixtures:NL ||
146
+ " </nested></root>"
147
+ };
51
148
52
- let $node-set := text {"data" }
53
- let $path := system:get-exist-home () || "/test.txt"
54
- let $parameters := ()
55
- let $append := true ()
56
- let $remove := file:delete ($path)
57
- let $ser1 := file:serialize ($node-set, $path, (), false ())
58
- let $ser2 := file:serialize ($node-set, $path, (), false ())
59
- let $read := file:read ($path)
60
- let $remove := file:delete ($path)
61
- return ($read, $ser1, $ser2, $remove)
62
- };
0 commit comments