Skip to content

Commit

Permalink
Adapted import XQuery function tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ndw committed Dec 5, 2024
1 parent 0e1fdf3 commit 082c5e4
Show file tree
Hide file tree
Showing 19 changed files with 696 additions and 0 deletions.
19 changes: 19 additions & 0 deletions test-suite/documents/xquery-library.xq
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
xquery version "3.1";
module namespace test="http://xproc.org/ns/testsuite/3.0/function-test";

declare function test:function() as item(){
element{"function-result"}{}
};

declare function test:function1() as item(){
element{"function-result"}{}
};
declare function test:function2($par as xs:string) as item(){
element{"function-result"}{$par}
};
declare %private function test:private-function() as item(){
element{"function-result"}{}
};
declare function test:function3() as item(){
element{"namespaced-function"}{}
};
4 changes: 4 additions & 0 deletions test-suite/documents/xquery-library1.xq
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
xquery version "3.1";
module namespace test="http://xproc.org/ns/testsuite/3.0/function-test"
(:intentionally invalid; missing semicolon:)
declare namespace test1="http://xproc.org/ns/testsuite/3.0/function-test1";
10 changes: 10 additions & 0 deletions test-suite/documents/xquery-library2.xq
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
xquery version "3.1";
module namespace test="http://xproc.org/ns/testsuite/3.0/function-test";

declare function test:function() as item(){
element{"function-result"}{}
};

declare function test:function1() as item(){
element{"function-result1"}{}
};
6 changes: 6 additions & 0 deletions test-suite/documents/xquery-library3.xq
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
xquery version "3.1";
module namespace test="http://xproc.org/ns/testsuite/3.0/function-test";

declare function test:function1($par as xs:string) as item(){
element{"function-result"}{$par}
};
47 changes: 47 additions & 0 deletions test-suite/tests/nw-import-functions-015.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="pass" features="xquery-function-import"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-015</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-015 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions from an XQuery library module.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>
</t:pipeline>
<t:schematron>
<s:schema queryBinding="xslt2"
xmlns:s="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.w3.org/1999/xhtml">
<s:pattern>
<s:rule context="/">
<s:assert test="result">The document root is not result.</s:assert>
<s:assert test="result/function-result">Result does not have a child "function-result".</s:assert>
</s:rule>
</s:pattern>
</s:schema>
</t:schematron>
</t:test>
48 changes: 48 additions & 0 deletions test-suite/tests/nw-import-functions-016.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="pass" features="xquery-function-import"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-016</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-016 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: function with par</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery"/>
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function2("test")}</result>
</p:with-input>
</p:identity>
</p:declare-step>
</t:pipeline>
<t:schematron>
<s:schema queryBinding="xslt2"
xmlns:s="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.w3.org/1999/xhtml">
<s:pattern>
<s:rule context="/">
<s:assert test="result">The document root is not result.</s:assert>
<s:assert test="result/function-result">Result does not have a child "function-result".</s:assert>
<s:assert test="result/function-result/text()='test'">There is not text child 'test' in "function-result".</s:assert>
</s:rule>
</s:pattern>
</s:schema>
</t:schematron>
</t:test>
51 changes: 51 additions & 0 deletions test-suite/tests/nw-import-functions-017.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="pass" features="xquery-function-import"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-017</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-017 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: Test function is visible in inner steps.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result" />
<p:declare-step type="test:step">
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>
<test:step />
</p:declare-step>
</t:pipeline>
<t:schematron>
<s:schema queryBinding="xslt2"
xmlns:s="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.w3.org/1999/xhtml">
<s:pattern>
<s:rule context="/">
<s:assert test="result">The document root is not result.</s:assert>
<s:assert test="result/function-result">Result does not have a child "function-result".</s:assert>
</s:rule>
</s:pattern>
</s:schema>
</t:schematron>
</t:test>
53 changes: 53 additions & 0 deletions test-suite/tests/nw-import-functions-018.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="pass" features="xquery-function-import"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-018</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-018 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: Test function imported globally and locally.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result" />

<p:declare-step type="test:step">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>
<test:step />
</p:declare-step>
</t:pipeline>
<t:schematron>
<s:schema queryBinding="xslt2"
xmlns:s="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.w3.org/1999/xhtml">
<s:pattern>
<s:rule context="/">
<s:assert test="result">The document root is not result.</s:assert>
<s:assert test="result/function-result">Result does not have a child "function-result".</s:assert>
</s:rule>
</s:pattern>
</s:schema>
</t:schematron>
</t:test>
46 changes: 46 additions & 0 deletions test-suite/tests/nw-import-functions-019.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="fail" code="err:XS0107" features="xquery-function-import"
xmlns:err="http://www.w3.org/ns/xproc-error"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-019</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-019 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: Test function imported locally imported function is not visible globally.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:output port="result" />

<p:declare-step type="test:step">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>

<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>
</t:pipeline>
</t:test>
51 changes: 51 additions & 0 deletions test-suite/tests/nw-import-functions-020.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="fail" code="err:XS0107" features="xquery-function-import"
xmlns:err="http://www.w3.org/ns/xproc-error"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-020</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-020 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: Test function imported locally imported function is not visible in other step.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:output port="result" />

<p:declare-step type="test:step">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result"/>
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>

<p:declare-step type="test:step1">
<p:output port="result" />
<p:identity>
<p:with-input>
<result>{test:function1()}</result>
</p:with-input>
</p:identity>
</p:declare-step>

<test:step1 />
</p:declare-step>
</t:pipeline>
</t:test>
35 changes: 35 additions & 0 deletions test-suite/tests/nw-import-functions-021.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<t:test expected="fail" code="err:XS0107" features="xquery-function-import"
xmlns:err="http://www.w3.org/ns/xproc-error"
xmlns:t="http://xproc.org/ns/testsuite/3.0">
<t:info>
<t:title>nw-import-functions-021</t:title>
<t:revision-history>
<t:revision>
<t:date>2024-12-05</t:date>
<t:author>
<t:name>Norm Tovey-Walsh</t:name>
</t:author>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests for p:import-function; adapted from ab-import-functions-021 but
uses an XQuery library module.</p>
</t:description>
</t:revision>
</t:revision-history>
</t:info>
<t:description xmlns="http://www.w3.org/1999/xhtml">
<p>Tests p:import-functions: Calling non defined function is an error.</p>
</t:description>
<t:pipeline>
<p:declare-step version="3.0"
xmlns:p="http://www.w3.org/ns/xproc"
xmlns:test="http://xproc.org/ns/testsuite/3.0/function-test">
<p:import-functions href="../documents/xquery-library.xq" content-type="application/xquery" />
<p:output port="result" />

<p:identity>
<p:with-input><result>{test:undefined-function()}</result></p:with-input>
</p:identity>
</p:declare-step>
</t:pipeline>
</t:test>
Loading

0 comments on commit 082c5e4

Please sign in to comment.