detro/ghostdriver — pull request #33 by MattiSG (2012-06-04 12:58:07+00:00)
Title: Merged examples into tests, improved their architecture, instructions and reliability

After discussion on pull request (#32), here are its modifications to examples, merged into tests.

- Previous "examples" are now called performance tests, since they time executions; they will have to be improved, but can serve as such.
- `example` folder has been removed.
- `example`'s Gradle tasks have been moved into the `test`'s ones (see README).
- The `WebDriverTester` abstract driver has been split in two layers of abstraction, one managing properties such as paths and GhostDriver instanciation, to be used for dependencies injection in all tests, located in `test/common`; loading of other drivers and statistics computation are now namespaced in `test/performance`.

The rest of the commits are the ones previously listed:

--------

The new architecture is much more extensible and reliable, which means they are easier to read for newcomers, it will be much simpler to create new demos and, more importantly, to collaborate as the executable paths are now extracted from the code.

The README was corrected and updated, so the example command now works.

The architecture is as follows:
- abstract `WebDriverTester` superclass, from which all test cases should inherit;
- `GoogleCheese` and `GoogleCheeseServerOnly` (renamed) only contain the particular crawling logic, as will all future test cases;
- all setup (paths, supported drivers) is externalized in properties lists that lie in the `config` folder. See the `path.properties.defaults` file for details on how paths may be changed on each developer's machine without impacting the codebase.