Folks, When ManifoldCF was granted by MetaCarta, comprehensive tests existed for the main Crawler UI as well as the UI contributions of each connector. This testing was all done in Python, and was thus unavailable within Junit, even though the MetaCarta test code itself had been granted, including the Python browser emulator (which I had written).
My original plans had been to port the browser emulator to Java. I kept starting to do this but other tasks continually interfered. Eventually in December I finally gave up on having enough of a block of time to do the port, and created infrastructure instead that invokes Python directly from within the Junit test framework. So we now have limited but sufficient capability for testing connector UIs. In order to use the tester, all you have to do is the following: - Install Python 2.x on the computer you intend to test with. - Make sure that typing the command "python" brings up the python shell. - Execute "ant uitest". Currently tests exist for the filesystem connector, the rss connector, and the web connector (which I'm currently completing). To write your own test, have a look at the code in tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/NavigationDerbyUI.java. It should be pretty self-explanatory. Ask questions if it isn't. I think we should have UI tests for all connectors before we ship 0.5, so if you "own" a connector please consider adding such a test. Bear in mind that the UI tester is NOT going to emulate IE or Firefox, but is only capable of doing the basics. Thus, there are plenty of things you can do in Javascript in a browser that won't work in the tester. If you are trying to do something in your UI that the tester does not like, usually the best solution is to simply do it in a different way. If that can't be done, we can augment the tester as needed. Let me know if you run into this problem and I'd be happy to help. The tester is also rigorous about properly formed HTML, which is good since most browsers silently accept crappy HTML and then break things in different ways. Thanks! Karl
