SoftwareTesting:Tools:SimpleXulTestHarness
description
davel used this set of scripts to help verify that the default search engine plugins bundled with localised builds of firefox were as expected.
The wrapper script extract_search.sh expects paths to firefox dmg files on the command line. It installs firefox from each dmg, creates a new profile, runs the "test" to list the search engine stuff, then deletes the profile and that instance of firefox.
The wrapper script has the following assumptions:
- running on a mac
- APP_DATA_DIR set to ~/Library/Application Support/Firefox
- on my machine, I have a symlink to that dir from my home dir
- SEARCHTEST_DIR set to directory containing all these files
- WORK_DIR set to a writable directory, use to install firefox and hold the newly-created profile
- tests.manifest contains a file: url link to the SEARCHTEST_DIR directory
- hmm, we could make extract_search.sh edit the manifest file on the fly . . .
- nothing is creating or deleting profiles while this script is running
- changes to profiles.ini made by other things while this script is running will be clobbered.
how to run
- download contents of this directory to a directory on your mac
- edit extract_search.sh and tests.manifest, replacing paths with the ones on your machine
- download firefox .dmg files you want to "test"
- invoke extract_search.sh
example
./extract_search.sh "en-US/Firefox 1.5.0.7.dmg" "en-GB/Firefox 1.5.0.7.dmg"
output from above example
comments
- in the example, extract_search.sh demonstrates how to create a profile
- 2 steps - CreateProfile makes the directory and prefs.js file, and the first run populates the profile directory with all the other stuff
- the sleep 5 is necessary because firefox (on mac at least) restarts itself during the first-run process. probably extension manager checking for stuff
- installing an extension is not covered by this example
to do list
- figure out where/how to check this in to the tree
- as an extension, to populate chrome://tests/ ?
- how can test stuff from other parts of the tree get installed into chrome://tests/
- add invocation hooks
- what test to run
- auto-discovery of tests?
- command -line pointer to test manifest file, like layout reftest?
- add test result reporting
- simple dump statements
- maybe a chrome test runner with progress bar, like jsunit's test runner
- make this work for already-installed firefox
- make this work on windows and linux