Magnetme/web-components — pull request #7 by TiddoLangerak (2014-12-25 15:39:55+00:00)
Title: Implemented unit testing

- Implemented basic unit testing with the karma test runner & jasmine as test framework
- Tests will run in Chrome, Firefox and PhantomJS (if available) locally.
- A separate config for Jenkins has been provided that:
- Only uses PhantomJS
- Reports to a junit style xml file, such that (hopefully) we can configure Jenkins to pick that up
- Added the angular-mocks module such that we can easily test angular (e.g. service injection, module loading, etc.)
- Implemented basic "does-it-run" test. This test will fail if either one of the tests or the entire bundle throws an error on load.
- Implemented some basic utility functions to make it easier to do dom testing (loading templates, getting file paths etc.)
- Implemented test for the test utility functions. This is both to test that the test utilities actually do what they should do, as well as to provide a relatively simple example of how tests can be structured.

This PR is build on top of #6, so that should be reviewed first.

One additional comment: As you might have seen (or might see in the future) the Angular docs talk about the "protractor" test framework (developed by the Angular team) to run end to end tests. I looked into it, but it really only is for end to end testing: it assumes that there is a fully working version of the application running on some http address but it doesn't really allow to test individual components easily. Therefore I've chosen not to use that here, but instead use Karam (which they do recommend for actual unit testing).

@Magnetme/developers - Ready for review!