| ======================================================================== |
| The KDE JavaScript Test Suite |
| ======================================================================== |
| |
| This is a collection of JavaScript (aka ECMAScript) code snipplets |
| used to test the KDE JavaScript library (dubbed kjs). Most of them |
| once triggered a bug in the implementation of the |
| interpreter. Allthough these bugs are probably fixed by now theses |
| tests can still be used for regression testing. |
| |
| NOTE: |
| |
| Don't confuse this code with the HTML bindings for the khtml |
| widget. Those are implemented in a seperate module residing in |
| kdelibs/khtml/ecma. Test for those can be found elsewhere. |
| |
| USAGE: |
| |
| You can evaluate .js files with a binary called 'testkjs' as long as |
| they contain pure ECMAScript code without any references to browser |
| specific properties. To build 'testkjs' simply invoke 'make check' |
| inside of the kdelibs/kjs source directory. Most tests rely on helper |
| functions like shouldBe(). Those are collected in base.js and have to |
| be evaluated before the actual test. testkjs accepts multiple input |
| files in the command line. Therefore a typical test run might look |
| like this: |
| |
| testkjs base.js operators.js |
| |
| For temporary debugging you may use the debug() function which prints |
| its output to stderr. |
| |
| NAMING CONVENTION: |
| |
| *.js regular test |
| j-*.js JavaScript/JScript extensions not covered by ECMA |
| *-n.js code that is supposed to trigger a parse/compile error |
| |
| FUTURE: |
| |
| All tests could easily be run in a row by a script. If they all stick |
| to a unified output format (e.g. via shouldBe()) all results can be |
| parsed and analyzed automatically. Maybe to a summary HTML page. In |
| case the test suite grows we would need to provide more info about |
| each test. This could look like: |
| |
| startTest("ECMA 15.4.2", "Testing the Array Constructor"); |
| // ... |
| endTest(); |
| |
| PLEA: |
| |
| In case you find any yet unknown bug please reduce it to a minimal test case |
| either send it to me or add it to this repository yourself. |
| |
| |
| Harri Porten <porten@kde.org> |
| |
| |