<p>The validation feature allows to check the programming logic of the <ahref="/cryptobox?action=doc&page=CryptoBox">CryptoBox</a>. A lot of test cases are defined to test as many functions of the <ahref="/cryptobox?action=doc&page=CryptoBox">CryptoBox</a> as possible. </p>
<p>The requests are processed with <aclass="external"href="http://curl.haxx.se/">curl</a>. </p>
<p>The received web page is saved to allow a later design review or css debugging. </p>
<p>The current state of the <ahref="/cryptobox?action=doc&page=CryptoBox">CryptoBox</a> is represented by ten single values (e.g.: <em>box is configured</em>, <em>IP of the box</em>, <em>current language setting</em>, ...), which are invisibly a part of each html page (as comments). The returned status of every request is compared to the predicted value of the test case. </p>
<p>Similar test cases are pooled into test groups (e.g.: <em>initialization</em>, <em>configuration</em> and <em>mounting</em>). </p>
<p>Run <tt>scripts/validate.sh check_all</tt> to conduct all tests of all groups. See <tt>scripts/validate.sh help</tt> for other actions. </p>
<p>In addition to every single retrieved page, a html page called <em>summary.html</em> is created, which contains the state checks of all tests in a group. </p>
<h2id="head-5634566bd24f83d397b43525fc62685f6e678fbf">How to create a test</h2>
<p>All test cases can be found in <em>validation/test-cases</em>. </p>
<p>Every test consists of: </p>
<dl>
<dt>input.curl</dt>
<dd><p>the configuration file for the <em>curl</em> request </p>
</dd>
<dt>output</dt>
<dd><p>the predicted state of the <ahref="/cryptobox?action=doc&page=CryptoBox">CryptoBox</a> after the call </p>
</dd>
<dt>description</dt>
<dd><p>a short description of the test (will be used for the summary) </p>