You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@manifoldcf.apache.org by Karl Wright <da...@gmail.com> on 2012/01/04 07:57:39 UTC

Announcing the availability of UI testing infrastructure

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