{"_id":"hardy","_rev":"34-15cceda382f130b71799786706dd4554","name":"hardy","description":"A collection of steps to run CSS tests using Cucumber and Selenium","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.2":{"name":"hardy","version":"0.0.2","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8"},"readme":"Hardy\n===\n\nGhostStory 2: The Ghostening\n---\n\nHardy (formerly GhostStory) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the webdriverjs bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](extra/assets/small-logo.png)\n\nDependencies\n---\n\n### Selenium\n\nMakes the whole thing go.\n\n### PhantomJS\n\nAside from being extremely handy as a potential test browser, GhostStory relies on PhantomJS for its image processing. If you aren't planning on doing any image diff tests, you can skip it.\n\n---\n\n## CSS test steps available:\n\n### `Then \"element\" should have \"CSS property\" of \"value\"`\n\nMeasures the current value of the property and asserts against the expected value\n\n### `Then \"element\" should have \"CSS property\" of [more|greater|less] than \"value\"`\n\nMeasures the current value of the property and compares against the expected value\n\n### `Then \"element\" should look the same as before`\n\nRenders an image of the element for image diff testing. The first time this step is used, it will fail and generate a base reference image.\n\n## CSS test steps to be made:\n\n### `Then \"element\" should have \"CSS property\" of \"value\" or \"value\" [or \"value\"]*`\n\n## General steps available:\n\n### `Given the window size is \"width\" by \"height\"`\n\n### `Given I visit \"(https?:\\/\\/.*\\..*)\"`\n\n### `When I enter \"text\" into \"selector\"`\n\n### `When I submit the form \"selector\"`\n\n### `Then I should see \"text\" in the element \"selector\"`\n\nThere are obviously many more generic steps missed but they should be straightforward to add.\n\n## Custom Steps\n\nAdd these in a module in the `features/step_definitions` folder.\n\n\nUsing\n===\n\nStart selenium\n\n    java -jar bin/selenium-server-standalone-2.32.0.jar\n\nThis should work with any recent version of Selenium. I've only tested with 2.32 so far.\n\nSpecify test properties in the file `features/support/testproperties.js` or explicitly on the command-line.\n\n    ./node_modules/cucumber/bin/cucumber.js --browser=phantomjs\n    ./node_modules/cucumber/bin/cucumber.js --browser=chrome\n    ./node_modules/cucumber/bin/cucumber.js --browser='internet explorer'\n\nNote: If you want to test in chrome, you'll also need the ChromeDriver package. Consult the Selenium wiki for more.\n\nUses the selectors/selectors.js files to map human descriptions of elements to CSS selectors\n\n## File structure\n\n\n\n  * features/*.feature - the story files you want to run.\n  * support/teardown.js - closes the browser after each scenario\n  * support/testproperties.json - Configuration stuffs\n  * support/world.js - This is the bootstrapper for WebDriverJS, be careful!\n  * step_definitions/generic.js - Good place to keep testwide step definitions, such as \"I click <id>\"\n  * step_definitions/*.js - Other step definitions, ideally you should have a 1-1 relationship between feature file and specific definitions as the complimentary .js file","_id":"hardy@0.0.2","dist":{"shasum":"d343ec0bb4b4f1736dc45fd2879b5dce8e38cd53","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.2.tgz","integrity":"sha512-KSDrYl6Z3dtplcb70A/dV9W6+SHZgpZYIlNXaGeTgoPn2omAOOc6uDBkl9p8+M0tltaijF+Yqlczsz7sg/rlfA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDySBt0WC5EBHqKcEHdDM/8aWNY8zjg0TR8YbCroFkHsAiB3VDMF2h1RHMwdM12G0HmgsDUmRLLFUGDuX/siF2nwJA=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.3":{"name":"hardy","version":"0.0.3","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"readme":"Hardy\n===\n\nGhostStory 2: The Ghostening\n---\n\nHardy (formerly GhostStory) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the webdriverjs bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](extra/assets/small-logo.png)\n\nDependencies\n---\n\n### Selenium\n\nMakes the whole thing go.\n\n### PhantomJS\n\nAside from being extremely handy as a potential test browser, GhostStory relies on PhantomJS for its image processing. If you aren't planning on doing any image diff tests, you can skip it.\n\n---\n\n## CSS test steps available:\n\n### `Then \"element\" should have \"CSS property\" of \"value\"`\n\nMeasures the current value of the property and asserts against the expected value\n\n### `Then \"element\" should have \"CSS property\" of [more|greater|less] than \"value\"`\n\nMeasures the current value of the property and compares against the expected value\n\n### `Then \"element\" should look the same as before`\n\nRenders an image of the element for image diff testing. The first time this step is used, it will fail and generate a base reference image.\n\n## CSS test steps to be made:\n\n### `Then \"element\" should have \"CSS property\" of \"value\" or \"value\" [or \"value\"]*`\n\n## General steps available:\n\n### `Given the window size is \"width\" by \"height\"`\n\n### `Given I visit \"(https?:\\/\\/.*\\..*)\"`\n\n### `When I enter \"text\" into \"selector\"`\n\n### `When I submit the form \"selector\"`\n\n### `Then I should see \"text\" in the element \"selector\"`\n\nThere are obviously many more generic steps missed but they should be straightforward to add.\n\n## Custom Steps\n\nAdd these in a module in the `features/step_definitions` folder.\n\n\nUsing\n===\n\nStart selenium\n\n    java -jar bin/selenium-server-standalone-2.32.0.jar\n\nThis should work with any recent version of Selenium. I've only tested with 2.32 so far.\n\nSpecify test properties in the file `features/support/testproperties.js` or explicitly on the command-line.\n\n    ./node_modules/cucumber/bin/cucumber.js --browser=phantomjs\n    ./node_modules/cucumber/bin/cucumber.js --browser=chrome\n    ./node_modules/cucumber/bin/cucumber.js --browser='internet explorer'\n\nNote: If you want to test in chrome, you'll also need the ChromeDriver package. Consult the Selenium wiki for more.\n\nUses the selectors/selectors.js files to map human descriptions of elements to CSS selectors\n\n## File structure\n\n\n\n  * features/*.feature - the story files you want to run.\n  * support/teardown.js - closes the browser after each scenario\n  * support/testproperties.json - Configuration stuffs\n  * support/world.js - This is the bootstrapper for WebDriverJS, be careful!\n  * step_definitions/generic.js - Good place to keep testwide step definitions, such as \"I click <id>\"\n  * step_definitions/*.js - Other step definitions, ideally you should have a 1-1 relationship between feature file and specific definitions as the complimentary .js file","_id":"hardy@0.0.3","dist":{"shasum":"cb96ea92378fc5f3406fadcf9bb4c6039c9bef49","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.3.tgz","integrity":"sha512-12+5u214xkalMfkr24cyqrZy7vLspPiM+nPuLAeiIFyyp4G3Uq9hmDipDYGLFLaSxLYu1mvyJRNrwPqRSBehow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsusrcShC75tSdoYcXsYsxNMpbWHhQsYze5+JoxqdJdAiEAnXgX684Xu3T9zyIqLcyL2d3ifDx5l9V7q3O5P7+pkVc="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.4":{"name":"hardy","version":"0.0.4","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0"},"readme":"Hardy\n===\n\nGhostStory 2: The Ghostening\n---\n\nHardy (formerly GhostStory) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the webdriverjs bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](extra/assets/small-logo.png)\n\nDependencies\n---\n\n### Selenium\n\nMakes the whole thing go.\n\n### PhantomJS\n\nAside from being extremely handy as a potential test browser, GhostStory relies on PhantomJS for its image processing. If you aren't planning on doing any image diff tests, you can skip it.\n\n---\n\n## CSS test steps available:\n\n### `Then \"element\" should have \"CSS property\" of \"value\"`\n\nMeasures the current value of the property and asserts against the expected value\n\n### `Then \"element\" should have \"CSS property\" of [more|greater|less] than \"value\"`\n\nMeasures the current value of the property and compares against the expected value\n\n### `Then \"element\" should look the same as before`\n\nRenders an image of the element for image diff testing. The first time this step is used, it will fail and generate a base reference image.\n\n## CSS test steps to be made:\n\n### `Then \"element\" should have \"CSS property\" of \"value\" or \"value\" [or \"value\"]*`\n\n## General steps available:\n\n### `Given the window size is \"width\" by \"height\"`\n\n### `Given I visit \"(https?:\\/\\/.*\\..*)\"`\n\n### `When I enter \"text\" into \"selector\"`\n\n### `When I submit the form \"selector\"`\n\n### `Then I should see \"text\" in the element \"selector\"`\n\nThere are obviously many more generic steps missed but they should be straightforward to add.\n\n## Custom Steps\n\nAdd these in a module in the `features/step_definitions` folder.\n\n\nUsing\n===\n\nStart selenium\n\n    java -jar bin/selenium-server-standalone-2.32.0.jar\n\nThis should work with any recent version of Selenium. I've only tested with 2.32 so far.\n\nSpecify test properties in the file `features/support/testproperties.js` or explicitly on the command-line.\n\n    ./node_modules/cucumber/bin/cucumber.js --browser=phantomjs\n    ./node_modules/cucumber/bin/cucumber.js --browser=chrome\n    ./node_modules/cucumber/bin/cucumber.js --browser='internet explorer'\n\nNote: If you want to test in chrome, you'll also need the ChromeDriver package. Consult the Selenium wiki for more.\n\nUses the selectors/selectors.js files to map human descriptions of elements to CSS selectors\n\n## File structure\n\n\n\n  * features/*.feature - the story files you want to run.\n  * support/teardown.js - closes the browser after each scenario\n  * support/testproperties.json - Configuration stuffs\n  * support/world.js - This is the bootstrapper for WebDriverJS, be careful!\n  * step_definitions/generic.js - Good place to keep testwide step definitions, such as \"I click <id>\"\n  * step_definitions/*.js - Other step definitions, ideally you should have a 1-1 relationship between feature file and specific definitions as the complimentary .js file","readmeFilename":"README.md","_id":"hardy@0.0.4","dist":{"shasum":"d94252b7f8828d0862b7dbac9de250008ebb0321","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.4.tgz","integrity":"sha512-JnseGqfv4wfD4YJyyDh+9X6DL6W6xve/G/odr4dXhp7vWP1VuwUAcLXoEQZ219JmQWzwxM96O96o2R6eRyeHpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZpFejhFvZue0vQAC0XIm2OsZ3zX2ViNh7sDT2OyhGogIgAjDOL7ZB/xuO/RfoEeR+J6edoO9vECoOQrcO8r/GvSY="}]},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.5":{"name":"hardy","version":"0.0.5","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1"},"readme":"Hardy\n===\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will place a global command `hardy` in your path and allow you to run it against any test folders on your machine. Hardy includes [Selenium Standalone Server v2.32.0](http://docs.seleniumhq.org/) and [PhantomJS v1.9.0](http://phantomjs.org/) but doesn't expose them globally.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n    hardy selenium start\n      starts up the local selenium server\n    hardy selenium stop\n      stops the local selenium server\n    hardy .\n      run all the tests in the current folder against the default browser (Firefox)\n    hardy --browser=phantomjs .\n      specify the browser to test against\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test against\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test","readmeFilename":"README.md","_id":"hardy@0.0.5","dist":{"shasum":"f6af96fb24caae4973d58c28ff1f4923dc1d21a6","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.5.tgz","integrity":"sha512-C+97E6/KhT7ghe5EjtBdg/GRE43AMDfZOg/vwnxamjdCnN82Ly4Ub4h0P6j4DRyGXIzLhNIk+d3PZTyXkiAZ6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrlsju4EAlOF1zAiwHsqhz37RetiTIPH0OPz/iLwOETAIge40FY3isOGG8fUpKi6qKy3Fw9z8d5oSd9Hl/08q5ur0="}]},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.6":{"name":"hardy","version":"0.0.6","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n","readmeFilename":"README.md","_id":"hardy@0.0.6","dist":{"shasum":"e5db822fb82460336e29f7cf4f3401a9bb95a7dd","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.6.tgz","integrity":"sha512-HVrIUtcvZ24SUL/czavIYRC7vxRZ37uNy12WbqM5m2w1VHN6K7PTijkFQK6TPqHEDeapJ076yhCG1KEqHRV/ZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5w9wDjq42YcQry++QtFfJP98tAzPRQnbX1P5TO6+oVwIgeVn506FSkA2tsva8HJEb5STXhasV85/P9SUtEQP5De0="}]},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.7":{"name":"hardy","version":"0.0.7","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\n(pre-release)\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - sleep 10\n      - firefox --version\n      - phantomjs --version\n\nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n","_id":"hardy@0.0.7","dist":{"shasum":"bb5bb1ccc0673c90187915ef98027fac890964a2","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.7.tgz","integrity":"sha512-v/HhR0s7O9gbffODauwuuFM+hZN3ukqEcsep6NtejOw/HKB04PGDcCQT9XtEEzSy47MQEbab3/jTh0MdKz3uQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrSChN64R4vHJAlc3zEIqF5KivpEANt7LdX2Am+gDgcAiAkMPfah4qM5QZxRE2DAmseWwrU4gtD+hmr6AOCQ1AD5A=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.8":{"name":"hardy","version":"0.0.8","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\n(pre-release)\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - firefox --version\n      - phantomjs --version\n      - grunt server:travis&\n      - sleep 15\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n","readmeFilename":"README.md","_id":"hardy@0.0.8","dist":{"shasum":"1299b44ea133d502d46632ac0b3f1aa2d7b21e59","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.8.tgz","integrity":"sha512-6uFI+/qofIa2vddW+9HB8/Qh7xlWZd/6K4srxHGUv6BeBmWg4Z5pqmmWy81esJzw0Fp8D/frXHwi0G0KThNQ5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH5u0CTd4N/ax2ENXk5aVDyhpv9GiOGLVCqt84/dUVZ2AiA6PA0ILTaKQ1GzRJZlj5ajshxsylxT6MeF2+TU+hbhfQ=="}]},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.9":{"name":"hardy","version":"0.0.9","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\n(pre-release)\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - firefox --version\n      - phantomjs --version\n      - grunt server:travis&\n      - sleep 15\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n","readmeFilename":"README.md","_id":"hardy@0.0.9","dist":{"shasum":"ea0a40a020c1c9f66f8fc9d06e2f6fedf34496f6","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.9.tgz"},"_from":".","_npmVersion":"1.3.1","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.10":{"name":"hardy","version":"0.0.10","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\n(pre-release)\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - firefox --version\n      - phantomjs --version\n      - grunt server:travis&\n      - sleep 15\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n","_id":"hardy@0.0.10","dist":{"shasum":"349d4b7d71ef5536c34983670da634b222a29ee9","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.10.tgz","integrity":"sha512-ssNF1a3MeeQBJOBiHVhOuCGhQjPICMvQBfT0m47nZunKq6JJlyGDl1LS3wnpeDgPmAJENu14JWQQMdiBnh4K+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0EU/Emqjm5/9zKRvCJ6UQyxN6X2uxblxnSk9SxfkqbwIhAIgPdyVjaQ0M+CLJD9qBr8WHMe2ZONhTm2zo/0vGZkd7"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.11":{"name":"hardy","version":"0.0.11","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/GhostStory/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/GhostStory.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9"},"readme":"Hardy\n===\n\n(pre-release)\n\nHardy is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/master/assets/small-logo.png)\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path.\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/GhostStory.png)](https://travis-ci.org/thingsinjars/GhostStory)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - firefox --version\n      - phantomjs --version\n      - grunt server:travis&\n      - sleep 15\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n","_id":"hardy@0.0.11","dist":{"shasum":"05459b771b2624d33af30aaac040c6f74810f6e8","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.11.tgz","integrity":"sha512-+bFdhhDIqXxCT9q6125O5Yr4Zr4neTilT3FXqDH+kExrIHZ7Z99vsIUI55+SpuR47nAnYasrpuD1/N7trU6d3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhyLGTsLSO2evIjmRLHtcCWcpXuAZNAb1Y1wmYRvrM7AiBwWdZGIIChPcsunEG3njbF9asZSRv2/bSgSAwwno1u2w=="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.12":{"name":"hardy","version":"0.0.12","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/Hardy/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9","grunt-contrib-jshint":"~0.6.3"},"readme":"[Hardy](http://hardy.io/)\n===\n\n(The Not-quite-ready-yet release)\n---\n\n_This is almost entirely working but not 100%. If you spot a problem, please [file an issue](https://github.com/thingsinjars/Hardy/issues)._\n\n[Hardy](http://hardy.io/) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/94b2744df96f17020ba17bfcf279ba52907a4abf/assets/small-logo.png)\n\nRead more at [Hardy.io](http://hardy.io/).\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path._\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nTo run Selenium at all, you'll need [Java](http://java.com/en/download/index.jsp).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/Hardy.png)](https://travis-ci.org/thingsinjars/Hardy)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - {BUILD YOUR STATIC SITE HERE}\n      - python -m SimpleHTTPServer&\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n\nFor more detail, read the [continuous integration guide on the Hardy site](http://hardy.io/continuous-integration.html).","_id":"hardy@0.0.12","dist":{"shasum":"675ef9eb9d508af1d3450880ec43de607839ab75","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.12.tgz","integrity":"sha512-wwOuT3MikWPNvRhGr3Tm9kPPWgy6NO+5PAPvApnEhOianhvjhuhoQatWmT/yvM6XmZLG6K+b4X2/6/SD4skydQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC49znLrMQ1TlM6nQDdg+c5kDrhfh9su2XUOBuG+8/mWwIgG7pRnDW9BCjRaAQbu8WO31caeuJ5LBLmigaaC3XEaOk="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"0.0.13":{"name":"hardy","version":"0.0.13","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/Hardy/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test","posttest":"publish"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9","grunt-contrib-jshint":"~0.6.3","publish":"~0.3.2"},"readme":"[Hardy](http://hardy.io/)\n===\n\n(The Not-quite-ready-yet release)\n---\n\n_This is almost entirely working but not 100%. If you spot a problem, please [file an issue](https://github.com/thingsinjars/Hardy/issues)._\n\n[Hardy](http://hardy.io/) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/94b2744df96f17020ba17bfcf279ba52907a4abf/assets/small-logo.png)\n\nRead more at [Hardy.io](http://hardy.io/).\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path._\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nTo run Selenium at all, you'll need [Java](http://java.com/en/download/index.jsp).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/Hardy.png)](https://travis-ci.org/thingsinjars/Hardy)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - {BUILD YOUR STATIC SITE HERE}\n      - python -m SimpleHTTPServer&\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n\nFor more detail, read the [continuous integration guide on the Hardy site](http://hardy.io/continuous-integration.html).","readmeFilename":"README.md","_id":"hardy@0.0.13","dist":{"shasum":"f8c902362e9a96ab7cb2021835d51a8e2d42e59d","tarball":"https://registry.npmjs.org/hardy/-/hardy-0.0.13.tgz","integrity":"sha512-LBCknqOiLpV6oUh3C1kT4am4so4GApufVPoA2WpnGPkNvsUcUN2DuU0JIuVjVbtOgIM9Nj6Lx68McLz3vjX2oQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVBK05pPhmNTYs2UySr1G5Pwg+iNPdq8e7d5qDK5ZTngIhAOF9+W1hxl39hBK5gocNBlERl4EqGFapLDf4xPGq/ZeX"}]},"_npmVersion":"1.1.71","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"1.0.0":{"name":"hardy","version":"1.0.0","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/Hardy/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9","grunt-contrib-jshint":"~0.6.3"},"readme":"[Hardy](http://hardy.io/)\n===\n\n(The Not-quite-ready-yet release)\n---\n\n_This is almost entirely working but not 100%. If you spot a problem, please [file an issue](https://github.com/thingsinjars/Hardy/issues)._\n\n[Hardy](http://hardy.io/) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/94b2744df96f17020ba17bfcf279ba52907a4abf/assets/small-logo.png)\n\nRead more at [Hardy.io](http://hardy.io/).\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path._\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nTo run Selenium at all, you'll need [Java](http://java.com/en/download/index.jsp).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/Hardy.png)](https://travis-ci.org/thingsinjars/Hardy)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - {BUILD YOUR STATIC SITE HERE}\n      - python -m SimpleHTTPServer&\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n\nFor more detail, read the [continuous integration guide on the Hardy site](http://hardy.io/continuous-integration.html).","_id":"hardy@1.0.0","dist":{"shasum":"ae51dfedcf7355ef3238bf8190064ad18efb2f77","tarball":"https://registry.npmjs.org/hardy/-/hardy-1.0.0.tgz","integrity":"sha512-0ph8UDNhT5xYyY7SlZoTLz4V8qbJ30cBTR1OpLStJWR+O/B4MzvmBgbrqDceSzzHYiQVDnSycBjXrVHuuPOnTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCuY0wyBrKv2004sGWUF/ch6t8BJmqzCGSA5U4ewuTnQIgb4Hnb2/kg/btEpAG0KLODCR73pi3nDD///S6X9kV5mY="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"1.0.1":{"name":"hardy","version":"1.0.1","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/Hardy/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9","grunt-contrib-jshint":"~0.6.3"},"readme":"[Hardy](http://hardy.io/)\n===\n\n(The Not-quite-ready-yet release)\n---\n\n_This is almost entirely working but not 100%. If you spot a problem, please [file an issue](https://github.com/thingsinjars/Hardy/issues)._\n\n[Hardy](http://hardy.io/) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/94b2744df96f17020ba17bfcf279ba52907a4abf/assets/small-logo.png)\n\nRead more at [Hardy.io](http://hardy.io/).\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path._\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nTo run Selenium at all, you'll need [Java](http://java.com/en/download/index.jsp).\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/Hardy.png)](https://travis-ci.org/thingsinjars/Hardy)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - {BUILD YOUR STATIC SITE HERE}\n      - python -m SimpleHTTPServer&\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n\nFor more detail, read the [continuous integration guide on the Hardy site](http://hardy.io/continuous-integration.html).","readmeFilename":"README.md","_id":"hardy@1.0.1","dist":{"shasum":"a531df41f5cec10e3a585014d224294a26229553","tarball":"https://registry.npmjs.org/hardy/-/hardy-1.0.1.tgz","integrity":"sha512-3nZx1ujhv8QffwIb4hY7BxyvHJic0p/fN0GOI//2zfiUZ2PUFh8eN1ojsmVLljzn5DGKsC+Qpi5Vky7dmEls1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEd9N5aBFbt8p4mpMDgHiNd+rGq2mAasQ2F8hwkOTSfwIhAI9GDS0Srhp2VHqRgEKH/5wxR9n4bFJfEWLvgC9HaYvc"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]},"1.1.0":{"name":"hardy","version":"1.1.0","description":"A collection of steps to run CSS tests using Cucumber and Selenium","homepage":"http://hardy.io/","bugs":{"url":"https://github.com/thingsinjars/Hardy/issues"},"keywords":["cucumber","selenium","automated","css","test"],"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"bin":{"hardy":"./bin/hardy"},"scripts":{"test":"grunt test"},"licenses":[{"type":"MIT","url":"http://thingsinjars.mit-license.org/"}],"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"dependencies":{"cucumber":"0.3.0","webdriverjs":"0.7.8","phantomjs":"1.9.1-0","win-spawn":"2.0.0","colorlog":"~0.1.1","gm":"1.13.3"},"devDependencies":{"jasmine-node":"1.10.2","mockery":"latest","grunt":"~0.4.1","grunt-jasmine-node":"~0.1.0","grunt-shell":"~0.3.1","grunt-cli":"~0.1.9","grunt-contrib-jshint":"~0.6.3"},"readme":"[Hardy](http://hardy.io/)\n===\n\n(The Not-quite-ready-yet release)\n---\n\n_This is almost entirely working but not 100%. If you spot a problem, please [file an issue](https://github.com/thingsinjars/Hardy/issues)._\n\n[Hardy](http://hardy.io/) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the WebDriverJS bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](https://raw.github.com/thingsinjars/hardy.io/94b2744df96f17020ba17bfcf279ba52907a4abf/assets/small-logo.png)\n\nRead more at [Hardy.io](http://hardy.io/).\n\nInstallation\n---\n\nThe recommended way to install Hardy is via [npm](https://npmjs.org/):\n\n    npm install -g hardy\n\nThis will install Hardy as a global node module and put an executable `hardy` in your path. It will also include a local version of [Selenium v2.32.0]((http://docs.seleniumhq.org/) in case you don't have that already and a local copy of [PhantomJS v1.9.0]((http://phantomjs.org/)) for image diff test processing.\n\n_NOTE: Currently, the local install of PhantomJS will not be available for testing against unless you add it to your path._\n\nFor best results, you'll also need a Selenium–capable browser. Firefox supports the WebDriver protocol by default so without specifying otherwise, tests will be run against Firefox. [PhantomJS](http://phantomjs.org/) also supports WebDriver.\n\nTo run tests against Chrome, you will need to install [ChromeDriver](https://code.google.com/p/selenium/wiki/ChromeDriver).\n\nTo run tests against Internet Explorer, you will need [InternetExplorerDriver](https://code.google.com/p/selenium/wiki/InternetExplorerDriver).\n\nTo run Selenium at all, you'll need [Java](http://java.com/en/download/index.jsp).\n\nFinally, for (significantly) faster visual image compares, install GraphicsMagick.  On OSX:\n\n    brew install graphicsmagick\n\nGetting started\n---\n\nFor full details on how to get started with Hardy, check out the documentation at [hardy.io](http://hardy.io/)\n\nCommands / usage\n---\n\n    hardy init\n      initialises an empty test directory\n\n    hardy selenium start\n      starts the local selenium server (essential before tests)\n\n    hardy selenium stop\n      stops the local selenium server\n\n    hardy .\n      run all the tests in the current folder with the default browser (Firefox)\n\n    hardy --browser=phantomjs .\n      specify the browser to test with\n\n    hardy --browser=phantomjs,chrome .\n      specify multiple browsers to test with\n\nTests\n---\n\nTo verify Hardy is working as it should, unit and acceptance tests are available. They can be run via [Grunt](http://gruntjs.com/) from the project root:\n\n    grunt unit\n    grunt acceptance\n\n    # Or, to run both:\n    grunt test\n    \nThe tests are automatically run on every commit to the main repo. Currently building on Travis CI:\n\n[![Build Status](https://travis-ci.org/thingsinjars/Hardy.png)](https://travis-ci.org/thingsinjars/Hardy)\n\nTravis Integration\n---\n\nTo include Hardy in a Travis CI pipeline, import it as a devDependency:\n\n    npm install --save-dev hardy\n\nAdd the following to your .travis.yml:\n\n    before_script:\n      - export DISPLAY=:99.0\n      - sh -e /etc/init.d/xvfb start\n      - node_modules/hardy/bin/hardy selenium start\n      - {BUILD YOUR STATIC SITE HERE}\n      - python -m SimpleHTTPServer&\n    \nAnd finally, add this to your package.json `scripts` object:\n\n    \"scripts\": {\n      \"test\": \"node_modules/hardy/bin/hardy --browser=firefox,phantom <PATH TO YOUR TEST FOLDER>\"\n    },\n\nFor more detail, read the [continuous integration guide on the Hardy site](http://hardy.io/continuous-integration.html).\n","readmeFilename":"README.md","_id":"hardy@1.1.0","dist":{"shasum":"e355c534a9e2cb1aa281ac0b2cb9d8bb65da9f63","tarball":"https://registry.npmjs.org/hardy/-/hardy-1.1.0.tgz","integrity":"sha512-93H8896ixViRBYXZpiPZbR1dWsA8ZtAXf+TFd8sso8sVkUJgmCbSTGRmMSaAGxmHm1tSdXlgwHvkjwcSEolQXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5wsL6msifZJ+RLMu4Z1bn28Tb18NqlFzufKDPi0aLuAiEA+WKnuUyQaOglA4V2gl0TXtcoLnAKdwpq//E9ztSkPIM="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"thingsinjars","email":"simon@thingsinjars.com"},"maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}]}},"readme":"Hardy\n===\n\nGhostStory 2: The Ghostening\n---\n\nHardy (formerly GhostStory) is a collection of CSS testing steps and a boilerplate testing setup to get you up-and-running with automated CSS testing as quickly as possible. Tests are written in Cucumber and use Selenium. Hardy runs on Node.js and therefore all the example CSS test helpers are written in JS. The functionality behind them can easily be reused in any test setup, whether your tests are written in Java, Ruby or anything else.\n\nThis is a refactor of the original GhostStory project to run against Selenium using WebDriverJS. The original collection of CSS testing steps were written specifically for CasperJS and PhantomJS but now that PhantomJS supports the WebDriver protocol, we're now going via Selenium so that tests can be run against any browser.\n\nThe structure of this project and the webdriverjs bindings are from [WebDriverJS](https://github.com/camme/webdriverjs).\n\n![image](extra/assets/small-logo.png)\n\nDependencies\n---\n\n### Selenium\n\nMakes the whole thing go.\n\n### PhantomJS\n\nAside from being extremely handy as a potential test browser, GhostStory relies on PhantomJS for its image processing. If you aren't planning on doing any image diff tests, you can skip it.\n\n---\n\n## CSS test steps available:\n\n### `Then \"element\" should have \"CSS property\" of \"value\"`\n\nMeasures the current value of the property and asserts against the expected value\n\n### `Then \"element\" should have \"CSS property\" of [more|greater|less] than \"value\"`\n\nMeasures the current value of the property and compares against the expected value\n\n### `Then \"element\" should look the same as before`\n\nRenders an image of the element for image diff testing. The first time this step is used, it will fail and generate a base reference image.\n\n## CSS test steps to be made:\n\n### `Then \"element\" should have \"CSS property\" of \"value\" or \"value\" [or \"value\"]*`\n\n## General steps available:\n\n### `Given the window size is \"width\" by \"height\"`\n\n### `Given I visit \"(https?:\\/\\/.*\\..*)\"`\n\n### `When I enter \"text\" into \"selector\"`\n\n### `When I submit the form \"selector\"`\n\n### `Then I should see \"text\" in the element \"selector\"`\n\nThere are obviously many more generic steps missed but they should be straightforward to add.\n\n## Custom Steps\n\nAdd these in a module in the `features/step_definitions` folder.\n\n\nUsing\n===\n\nStart selenium\n\n    java -jar bin/selenium-server-standalone-2.32.0.jar\n\nThis should work with any recent version of Selenium. I've only tested with 2.32 so far.\n\nSpecify test properties in the file `features/support/testproperties.js` or explicitly on the command-line.\n\n    ./node_modules/cucumber/bin/cucumber.js --browser=phantomjs\n    ./node_modules/cucumber/bin/cucumber.js --browser=chrome\n    ./node_modules/cucumber/bin/cucumber.js --browser='internet explorer'\n\nNote: If you want to test in chrome, you'll also need the ChromeDriver package. Consult the Selenium wiki for more.\n\nUses the selectors/selectors.js files to map human descriptions of elements to CSS selectors\n\n## File structure\n\n\n\n  * features/*.feature - the story files you want to run.\n  * support/teardown.js - closes the browser after each scenario\n  * support/testproperties.json - Configuration stuffs\n  * support/world.js - This is the bootstrapper for WebDriverJS, be careful!\n  * step_definitions/generic.js - Good place to keep testwide step definitions, such as \"I click <id>\"\n  * step_definitions/*.js - Other step definitions, ideally you should have a 1-1 relationship between feature file and specific definitions as the complimentary .js file","maintainers":[{"name":"thingsinjars","email":"simon@thingsinjars.com"}],"time":{"modified":"2022-07-13T13:20:38.528Z","created":"2013-07-07T19:14:19.250Z","0.0.2":"2013-07-07T19:14:21.484Z","0.0.3":"2013-07-09T20:43:51.227Z","0.0.4":"2013-07-18T11:51:33.844Z","0.0.5":"2013-07-19T13:31:15.262Z","0.0.6":"2013-07-22T11:26:30.936Z","0.0.7":"2013-07-29T19:09:33.829Z","0.0.8":"2013-07-30T10:09:47.071Z","0.0.9":"2013-08-05T15:40:28.269Z","0.0.10":"2013-08-05T19:30:41.242Z","0.0.11":"2013-08-18T18:36:17.708Z","0.0.12":"2013-09-20T19:52:04.929Z","0.0.13":"2013-10-10T20:04:43.317Z","1.0.0":"2013-10-20T17:41:51.137Z","1.0.1":"2013-10-23T19:52:16.108Z","1.1.0":"2013-11-13T08:49:43.417Z"},"author":{"name":"Simon Madine","email":"simon@thingsinjars.com","url":"http://thingsinjars.com"},"repository":{"type":"git","url":"https://github.com/thingsinjars/Hardy.git"},"users":{"nano":true}}