roadkill 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 85e0c6c220f25d47678c6c18427bdfcfce037331
4
+ data.tar.gz: 485f6ba15b7ab7bba4f8f53e51e821aa16340311
5
+ SHA512:
6
+ metadata.gz: 2e2e10e07f783241667061c44adae22a066c507f8667d006c6b40d0348dafb7c12973fc92a0d884c96da63ae97afc1259fc464ea212f7a5aedf86ebe6d17db3d
7
+ data.tar.gz: 90cf71985fedfd2f5736f189a4de8de86561e9b570eb2308f1cb0fad35aa44737c934f91bccfc2a8f36ce943b05b487bf4d2f35b34ac7c2aa4e0d95a7d480e4a
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .DS_Store
19
+ .idea/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in roadkill.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Agape Red
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,88 @@
1
+ # Roadkill
2
+
3
+ ##TL;DR:
4
+ This gem lets you easily install [Capybara](https://github.com/jnicklas/capybara) with [PhantomJS](https://github.com/ariya/phantomjs) and easily use them from *any* web application project directory so that you can start writing tests for your web application's pages right away.
5
+
6
+ If you're new to acceptance testing, it even includes sample tests and a tiny app to get you started playing with it!
7
+
8
+ ##Description:
9
+
10
+ Testing the web pages that your application displays to your users is important, no matter how the technology you work with creates and serves them. Whether its a dynamic database-driven application or a blog being statically generated from time to time, any site can benefit from tests that will spot problems before your visitors see them.
11
+
12
+ When it comes to writing acceptance tests, Rails developers have excellent gems that make using tools like Capybara or Cucumber easy when keeping the page-level behavior of their features well covered and up-to-date. But what about PHP, Python, JavaScript, or Java devs? Heck, what about plain old static HTML?
13
+
14
+ The purpose of this gem is to bring a similar level of ease in adding acceptance tests to *any* web development project, regardless of the stack being used. The gem painlessly brings together [Capybara](https://github.com/jnicklas/capybara) for headless Webkit testing with [PhantomJS](https://github.com/ariya/phantomjs) for JavaScript support through the [Poltergeist](https://github.com/jonleighton/poltergeist) driver. It includes a tiny example web app for trying out the tools with a couple of sample test specs.
15
+
16
+ After installing the gem and pointing the spec_helper file to the address and/or port number of your web application, you'll easily be able to start adding your own test specs that can navigate your site, detect content on a page, click on links, and interact with your UI elements. Sleep better at night, knowing that your site is wrapped up in a warm security blanket of automated scrutiny.
17
+
18
+ ##Installation:
19
+ ```gem install roadkill```
20
+
21
+ Roadkill uses the headless browser [phantomjs](http://phantomjs.org/) to run your tests. If you need to install [phantomjs](http://phantomjs.org/), you can do so directly with roadkill:
22
+
23
+ ```roadkill install_phantomjs```
24
+
25
+ The installer will ask whether you want to use the 32 or 64 bit version of phantomjs.
26
+
27
+ ##Sample Application:
28
+ Roadkill contains a sample rack application to show you how to use an acceptance test suite with a live application. Although we used rack for the application, please keep in mind that the app could be written in anything - node, PHP, or even ...(*cringe* java).
29
+
30
+ To see the sample app, run:
31
+
32
+ ```roadkill sample_app```
33
+
34
+ This will create a directory called *sample_app*. To run the acceptance tests for this app, you will first need to bundle install the gems:
35
+
36
+ ```cd sample_app/tests && bundle install && cd ..```
37
+
38
+ The gems necessary to test your site are now installed. Let's start the rack application.
39
+
40
+ ```rackup config.ru```
41
+
42
+ Awesome! We now have a simple application running. You should be able to visit http://localhost:9292 , and see a simple application.
43
+
44
+ We have some basic acceptance tests already written for the app. Let's run these tests.
45
+
46
+ ```cd tests```
47
+
48
+ ```rspec spec```
49
+
50
+ Yay! Passing tests! Roadkill is actually *interacting* with the app through the phantomjs browser.
51
+
52
+ ##Usage:
53
+ Once you're ready to create tests for your own project, it's as simple as running a generator within the project directory of your choice. Enter your project directory:
54
+
55
+ ```cd your_project```
56
+
57
+ Let's ask roadkill to generate the *tests* directory, where everything will be contained. The command will ask you for some information about your site in order to start testing properly.
58
+
59
+ ```roadkill generate```
60
+
61
+ Excellent. We now have a place to store acceptance tests. Let's get all the gems installed:
62
+
63
+ ```bundle install```
64
+
65
+ Go ahead and create some [capybara](https://github.com/jnicklas/capybara) tests in the *acceptance* directory. Anything in the "acceptance" directory that ends with "_spec.rb" will be run. You can now run the tests against your site:
66
+
67
+ ```rspec spec```
68
+
69
+ You now have a method for running simple, powerful tests against your site.
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ ## Contributing
83
+
84
+ 1. Fork it
85
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
86
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
87
+ 4. Push to the branch (`git push origin my-new-feature`)
88
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env ruby
2
+ require "rubygems" # ruby1.9 doesn't "require" it though
3
+ require "thor"
4
+
5
+ class Roadkill < Thor
6
+ include Thor::Actions
7
+ def self.source_root
8
+ File.dirname(__FILE__)
9
+ end
10
+
11
+ TEST_DIR = "tests"
12
+ SAMPLE_APP_DIR = "sample_app"
13
+
14
+ DEFAULT_ENVIRONMENT_URL = "http://localhost:80"
15
+ DEFAULT_DATABASE_ENCODING = "utf-8"
16
+ # Generate files, dirs, and sample files
17
+ desc "generate", "Generate the files to start testing your application."
18
+ def generate
19
+ config = {
20
+ database: {},
21
+ environment:{}
22
+ }
23
+ if yes?("Would you like to setup your tests to connect to your development database?")
24
+ config[:database][:hostname] = ask "What is your database host?"
25
+ config[:database][:adapter] = get_adapter_from ask("What is your database adapter? (MySQL, PostgreSQL, and SQLite3 are best supported)").downcase
26
+ config[:database][:database] = ask "What is your database name?"
27
+ config[:database][:username] = ask "What is your database username?"
28
+ config[:database][:password] = ask "What is your database password?"
29
+
30
+ encoding = ask "What is your database encoding? (default is #{DEFAULT_DATABASE_ENCODING})"
31
+ encoding = DEFAULT_DATABASE_ENCODING if encoding == ""
32
+ config[:database][:encoding] = encoding
33
+ end
34
+
35
+ uri_port = ask "What is your development URI:Port (default is #{DEFAULT_ENVIRONMENT_URL})?"
36
+ uri_port = DEFAULT_ENVIRONMENT_URL if uri_port == ""
37
+ unless uri_port.match /^http/
38
+ uri_port = "http://#{uri_port}"
39
+ end
40
+
41
+ config[:environment][:uri_port] = uri_port
42
+
43
+ generate_from config
44
+ end
45
+
46
+ # Generate a sample rack app
47
+ desc "sample_app", "Generate a sample rack app."
48
+ def sample_app
49
+ empty_directory self.class::SAMPLE_APP_DIR
50
+ sample_app_config = {
51
+ database:{}, # No database on the sample app
52
+ environment: {
53
+ uri_port: "http://localhost:9292"
54
+ }
55
+ }
56
+
57
+ directory "../files/sample_app", "#{self.class::SAMPLE_APP_DIR}"
58
+ generate_from sample_app_config, self.class::SAMPLE_APP_DIR + "/tests"
59
+
60
+ say "Your sample app has been generated!"
61
+ say "To get things working, you'll first need to bundle install in the tests dir:"
62
+ say " pushd sample_app/tests"
63
+ say " bundle install"
64
+ say " popd"
65
+ say "Alternatively, here is a one-liner that will do the same thing:"
66
+ say " cd sample_app/tests && bundle install ; cd ../.."
67
+ say ""
68
+ say "Once this is complete, you may run the rack application with:"
69
+ say " cd sample_app"
70
+ say " rackup config.ru -D"
71
+ say ""
72
+ say "You can then run the tests with:"
73
+ say " cd tests"
74
+ say " rspec spec"
75
+ end
76
+
77
+ # Install phantomjs
78
+ desc "install_phantomjs", "Install PhantomJS - provide 32bit or 64bit to identify which version to install."
79
+ def install_phantomjs
80
+ version = ask("What version of phantomjs would you like to install?", limited_to: ["32","64"])
81
+ sudo = yes?("Can we run the commands as sudo?") ? "sudo" : ""
82
+
83
+ file = (version == "32") ?
84
+ "phantomjs-1.9.1-linux-i686":
85
+ "phantomjs-1.9.1-linux-x86_64"
86
+
87
+ say "Installing phantom js #{version} bit"
88
+ say "First, we're going to make sure you have some dependencies."
89
+ run("#{sudo} apt-get install fontconfig bzip2 tar")
90
+ run("wget https://phantomjs.googlecode.com/files/#{file}.tar.bz2")
91
+ run("bunzip2 #{file}.tar.bz2")
92
+ run("tar -xf #{file}.tar")
93
+ run("#{sudo} mv #{file}/bin/phantomjs /usr/local/bin/")
94
+ run("rm #{file}.tar #{file}/ -rf")
95
+
96
+ say "Phantom JS #{version} bit installed."
97
+ end
98
+
99
+ private
100
+ def get_adapter_from(database)
101
+ adapter = database
102
+ adapter = "mysql2" if adapter == "mysql"
103
+ adapter
104
+ end
105
+
106
+ # Return the correct database gem for the given adapter
107
+ def get_adapter_gem_from(adapter)
108
+ gem = adapter
109
+ gem = "pg" if adapter == "postgresql"
110
+ gem
111
+ end
112
+
113
+ def generate_from(config, tests_dir = nil)
114
+ tests_dir ||= self.class::TEST_DIR
115
+ config[:gemfile] ||= {}
116
+ use_database = (config[:database] and config[:database] != {})
117
+
118
+ if use_database
119
+ gem = get_adapter_gem_from config[:database][:adapter]
120
+ config[:gemfile][:database_gem] = "# This gem is the adapter we detected for your database connection.\ngem '#{gem}'"
121
+ end
122
+
123
+
124
+ empty_directory tests_dir
125
+ directory "../files/generate/ready", "#{tests_dir}"
126
+
127
+ template "../files/generate/templates/Gemfile.tt", "#{tests_dir}/Gemfile", config[:gemfile]
128
+ if use_database
129
+ template "../files/generate/templates/database.yml.tt", "#{tests_dir}/database.yml", config[:database]
130
+ end
131
+ template "../files/generate/templates/spec_helper.rb.tt", "#{tests_dir}/spec_helper.rb", config[:environment]
132
+
133
+ say ""
134
+ say "Your testing suite is ready! You can now make tests in the 'integration' directory."
135
+ say ""
136
+ if use_database
137
+ say "Note: since you entered database information, we created a '.gitignore' file in the tests directory which will ignore the database.yml file by default. This is to prevent accidentally committing your database information to your repository."
138
+ say ""
139
+ say "In case you accidentally delete your database.yml file, we left a sample file named 'database.yml.sample' which will help you recreate your database.yml."
140
+ end
141
+ end
142
+ end
143
+
144
+ Roadkill.start
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1 @@
1
+ database.yml
@@ -0,0 +1,8 @@
1
+ database:
2
+ hostname:
3
+ adapter:
4
+ encoding:
5
+ database:
6
+ username:
7
+ password:
8
+
@@ -0,0 +1,55 @@
1
+ require 'yaml'
2
+
3
+ class ActiveRecordConnect
4
+ attr_accessor :database
5
+
6
+ def validate
7
+ %w[adapter database].each do |key|
8
+ if @database[key].nil? or @database[key].empty?
9
+ error_message "If you would like to connect to the database, please populate #{File.expand_path(File.dirname(__FILE__))}/database.yml ."
10
+ return false
11
+ end
12
+ end
13
+ end
14
+
15
+ def get_database_information
16
+ @database = YAML.load_file('database.yml')['database']
17
+ end
18
+
19
+ def connect
20
+ get_database_information
21
+ validate
22
+ connect!
23
+ end
24
+
25
+ def error_message(message)
26
+ puts "=" * 50
27
+ puts message
28
+ puts "=" * 50
29
+ end
30
+
31
+ def connection_data
32
+ connection = {}
33
+ connection[:adapter] = @database["adapter"] if @database["adapter"]
34
+ connection[:host] = @database["host"] if @database["host"]
35
+ connection[:username] = @database["username"] if @database["username"]
36
+ connection[:password] = @database["password"] if @database["password"]
37
+ connection[:datababase] = @database["database"] if @database["database"]
38
+ connection
39
+ end
40
+
41
+ def connect!
42
+ puts "Connect with #{connection_data.inspect}"
43
+ begin
44
+ ActiveRecord::Base.establish_connection( connection_data )
45
+ rescue Exception => e
46
+ error_message("It appears that your database information is invalid.
47
+ \rPlease check your configuration in #{File.expand_path(File.dirname(__FILE__))}/database.yml .
48
+ \rSee the error message below for more information.\r
49
+ \r\r\r#{e.message}")
50
+
51
+ end
52
+ end
53
+ end
54
+
55
+ ActiveRecordConnect.new.connect
@@ -0,0 +1,8 @@
1
+ require './spec_helper.rb'
2
+
3
+ feature "Home page" do
4
+ scenario "user visits the home page" do
5
+ visit "/"
6
+ page.should have_content "Welcome!"
7
+ end
8
+ end
@@ -0,0 +1,2 @@
1
+
2
+ Dir["integration/*_spec.rb"].each { |f| require_relative f}
@@ -0,0 +1,11 @@
1
+
2
+ source 'http://rubygems.org'
3
+
4
+ <%= config[:database_gem] %>
5
+
6
+ # These gems are required to run the tests
7
+ gem 'poltergeist'
8
+ gem 'capybara'
9
+ gem 'rspec'
10
+ gem 'activerecord'
11
+ gem 'pry'
@@ -0,0 +1,8 @@
1
+ database:
2
+ hostname: <%= config[:hostname] %>
3
+ adapter: <%= config[:adapter] %>
4
+ encoding: <%= config[:encoding] %>
5
+ database: <%= config[:database] %>
6
+ username: <%= config[:username] %>
7
+ password: <%= config[:password] %>
8
+
@@ -0,0 +1,15 @@
1
+
2
+ require 'capybara/rspec'
3
+ require 'capybara/poltergeist'
4
+ require 'active_record'
5
+ require 'pry'
6
+ require './db_connect'
7
+
8
+
9
+
10
+ include Capybara::DSL
11
+ Capybara.javascript_driver = Capybara.default_driver = :poltergeist
12
+ # Please enter the URL which your app can be accessed.
13
+
14
+ Capybara.app_host = "<%= config[:uri_port] %>"
15
+ Capybara.run_server = false
@@ -0,0 +1,2 @@
1
+ load 'todo_app.rb'
2
+ run TodoApp.new
@@ -0,0 +1,30 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <style type="text/css">
5
+ .hidden{
6
+ display: none;
7
+ }
8
+ </style>
9
+ </head>
10
+ <body>
11
+ <div id="login">
12
+ Please login.
13
+ <input id="email" type="name" name="email" placeholder="email" />
14
+ <input id="password" type="password" name="password" />
15
+ <input id="submit" type="submit" value="Login" />
16
+ </div>
17
+ <div id="logged-in" class="hidden">
18
+ You have been successfully logged in!
19
+ </div>
20
+ <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
21
+ <script type="text/javascript">
22
+ $('#submit').on('click', function(){
23
+ $('#login').hide();
24
+ $('#logged-in').show();
25
+ });
26
+ </script>
27
+
28
+ </body>
29
+ </html>
30
+
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,15 @@
1
+ load './spec_helper.rb'
2
+
3
+ feature "Homepage" do
4
+ scenario "user visits the homepage" do
5
+ visit "/"
6
+ page.should have_content "Please login."
7
+ end
8
+ scenario "user logs in with valid information" do
9
+ visit "/"
10
+ fill_in :email, with: "someone@example.com"
11
+ fill_in :password, with: "password"
12
+ click_button :submit
13
+ page.should have_content "You have been successfully logged in!"
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ class TodoApp
2
+ def call env
3
+ html = File.open("home.html", "rb")
4
+ [200, {"Content-Type" => "text/html"}, [html.read]]
5
+ end
6
+ end
@@ -0,0 +1,18 @@
1
+ require './spec_helper.rb'
2
+
3
+ feature "View the welcome page" do
4
+ scenario "user sees the welcome page" do
5
+ visit "/"
6
+ expect(page).to have_css '.links'
7
+ end
8
+ scenario "user clicks the todos link" do
9
+ visit "/"
10
+ click_link 'View todos'
11
+ page.should have_content "Your todos"
12
+ end
13
+ scenario "user clicks the alert link" do
14
+ visit "/"
15
+ click_link "Alert"
16
+ page.should have_content "you clicked the alert link!"
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ require "roadkill/version"
2
+
3
+ module Roadkill
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,3 @@
1
+ module Roadkill
2
+ VERSION = "0.0.1"
3
+ end
File without changes
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'roadkill/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "roadkill"
8
+ spec.version = Roadkill::VERSION
9
+ spec.authors = ["Agape Red"]
10
+ spec.email = ["roadkill@agapered.com"]
11
+ spec.description = %q{External web testing}
12
+ spec.summary = %q{This gem allows you to do external testing on any web application - regardless of the language that the application was written in.}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_dependency "thor"
24
+ spec.add_dependency "activerecord"
25
+ spec.add_dependency "capybara"
26
+ spec.add_dependency "poltergeist"
27
+ spec.add_dependency "rspec"
28
+ end
@@ -0,0 +1,15 @@
1
+ #! /bin/bash
2
+
3
+ echo "Installing phantom js 64 bit"
4
+
5
+ sudo apt-get install fontconfig
6
+
7
+ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2
8
+
9
+ bunzip2 phantomjs-1.9.0-linux-x86_64.tar.bz2
10
+ tar -xf phantomjs-1.9.0-linux-x86_64.tar
11
+
12
+ sudo mv phantomjs-1.9.0-linux-x86_64/bin/phantomjs /usr/bin/
13
+
14
+ rm phantomjs-1.9.0-linux-x86_64.tar phantomjs-1.9.0-linux-x86_64/ -rf
15
+
data/spec ADDED
@@ -0,0 +1,2 @@
1
+
2
+ Dir["integration/*_spec.rb"].each { |f| require_relative f}
@@ -0,0 +1,21 @@
1
+
2
+ #require 'capybara/mechanize'
3
+ require 'capybara/rspec'
4
+ require 'capybara/poltergeist'
5
+ require 'active_record'
6
+ require 'pry'
7
+ require './models'
8
+
9
+ ActiveRecord::Base.establish_connection({
10
+ adapter: :postgresql,
11
+ host: "localhost",
12
+ username: "postgres",
13
+ password: "password",
14
+ datababase: "integration_testing"
15
+ })
16
+
17
+ include Capybara::DSL
18
+ Capybara.javascript_driver = Capybara.default_driver = :poltergeist
19
+ Capybara.app_host = "http://localhost:3000"
20
+ Capybara.run_server = false
21
+
@@ -0,0 +1,13 @@
1
+ TODOS
2
+
3
+ package as gem and release on rubygems
4
+
5
+ testing
6
+ =======
7
+ make sure that mysql and postgres connections will work
8
+ - they may not be using the correct gems and adapter information.
9
+ - if they are not working, fix the "gemfile" entries in the generate method in the roadkill bin
10
+
11
+ low priority
12
+ ============
13
+ specifics for database.yml generation, such as "pool" and "reconnect" for mysql
metadata ADDED
@@ -0,0 +1,174 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roadkill
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Agape Red
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activerecord
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: capybara
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: poltergeist
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: External web testing
112
+ email:
113
+ - roadkill@agapered.com
114
+ executables:
115
+ - roadkill
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - Gemfile
121
+ - Gemfile.lock
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - bin/roadkill
126
+ - files/generate/.rspec
127
+ - files/generate/ready/.gitignore
128
+ - files/generate/ready/database.yml.sample
129
+ - files/generate/ready/db_connect.rb
130
+ - files/generate/ready/integration/sample_spec.rb
131
+ - files/generate/ready/spec
132
+ - files/generate/templates/Gemfile.tt
133
+ - files/generate/templates/database.yml.tt
134
+ - files/generate/templates/spec_helper.rb.tt
135
+ - files/sample_app/config.ru
136
+ - files/sample_app/home.html
137
+ - files/sample_app/tests/.rspec
138
+ - files/sample_app/tests/integration/homepage_spec.rb
139
+ - files/sample_app/todo_app.rb
140
+ - integration/welcome_spec.rb
141
+ - lib/roadkill.rb
142
+ - lib/roadkill/version.rb
143
+ - models.rb
144
+ - roadkill.gemspec
145
+ - setup/install_phantomjs_64bit.sh
146
+ - spec
147
+ - spec_helper.rb
148
+ - todos.txt
149
+ homepage: ''
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 2.0.5
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: This gem allows you to do external testing on any web application - regardless
173
+ of the language that the application was written in.
174
+ test_files: []