p:file-touch-011 (AB)

Tests p:file-touch, use current date-time.

Test ab-file-touch-011.xml is expected to pass.

It requires the following features: p:file-info, p:file-touch or , p:sleep.

The pipeline

<p:declare-step xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:err="http://www.w3.org/ns/xproc-error" xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
   <p:output port="result"/>
   <p:file-touch href="../testfolder/file.txt" name="touch1"/>
   <p:file-info href="../testfolder/file.txt" name="first-probe" depends="touch1"/>
   <p:sleep duration="3" name="sleep" depends="touch1"/>
   <p:file-touch href="../testfolder/file.txt" depends="sleep first-probe" name="touch2"/>
   <p:file-info href="../testfolder/file.txt" name="second-probe" depends="touch2"/>
   <p:wrap-sequence wrapper="result">
      <p:with-input pipe="@first-probe @second-probe"/>
   </p:wrap-sequence>
</p:declare-step>
MorganaXProc passing XML Calabash passing

Schematron validation

<s:schema xmlns="http://www.w3.org/1999/xhtml" xmlns:err="http://www.w3.org/ns/xproc-error" xmlns:s="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
   <s:ns uri="http://www.w3.org/ns/xproc-step" prefix="c"/>
   <s:ns uri="http://www.w3.org/2001/XMLSchema" prefix="xs"/>
   <s:pattern>
      <s:rule context="/">
         <s:assert test="result">Root element is not result.</s:assert>
         <s:assert test="result/c:file[1]/@name='file.txt' and result/c:file[2]/@name='file.txt'">result/c:file/@name is not 'file.txt'.</s:assert>
         <s:assert test="xs:dateTime(result/c:file[1]/@last-modified)                   &lt; xs:dateTime(result/c:file[2]/@last-modified)">Date of file is not correctly changed by p:file-touch.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

29 Oct 2026, Norm Tovey-Walsh

Adjusted the test to make sure the timestamps are different.

08 Oct 2023, Achim Berndzen

Changed test because the original test does not test anything.

29 Jul 2022, Achim Berndzen

Initial commit