SoftwareTesting:Tools:SimpleXulTestHarness

From MozillaWiki
Revision as of 18:04, 15 September 2006 by Davel (talk | contribs)
Jump to navigation Jump to search

old content

  • example xul/run-js-as-chrome test (davel's example)
    • 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
    • need to add result reporting (pass/fail) to this example

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.

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