== ProMoT Browser == Expectation (functional tests): * load: all models from kb should load * import SBML: all biomodels should load (events are not imported, needs better error handling in functional tests) * export SBML: model should be valid and match expected simulation results (which tool for tests, workflow/scripting needed) * import CNA (signaling): all example models from CNA should be imported and be identical (as close as possible) after export/round trip * export CNA (signaling): exported models should be ok for CNA (how to test?) * export diana: model should be simulatable, simulation result should be identical to expected result within given threshold * save: versions (include library, library separate (model only), with dependencies): compare file as text with expectation, test whole kb/examples? Tests: 1. success iff library isPresent (included in file so file changes might break the test), model class present as PromotTreeNode, [source:/Promot/trunk/promot/kb/SignalTransd/EGF-model/EGF-LOAD.mdl]; test contents of model/PromotTreeNode? 2. same as 1. with different library and model (toy-model) 3. tested with import + simulation of all biomodels.org models, TODO: test for correctness of simulation results 4. round trip tested [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/cna/CNAImporterTest.java] for cna-model (sigtoynet-test) in test-suite [source:/Promot/trunk/promot/kb/testsuite/CNA/sigtoynet-test/] 5. Save a model into mdl (selected, all), compare generated files to expected; depends on selection test (13), test round trip of load+save of example 6. Export egf-model to SBML, compare generated file with expected output (file content + simulation results), TODO: export should work (be tested) for all models in kb, which tool for simulation (scriptable required)? comparison of simulation results after SBML round trip 7. Export egf-model to Diana/Diva, compare generated file with expected output (file content + simulation results), TODO: export should work (be tested) for all models in kb 8. round trip tested, see 5. test-model for export of modular models would be nice although no problems for export are known yet, right now only tested for diana (no scripts for DIVA yet) 9. junit test [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/test/CmdAddSubclassTest.java] 10. junit test [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/test/CmdDeleteTest.java] 11. junit test [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/PromotTest.java] 12. junit test [source:/Promot/trunk/promot/src/gui/org/mpg/dcts/promot/test/CmdCopyClassTest.java] 13. Select a class, a class with superclasses, a class with dependencies, a class with dependents, all classes in tree 14. Run script, test with default inputs for synthetic biology scripts 15. change properties: icon, abstract, model (including undo) Visual Inspection for: 1. Start Visual Editor for a class 2. Start Visual Explorer for a class 3. ViewMathematicalModel (display of instance) 4. Exit with Dialog for modified in Editor + Browser (change properties, load, import) 5. Search class (+class for slot in class) dialog, model type is not important, so after load of egf_model, [[br]] search egf_model (substring, class + slot; class) should return egf_model (class), egf_model_noint (class) [[br]] search proti (whole word, class + slot; slot) should return egf_model:proti (slot) Open for testing: option handling save, restore? test undo/redo in browser, include in tests for functionality if applicable Known problems, missing tests: * model of PromotTree under async updates - array index out of bounds, - display problems with null nodes in selection/displayed (update to slow, might be same problem as index out of bounds) - recovery from exception (refresh, seems to not restore content completely) * menu construction - only finished after PaletteWindow constructed at least once or JFileChooser dialog finished (open/import, directory select in export) - text for menu entries larger than pop-down menu (only vista so far, not happening after build (release version), cross-platform problem?)