siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
1 lines • 65.4 kB
JavaScript
Ext.data.JsonP.Siesta_Project_NodeJS({"tagname":"class","name":"Siesta.Project.NodeJS","autodetected":{},"files":[{"filename":"NodeJS.js","href":"NodeJS3.html#Siesta-Project-NodeJS"}],"extends":"Siesta.Project","members":[{"name":"alsoPreload","tagname":"cfg","owner":"Siesta.Project","id":"cfg-alsoPreload","meta":{}},{"name":"autoCheckGlobals","tagname":"cfg","owner":"Siesta.Project","id":"cfg-autoCheckGlobals","meta":{}},{"name":"breakOnFail","tagname":"cfg","owner":"Siesta.Project","id":"cfg-breakOnFail","meta":{}},{"name":"breakSubTestOnFail","tagname":"cfg","owner":"Siesta.Project","id":"cfg-breakSubTestOnFail","meta":{}},{"name":"breakTestOnFail","tagname":"cfg","owner":"Siesta.Project","id":"cfg-breakTestOnFail","meta":{}},{"name":"cachePreload","tagname":"cfg","owner":"Siesta.Project","id":"cfg-cachePreload","meta":{}},{"name":"debuggerOnFail","tagname":"cfg","owner":"Siesta.Project","id":"cfg-debuggerOnFail","meta":{}},{"name":"debuggerOnStart","tagname":"cfg","owner":"Siesta.Project","id":"cfg-debuggerOnStart","meta":{}},{"name":"defaultTimeout","tagname":"cfg","owner":"Siesta.Project","id":"cfg-defaultTimeout","meta":{}},{"name":"desc","tagname":"cfg","owner":"Siesta.Project","id":"cfg-desc","meta":{}},{"name":"expectedGlobals","tagname":"cfg","owner":"Siesta.Project","id":"cfg-expectedGlobals","meta":{}},{"name":"failOnExclusiveSpecsWhenAutomated","tagname":"cfg","owner":"Siesta.Project","id":"cfg-failOnExclusiveSpecsWhenAutomated","meta":{}},{"name":"ignoreException","tagname":"cfg","owner":"Siesta.Project","id":"cfg-ignoreException","meta":{}},{"name":"isEcmaModule","tagname":"cfg","owner":"Siesta.Project","id":"cfg-isEcmaModule","meta":{}},{"name":"isReadyTimeout","tagname":"cfg","owner":"Siesta.Project","id":"cfg-isReadyTimeout","meta":{}},{"name":"keepNLastResults","tagname":"cfg","owner":"Siesta.Project","id":"cfg-keepNLastResults","meta":{}},{"name":"listeners","tagname":"cfg","owner":"Siesta.Project","id":"cfg-listeners","meta":{}},{"name":"maxThreads","tagname":"cfg","owner":"Siesta.Project","id":"cfg-maxThreads","meta":{}},{"name":"needDone","tagname":"cfg","owner":"Siesta.Project","id":"cfg-needDone","meta":{}},{"name":"overrideSetTimeout","tagname":"cfg","owner":"Siesta.Project","id":"cfg-overrideSetTimeout","meta":{}},{"name":"pauseBetweenTests","tagname":"cfg","owner":"Siesta.Project","id":"cfg-pauseBetweenTests","meta":{}},{"name":"preload","tagname":"cfg","owner":"Siesta.Project","id":"cfg-preload","meta":{}},{"name":"referenceUrl","tagname":"cfg","owner":"Siesta.Project","id":"cfg-referenceUrl","meta":{}},{"name":"runCore","tagname":"cfg","owner":"Siesta.Project","id":"cfg-runCore","meta":{}},{"name":"sandbox","tagname":"cfg","owner":"Siesta.Project","id":"cfg-sandbox","meta":{}},{"name":"sandboxBoundaryByGroup","tagname":"cfg","owner":"Siesta.Project","id":"cfg-sandboxBoundaryByGroup","meta":{}},{"name":"sandboxCleanup","tagname":"cfg","owner":"Siesta.Project","id":"cfg-sandboxCleanup","meta":{}},{"name":"snooze","tagname":"cfg","owner":"Siesta.Project","id":"cfg-snooze","meta":{}},{"name":"subTestTimeout","tagname":"cfg","owner":"Siesta.Project","id":"cfg-subTestTimeout","meta":{}},{"name":"suppressPassedWaitForAssertion","tagname":"cfg","owner":"Siesta.Project","id":"cfg-suppressPassedWaitForAssertion","meta":{}},{"name":"testClass","tagname":"cfg","owner":"Siesta.Project.NodeJS","id":"cfg-testClass","meta":{}},{"name":"title","tagname":"cfg","owner":"Siesta.Project","id":"cfg-title","meta":{}},{"name":"transparentEx","tagname":"cfg","owner":"Siesta.Project","id":"cfg-transparentEx","meta":{}},{"name":"waitForTimeout","tagname":"cfg","owner":"Siesta.Project","id":"cfg-waitForTimeout","meta":{}},{"name":"configure","tagname":"method","owner":"Siesta.Project","id":"method-configure","meta":{}},{"name":"plan","tagname":"method","owner":"Siesta.Project","id":"method-plan","meta":{}},{"name":"planDirectory","tagname":"method","owner":"Siesta.Project.NodeJS","id":"method-planDirectory","meta":{}},{"name":"start","tagname":"method","owner":"Siesta.Project","id":"method-start","meta":{}},{"name":"startFromUrl","tagname":"method","owner":"Siesta.Project","id":"method-startFromUrl","meta":{}},{"name":"testsuiteend","tagname":"event","owner":"Siesta.Project","id":"event-testsuiteend","meta":{}},{"name":"testsuitestart","tagname":"event","owner":"Siesta.Project","id":"event-testsuitestart","meta":{}}],"alternateClassNames":[],"aliases":{},"id":"class-Siesta.Project.NodeJS","short_doc":"Class, representing the NodeJS project. ...","component":false,"superclasses":["Siesta.Project"],"subclasses":[],"mixedInto":[],"mixins":[],"parentMixins":[],"requires":[],"uses":[],"html":"<div><pre class=\"hierarchy\"><h4>Hierarchy</h4><div class='subclass first-child'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='docClass'>Siesta.Project</a><div class='subclass '><strong>Siesta.Project.NodeJS</strong></div></div><h4>Files</h4><div class='dependency'><a href='source/NodeJS3.html#Siesta-Project-NodeJS' target='_blank'>NodeJS.js</a></div></pre><div class='doc-contents'><p>Class, representing the NodeJS project.</p>\n\n<p>For a getting start guide and manual, please refer to <a href=\"#!/guide/getting_started_browser\">Siesta getting started in browser environment</a> guide.</p>\n\n<h1>Synopsys</h1>\n\n<pre><code>var siesta = require('siesta-lite')\n\nvar project = new siesta.NodeJsHarness()\n\nproject.configure({\n title : 'Awesome Test Suite',\n\n autoCheckGlobals : true,\n expectedGlobals : [\n 'Ext',\n 'Sch'\n ],\n\n preload : [\n ]\n})\n\n\nproject.plan(\n // simple string - url relative to project file\n 'sanity.t.js',\n\n // test file descriptor with own configuration options\n {\n url : 'basic.t.js',\n\n // replace `preload` option of project\n preload : [\n \"../awesome-project-all.js\"\n ]\n },\n\n // groups (\"folders\") of test files (possibly with own options)\n {\n group : 'Sanity',\n\n autoCheckGlobals : false,\n\n items : [\n 'data/crud.t.js',\n ...\n ]\n },\n ...\n)\n\nproject.start()\n</code></pre>\n\n<h1>Running the test suite in NodeJS</h1>\n\n<p>To run the suite in NodeJS, launch the project javascript file:</p>\n\n<pre><code>> node t/index.js\n</code></pre>\n</div><div class='members'><div class='members-section'><div class='definedBy'>Defined By</div><h3 class='members-title icon-cfg'>Config options</h3><div class='subsection'><div id='cfg-alsoPreload' class='member first-child inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-alsoPreload' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-alsoPreload' class='name expandable'>alsoPreload</a> : Array<span class=\"signature\"></span></div><div class='description'><div class='short'>The array with preload descriptors describing which files/code should be preloaded additionally. ...</div><div class='long'><p>The array with preload descriptors describing which files/code should be preloaded <strong>additionally</strong>.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-autoCheckGlobals' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-autoCheckGlobals' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-autoCheckGlobals' class='name expandable'>autoCheckGlobals</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, project will automatically issue an Siesta.Test.verifyGlobals assertion at the end of each test,\nso...</div><div class='long'><p>When set to <code>true</code>, project will automatically issue an <a href=\"#!/api/Siesta.Test-method-verifyGlobals\" rel=\"Siesta.Test-method-verifyGlobals\" class=\"docClass\">Siesta.Test.verifyGlobals</a> assertion at the end of each test,\nso you won't have to manually specify it each time. The assertion will be triggered only if test completed successfully. Default value is <code>false</code>.\nSee also <a href=\"#!/api/Siesta.Project-cfg-expectedGlobals\" rel=\"Siesta.Project-cfg-expectedGlobals\" class=\"docClass\">expectedGlobals</a> configuration option and <a href=\"#!/api/Siesta.Test-method-expectGlobals\" rel=\"Siesta.Test-method-expectGlobals\" class=\"docClass\">Siesta.Test.expectGlobals</a> method.</p>\n\n<p>This option will be always disabled in Opera, since every DOM element with <code>id</code> is being added as a global symbol in it.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-breakOnFail' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-breakOnFail' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-breakOnFail' class='name expandable'>breakOnFail</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the project will not start launching any further tests after\ndetecting a failed assertion. ...</div><div class='long'><p>When set to <code>true</code>, the project will not start launching any further tests after\ndetecting a failed assertion. When running in automation mode, test suite will be finalized immediately,\nignoring the --rerun-failed option.</p>\n\n<p>Default value is <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-breakSubTestOnFail' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-breakSubTestOnFail' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-breakSubTestOnFail' class='name expandable'>breakSubTestOnFail</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the currently running sub test (it/describe section)\nwill be finalized after the 1st failed asserti...</div><div class='long'><p>When set to <code>true</code>, the currently running sub test (<code>it/describe</code> section)\nwill be finalized after the 1st failed assertion is generated. The test finalization\nis performed by throwing an exception, if <a href=\"#!/api/Siesta.Project-cfg-transparentEx\" rel=\"Siesta.Project-cfg-transparentEx\" class=\"docClass\">transparentEx</a> is not enabled you will see it\nin the console/debugger.</p>\n\n<p>To break the whole currently test file see <a href=\"#!/api/Siesta.Project-cfg-breakTestOnFail\" rel=\"Siesta.Project-cfg-breakTestOnFail\" class=\"docClass\">breakTestOnFail</a>.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n\n<p>Default value is <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-breakTestOnFail' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-breakTestOnFail' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-breakTestOnFail' class='name expandable'>breakTestOnFail</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the whole test file will be finalized after the 1st\nfailed assertion is generated in any of its sub...</div><div class='long'><p>When set to <code>true</code>, the whole test file will be finalized after the 1st\nfailed assertion is generated in any of its sub-tests (<code>it/describe</code> sections). The test finalization\nis performed by throwing an exception, if <a href=\"#!/api/Siesta.Project-cfg-transparentEx\" rel=\"Siesta.Project-cfg-transparentEx\" class=\"docClass\">transparentEx</a> is not enabled you will see it\nin the console/debugger.</p>\n\n<p>To break the currently running sub-test only (<code>it/describe</code> section) see <a href=\"#!/api/Siesta.Project-cfg-breakSubTestOnFail\" rel=\"Siesta.Project-cfg-breakSubTestOnFail\" class=\"docClass\">breakSubTestOnFail</a>.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n\n<p>Default value is <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-cachePreload' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-cachePreload' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-cachePreload' class='name expandable'>cachePreload</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, project will cache the content of the preload files and provide it for each test, instead of loadin...</div><div class='long'><p>When set to <code>true</code>, project will cache the content of the preload files and provide it for each test, instead of loading it\nfrom network each time. This option may give a slight speedup in tests execution (especially when running the suite from the remote server), but see the\ncaveats below. Default value is <code>false</code>.</p>\n\n<p>Caveats: this option doesn't work very well for CSS (due to broken relative urls for images). Also its not \"debugging-friendly\" - as you will not be able\nto setup breakpoints for cached code.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-debuggerOnFail' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-debuggerOnFail' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-debuggerOnFail' class='name expandable'>debuggerOnFail</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the project will issue a debugger statement after detecting a failed assertion, allowing you\nto ins...</div><div class='long'><p>When set to <code>true</code>, the project will issue a <code>debugger</code> statement after detecting a failed assertion, allowing you\nto inspect the internal state of the test in the browser's debugger. Default value is <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-debuggerOnStart' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-debuggerOnStart' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-debuggerOnStart' class='name expandable'>debuggerOnStart</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the project will issue a debugger statement before launching any test. ...</div><div class='long'><p>When set to <code>true</code>, the project will issue a <code>debugger</code> statement before launching any test. Default value is <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-defaultTimeout' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-defaultTimeout' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-defaultTimeout' class='name expandable'>defaultTimeout</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>Default timeout for beginAsync operation (in milliseconds). ...</div><div class='long'><p>Default timeout for <code>beginAsync</code> operation (in milliseconds). Default value is 15000.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>15000</code></p></div></div></div><div id='cfg-desc' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-desc' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-desc' class='name expandable'>desc</a> : String<span class=\"signature\"></span></div><div class='description'><div class='short'>The description of the test. ...</div><div class='long'><p>The description of the test. Can contain HTML. When provided, will be shown as the tooltip in the tests grid.</p>\n</div></div></div><div id='cfg-expectedGlobals' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-expectedGlobals' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-expectedGlobals' class='name expandable'>expectedGlobals</a> : Array<span class=\"signature\"></span></div><div class='description'><div class='short'>An array of strings or regular expressions which are likely to present in the scope of each test. ...</div><div class='long'><p>An array of strings or regular expressions which are likely to present in the scope of each test. There is no need to provide the name\nof built-in globals - project will automatically scan them from the empty context. Only provide the names of global properties which will be created\nby your preload code.</p>\n\n<p>For example</p>\n\n<pre><code>project.configure({\n title : 'Ext Scheduler Test Suite',\n\n autoCheckGlobals : true,\n expectedGlobals : [\n 'Ext',\n 'MyProject',\n /jQuery\\d+/, // Can use RegExp too!\n ],\n ...\n})\n</code></pre>\n\n<p>This option can be also specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-failOnExclusiveSpecsWhenAutomated' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-failOnExclusiveSpecsWhenAutomated' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-failOnExclusiveSpecsWhenAutomated' class='name expandable'>failOnExclusiveSpecsWhenAutomated</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When this option is enabled and Siesta is running in automation mode\n(using WebDriver or Puppeteer launcher) any excl...</div><div class='long'><p>When this option is enabled and Siesta is running in automation mode\n(using WebDriver or Puppeteer launcher) any exclusive BDD specs found (like <a href=\"#!/api/Siesta.Test-method-iit\" rel=\"Siesta.Test-method-iit\" class=\"docClass\">t.iit</a> or <a href=\"#!/api/Siesta.Test-method-ddescribe\" rel=\"Siesta.Test-method-ddescribe\" class=\"docClass\">t.ddescribe</a>\nwill cause a failing assertion. The idea behind this setting is that such \"exclusive\" specs should only be used during debugging\nand are often mistakenly committed in the codebase, leaving other specs not executed.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-ignoreException' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-ignoreException' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-ignoreException' class='name expandable'>ignoreException</a> : RegExp/String<span class=\"signature\"></span></div><div class='description'><div class='short'>If this option provided, Siesta will ignore any exceptions, stringified value of which matches this option. ...</div><div class='long'><p>If this option provided, Siesta will ignore any exceptions, stringified value of which matches this option.\nIf this option is provided as string, it is passed to the <code>RegExp</code> constructor.</p>\n\n<p>This option is supposed to be used only for some \"strange\" exceptions, originated from the browser itself. For the exceptions\nfrom the test code behavior of this option is undefined.</p>\n\n<p>Can also be specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-isEcmaModule' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-isEcmaModule' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-isEcmaModule' class='name expandable'>isEcmaModule</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>This option can be specified in the test file descriptor and/or as the global project config. ...</div><div class='long'><p>This option can be specified in the test file descriptor and/or as the global project config. In the latter case it will affect all tests.</p>\n\n<p>When enabled, the test script file (the one containing the <code>StartTest()</code> function) will be loaded using\n<code><script type=\"module\"></code> instead of <code><script type=\"text/javascript\"></code></p>\n\n<p>See also a note in the <a href=\"#!/api/Siesta.Project-cfg-preload\" rel=\"Siesta.Project-cfg-preload\" class=\"docClass\">preload</a> config.</p>\n</div></div></div><div id='cfg-isReadyTimeout' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-isReadyTimeout' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-isReadyTimeout' class='name expandable'>isReadyTimeout</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>Default timeout for test start (in milliseconds). ...</div><div class='long'><p>Default timeout for test start (in milliseconds). Default value is 15000. See <a href=\"#!/api/Siesta.Test-method-isReady\" rel=\"Siesta.Test-method-isReady\" class=\"docClass\">Siesta.Test.isReady</a> for details.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>10000</code></p></div></div></div><div id='cfg-keepNLastResults' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-keepNLastResults' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-keepNLastResults' class='name expandable'>keepNLastResults</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>Indicates the number of the test results which still should be kept, for user examination. ...</div><div class='long'><p>Indicates the number of the test results which still should be kept, for user examination.\nResults are cleared when their total number exceed this value, based on FIFO order.</p>\n<p>Defaults to: <code>2</code></p></div></div></div><div id='cfg-listeners' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-listeners' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-listeners' class='name expandable'>listeners</a> : Object<span class=\"signature\"></span></div><div class='description'><div class='short'>The object which keys corresponds to event names and values - to event handlers. ...</div><div class='long'><p>The object which keys corresponds to event names and values - to event handlers. If provided, the special key \"scope\" will be treated as the\nscope for all event handlers, otherwise the project itself will be used as scope.</p>\n\n<p>Note, that the events from individual <a href=\"#!/api/Siesta.Test\" rel=\"Siesta.Test\" class=\"docClass\">test cases</a> instances will bubble up to the project - you can listen to all of them in one place:</p>\n\n<pre><code>project.configure({\n title : 'Awesome Test Suite',\n\n preload : [\n 'http://cdn.sencha.io/ext-4.1.0-gpl/resources/css/ext-all.css',\n 'http://cdn.sencha.io/ext-4.1.0-gpl/ext-all-debug.js',\n\n 'preload.js'\n ],\n\n listeners : {\n testsuitestart : function (event, project) {\n log('Test suite is starting: ' + project.title)\n },\n testsuiteend : function (event, project) {\n log('Test suite is finishing: ' + project.title)\n },\n teststart : function (event, test) {\n log('Test case is starting: ' + test.url)\n },\n testupdate : function (event, test, result) {\n log('Test case [' + test.url + '] has been updated: ' + result.description + (result.annotation ? ', ' + result.annotation : ''))\n },\n testfailedwithexception : function (event, test) {\n log('Test case [' + test.url + '] has failed with exception: ' + test.failedException)\n },\n testfinalize : function (event, test) {\n log('Test case [' + test.url + '] has completed')\n }\n }\n})\n</code></pre>\n</div></div></div><div id='cfg-maxThreads' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-maxThreads' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-maxThreads' class='name expandable'>maxThreads</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>The maximum number of tests running at the same time. ...</div><div class='long'><p>The maximum number of tests running at the same time. Only applicable for <code>parallel</code> run-core.</p>\n<p>Defaults to: <code>4</code></p></div></div></div><div id='cfg-needDone' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-needDone' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-needDone' class='name expandable'>needDone</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the tests will must indicate that that they have reached the correct\nexit point with t.done() call,...</div><div class='long'><p>When set to <code>true</code>, the tests will must indicate that that they have reached the correct\nexit point with <code>t.done()</code> call, after which, adding any assertions is not allowed.\nUsing this option will ensure that test did not exit prematurely with some exception silently caught.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-overrideSetTimeout' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-overrideSetTimeout' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-overrideSetTimeout' class='name expandable'>overrideSetTimeout</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When set to true, the tests will override the native \"setTimeout\" from the context of each test\nfor asynchronous code...</div><div class='long'><p>When set to <code>true</code>, the tests will override the native \"setTimeout\" from the context of each test\nfor asynchronous code tracking. If setting it to <code>false</code>, you will need to use <code>beginAsync/endAsync</code> calls to indicate that test is still running.</p>\n\n<p>Note, that this option may not work reliably, when used for several sub tests launched simultaneously (for example\nfor several sibling <a href=\"#!/api/Siesta.Test-method-todo\" rel=\"Siesta.Test-method-todo\" class=\"docClass\">Siesta.Test.todo</a> sections.</p>\n\n<p>This option can be also specified in the test file descriptor. Defaults to <code>false</code>.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-pauseBetweenTests' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-pauseBetweenTests' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-pauseBetweenTests' class='name expandable'>pauseBetweenTests</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>Default timeout between tests (in milliseconds). ...</div><div class='long'><p>Default timeout between tests (in milliseconds). Increase this settings for big test suites, to give browser time for memory cleanup.</p>\n<p>Defaults to: <code>10</code></p></div></div></div><div id='cfg-preload' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-preload' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-preload' class='name expandable'>preload</a> : Array<span class=\"signature\"></span></div><div class='description'><div class='short'>The array which contains the preload descriptors describing which files/code should be preloaded into the scope of ea...</div><div class='long'><p>The array which contains the <em>preload descriptors</em> describing which files/code should be preloaded into the scope of each test.</p>\n\n<p>Preload descriptor can be:</p>\n\n<ul>\n<li>a string, containing an url to load (cross-domain urls are ok, if url ends with \".css\" it will be loaded as CSS)</li>\n<li>an object <code>{ type : 'css/js', url : '...' }</code> allowing to specify the CSS files with different extension</li>\n<li>an object <code>{ type : 'css/js', content : '...' }</code> allowing to specify the inline content for script / style. The content should only be the tag content - not the tag itself, it'll be created by Siesta.</li>\n<li>an object <code>{ text : '...' }</code> which is a shortcut for <code>{ type : 'js', content : '...' }</code></li>\n</ul>\n\n\n<p><code>preload</code> array can contain other nested arrays which will be flattened recursively. Any \"empty\" values\n(like <code>null</code>, empty string, false etc) will be ignored.</p>\n\n<p>For example:</p>\n\n<pre><code>project.configure({\n title : 'Ext Scheduler Test Suite',\n\n preload : [\n 'http://cdn.sencha.io/ext-4.0.2a/resources/css/ext-all.css',\n 'http://cdn.sencha.io/ext-4.0.2a/ext-all-debug.js',\n {\n text : 'MySpecialGlobalFunc = function () { if (typeof console != \"undefined\") ... }'\n },\n // simple conditional preload\n someCondition ?\n [\n 'http://mydomain.com/file.css',\n 'http://mydomain.com/file.js'\n ]\n :\n null\n ],\n ...\n})\n</code></pre>\n\n<p>This option can be also specified in the test file descriptor. <strong>Note</strong>, that if test descriptor has non-empty\n<a href=\"#!/api/Siesta.Project.Browser-cfg-pageUrl\" rel=\"Siesta.Project.Browser-cfg-pageUrl\" class=\"docClass\">pageUrl</a> option, then <em>it will not inherit</em> the <code>preload</code> option\nfrom parent descriptors or project, <strong>unless</strong> it has the <code>preload</code> config set to string <code>inherit</code>.\nIf both <code>pageUrl</code> and <code>preload</code> are set on the project level, <code>preload</code> value still will be inherited. For example:</p>\n\n<pre><code>project.configure({\n pageUrl : 'general-page.html',\n preload : [ 'my-file.js' ],\n ...\n})\n\nproject.plan(\n // this test will inherit both `pageUrl` and `preload`\n 'test1.js',\n {\n // no preloads inherited\n pageUrl : 'host-page.html',\n url : 'test2.js'\n },\n {\n // inherit `preload` value from the upper level - [ 'my-file.js' ]\n pageUrl : 'host-page.html',\n preload : 'inherit',\n url : 'test3.js'\n },\n {\n group : 'Some group',\n pageUrl : 'host-page2.html',\n preload : 'inherit',\n\n items : [\n {\n // inherit `pageUrl` value from the group\n // inherit `preload` value from the upper level - [ 'my-file.js' ]\n url : 'test3.js'\n }\n ]\n }\n)\n</code></pre>\n\n<p>When loading ES6 modules, one need to indicate this using the <code>isEcmaModule</code> property of the preload descriptor.\nIn this case, the module <code><script></code> tag will be created with the <code>type</code> attribute set to <code>module</code>, instead of <code>text/javascript</code>.</p>\n\n<pre><code>project.configure({\n preload : [\n {\n type : 'js',\n url : 'some_file.js',\n isEcmaModule : true\n },\n {\n type : 'js',\n content : 'import {something} from \"another/module.js\"',\n isEcmaModule : true\n }\n\n ],\n ...\n})\n</code></pre>\n</div></div></div><div id='cfg-referenceUrl' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-referenceUrl' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-referenceUrl' class='name expandable'>referenceUrl</a> : String<span class=\"signature\"></span></div><div class='description'><div class='short'>The url, containing additional information about the test. ...</div><div class='long'><p>The url, containing additional information about the test. This option is inherited from the group configs,\nas other options. In the Siesta user interface, <code>CTRL+click</code> on the\ntest row will open a new browser window, pointing to this url. Can be used to link the test with some external\nresource like ticket, screenshot, etc.</p>\n\n<pre><code>project.plan(\n {\n url : 'my_test.t.js',\n referenceUrl : 'http://jira.com/jira_issue'\n }\n)\n</code></pre>\n\n<p>This option can be also specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-runCore' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-runCore' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-runCore' class='name expandable'>runCore</a> : String<span class=\"signature\"></span></div><div class='description'><div class='short'>Either parallel or sequential. ...</div><div class='long'><p>Either <code>parallel</code> or <code>sequential</code>. Indicates how the individual tests should be run - several at once or one-by-one.\nDefault value is \"parallel\". You do not need to change this option usually.</p>\n<p>Defaults to: <code>'parallel'</code></p></div></div></div><div id='cfg-sandbox' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-sandbox' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-sandbox' class='name expandable'>sandbox</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>This option controls whether the individual tests should be run in isolation from each other. ...</div><div class='long'><p>This option controls whether the individual tests should be run in isolation from each other. By default it is enabled,\nand every test file will be run inside of the newly created iframe (or in the separate Node.js process), so that it can not interfere with\nany other test. Such setup gives you predictable starting state for every test, removes the need for any kind of\ncleanup at the end of the test and is more robust in general.</p>\n\n<p>However, the setup of the new sandbox creates some overhead. If you are sure that your tests\ndo not modify any global state (like global variable that can affect the other test) you may want to run\nall of them in the same context, saving the setup time. In this case, you may want to disable this option.</p>\n\n<p>Siesta collects all tests with this option disabled and split them into chunks. Every chunk will have exactly\nthe same values for the configs that influence the initial setup of the page: <a href=\"#!/api/Siesta.Project-cfg-preload\" rel=\"Siesta.Project-cfg-preload\" class=\"docClass\">preload</a>, <a href=\"#!/api/Siesta.Project-cfg-alsoPreload\" rel=\"Siesta.Project-cfg-alsoPreload\" class=\"docClass\">alsoPreload</a>,\npageUrl, Siesta.Test.ExtJS.requires and some others. The tests inside of every\nchunk will be run sequentially, in the same sandbox.</p>\n\n<p><strong>Important</strong>: The 1st test in every chunk will be run normally. Starting from the 2nd one, tests\nwill skip the <a href=\"#!/api/Siesta.Test-method-isReady\" rel=\"Siesta.Test-method-isReady\" class=\"docClass\">Siesta.Test.isReady</a> check and <a href=\"#!/api/Siesta.Test-method-setup\" rel=\"Siesta.Test-method-setup\" class=\"docClass\">Siesta.Test.setup</a> methods. This is because all the\nsetup is supposed to be already done by the 1st test. This behavior may change (or made configurable) in the future.</p>\n\n<p>This option can be specified in the test file descriptor.</p>\n\n<p>See also <a href=\"#!/api/Siesta.Project-cfg-sandboxBoundaryByGroup\" rel=\"Siesta.Project-cfg-sandboxBoundaryByGroup\" class=\"docClass\">sandboxBoundaryByGroup</a>, <a href=\"#!/api/Siesta.Project-cfg-sandboxCleanup\" rel=\"Siesta.Project-cfg-sandboxCleanup\" class=\"docClass\">sandboxCleanup</a></p>\n<p>Defaults to: <code>true</code></p></div></div></div><div id='cfg-sandboxBoundaryByGroup' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-sandboxBoundaryByGroup' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-sandboxBoundaryByGroup' class='name expandable'>sandboxBoundaryByGroup</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>Only applicable for tests with the sandbox option disabled. ...</div><div class='long'><p>Only applicable for tests with the <a href=\"#!/api/Siesta.Project-cfg-sandbox\" rel=\"Siesta.Project-cfg-sandbox\" class=\"docClass\">sandbox</a> option <em>disabled</em>.</p>\n\n<p>when this option is enabled, the tests to be run in the same context will be guaranteed to reside in the same group.\nIf a new test group starts (even with the same \"preload\" config) - a fresh context for that group will be created\nby Siesta.</p>\n\n<p>For example, in the following setup, both \"Group 1\" and \"Group 2\" have sandboxing disabled and the\nsame \"preload\" config. If <code>sandboxBoundaryByGroup</code> will be disabled all 4 individual tests will be run\nin the same context. If <code>sandboxBoundaryByGroup</code> will be enabled, separate fresh context will be created\nfor the tests from each group.</p>\n\n<pre><code>project.configure({\n preload : [ ... ]\n});\n\nproject.plan(\n {\n group : 'Group 1',\n sandbox : false,\n items : [\n '010-basics/010_sanity.t.js',\n '010-basics/020_jshint.t.js'\n ]\n },\n {\n group : 'Group 2',\n sandbox : false,\n items : [\n '020-basics/010_sanity.t.js',\n '020-basics/030_bdd.t.js'\n ]\n },\n ...\n)\n</code></pre>\n<p>Defaults to: <code>true</code></p></div></div></div><div id='cfg-sandboxCleanup' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-sandboxCleanup' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-sandboxCleanup' class='name expandable'>sandboxCleanup</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>Only applicable for tests with the sandbox option disabled. ...</div><div class='long'><p>Only applicable for tests with the <a href=\"#!/api/Siesta.Project-cfg-sandbox\" rel=\"Siesta.Project-cfg-sandbox\" class=\"docClass\">sandbox</a> option <em>disabled</em>. When enabled, test that runs\nin shared sandbox (the sandbox in which another test just has been run) will perform a cleanup.</p>\n\n<p>By default it will remove any \"unexpected\" globals (see <a href=\"#!/api/Siesta.Project-cfg-expectedGlobals\" rel=\"Siesta.Project-cfg-expectedGlobals\" class=\"docClass\">expectedGlobals</a>) and clear the DOM.</p>\n\n<p>If you will disable this option, every new test in the \"groups\" will start from the state previous test\nhas finished the execution. This will allow you split one big test scenario into several files</p>\n\n<p>This option can be specified in the test file descriptor.</p>\n<p>Defaults to: <code>true</code></p></div></div></div><div id='cfg-snooze' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-snooze' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-snooze' class='name expandable'>snooze</a> : Date/String<span class=\"signature\"></span></div><div class='description'><div class='short'>Either a Date instance or a string, recognized by the Date constructor. ...</div><div class='long'><p>Either a <code>Date</code> instance or a string, recognized by the <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\">Date constructor</a>.</p>\n\n<p>If test is running prior the specified date, the whole test will be made a \"todo\". See the <a href=\"#!/api/Siesta.Test-method-snooze\" rel=\"Siesta.Test-method-snooze\" class=\"docClass\">Siesta.Test.snooze</a> method.</p>\n\n<p>Example:</p>\n\n<pre><code>project.plan(\n {\n group : 'Some group',\n\n snooze : '2016-10-11',\n\n items : [\n ...\n ]\n }\n)\n</code></pre>\n\n<p>This option can be also specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-subTestTimeout' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-subTestTimeout' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-subTestTimeout' class='name expandable'>subTestTimeout</a> : Number<span class=\"signature\"></span></div><div class='description'><div class='short'>Default timeout for sub tests. ...</div><div class='long'><p>Default timeout for sub tests. Default value is twice bigger than <a href=\"#!/api/Siesta.Project-cfg-defaultTimeout\" rel=\"Siesta.Project-cfg-defaultTimeout\" class=\"docClass\">defaultTimeout</a>.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n</div></div></div><div id='cfg-suppressPassedWaitForAssertion' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><br/><a href='source/Project.html#Siesta-Project-cfg-suppressPassedWaitForAssertion' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project-cfg-suppressPassedWaitForAssertion' class='name expandable'>suppressPassedWaitForAssertion</a> : Boolean<span class=\"signature\"></span></div><div class='description'><div class='short'>When enabled, the passed \"waitFor\" assertions won't be included in the tests. ...</div><div class='long'><p>When enabled, the passed \"waitFor\" assertions won't be included in the tests.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Defaults to: <code>false</code></p></div></div></div><div id='cfg-testClass' class='member not-inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><span class='defined-in' rel='Siesta.Project.NodeJS'>Siesta.Project.NodeJS</span><br/><a href='source/NodeJS3.html#Siesta-Project-NodeJS-cfg-testClass' target='_blank' class='view-source'>view source</a></div><a href='#!/api/Siesta.Project.NodeJS-cfg-testClass' class='name expandable'>testClass</a> : Class<span class=\"signature\"></span></div><div class='description'><div class='short'>The test class which will be used for creating test instances, defaults to Siesta.Test.NodeJS. ...</div><div class='long'><p>The test class which will be used for creating test instances, defaults to <a href=\"#!/api/Siesta.Test.NodeJS\" rel=\"Siesta.Test.NodeJS\" class=\"docClass\">Siesta.Test.NodeJS</a>.\nYou can subclass <a href=\"#!/api/Siesta.Test.NodeJS\" rel=\"Siesta.Test.NodeJS\" class=\"docClass\">Siesta.Test.NodeJS</a> and provide a new class, please refer to the <a href=\"#!/guide/extending_test_clas\">Extending test class</a> guide.</p>\n\n<p>This option can be also specified in the test file descriptor.</p>\n<p>Overrides: <a href=\"#!/api/Siesta.Project-cfg-testClass\" rel=\"Siesta.Project-cfg-testClass\" class=\"docClass\">Siesta.Project.testClass</a></p></div></div></div><div id='cfg-title' class='member inherited'><a href='#' class='side expandable'><span> </span></a><div class='title'><div class='meta'><a href='#!/api/Siesta.Project' rel='Siesta.Project' class='defined-in docClass'>Siesta.Project</a><b