These are instructions for confirming non-junit tests.

1. Attachments
Converting the files below SampleSocialtext-InputAttach should attach files:
ed.jpeg
cow.jpg
foo%20bar.gif
double facepalm.jpg 	
Utah.PNG

Note: should not attach shouldbedeleted.jpg

2. Filter
Only the most recent file in SampleSocialtext-InputFilter directory should be converted

3. Space Converter
The regression tests need the sample space properties uncommented:
Socialtext.0800.space-other-workspace.property=space1
Socialtext.0800.space-workspace.property=space2

4. Labels
The SampleSocialtext-InputLabels should have labels attached to the page:
test, abc09, abc, abcanddef, haswhitespace

5. Search
Uncomment the search properties to get the SearchOpt test to work.
