summaryrefslogtreecommitdiff
path: root/spec/data
diff options
context:
space:
mode:
authorSeth Chisamore <schisamo@opscode.com>2012-10-30 10:39:35 -0400
committerSeth Chisamore <schisamo@opscode.com>2012-10-30 10:39:35 -0400
commit24dc69a9a97e82a6e4207de68d6dcc664178249b (patch)
tree19bb289c9f88b4bbab066bc56b95d6d222fd5c35 /spec/data
parent9348c1c9c80ee757354d624b7dc1b78ebc7605c4 (diff)
downloadchef-24dc69a9a97e82a6e4207de68d6dcc664178249b.tar.gz
[OC-3564] move core Chef to the repo root \o/ \m/
The opscode/chef repository now only contains the core Chef library code used by chef-client, knife and chef-solo!
Diffstat (limited to 'spec/data')
-rw-r--r--spec/data/bad-config.rb1
-rw-r--r--spec/data/big_json.json1
-rw-r--r--spec/data/big_json_plus_one.json1
-rw-r--r--spec/data/bootstrap/test-hints.erb12
-rw-r--r--spec/data/bootstrap/test.erb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/README.rdoc3
-rw-r--r--spec/data/cb_version_cookbooks/tatft/attributes/default.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/providers/lwp.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/recipes/default.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/resources/lwr.rb1
-rw-r--r--spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb0
-rw-r--r--spec/data/checksum/random.txt1
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-00
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-01
-rw-r--r--spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-01
-rw-r--r--spec/data/config.rb6
-rw-r--r--spec/data/cookbooks/angrybash/recipes/default.rb8
-rw-r--r--spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl2
-rw-r--r--spec/data/cookbooks/apache2/recipes/default.rb3
-rw-r--r--spec/data/cookbooks/borken/recipes/default.rb2
-rw-r--r--spec/data/cookbooks/borken/templates/default/borken.erb2
-rw-r--r--spec/data/cookbooks/chefignore6
-rw-r--r--spec/data/cookbooks/java/files/default/java.response2
-rw-r--r--spec/data/cookbooks/openldap/attributes/default.rb16
-rw-r--r--spec/data/cookbooks/openldap/attributes/smokey.rb1
-rw-r--r--spec/data/cookbooks/openldap/definitions/client.rb5
-rw-r--r--spec/data/cookbooks/openldap/definitions/server.rb5
-rw-r--r--spec/data/cookbooks/openldap/files/default/.dotfile1
-rw-r--r--spec/data/cookbooks/openldap/files/default/.ssh/id_rsa1
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir1
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt3
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt3
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile1
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt3
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt3
-rw-r--r--spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt3
-rw-r--r--spec/data/cookbooks/openldap/recipes/default.rb3
-rw-r--r--spec/data/cookbooks/openldap/recipes/gigantor.rb3
-rw-r--r--spec/data/cookbooks/openldap/recipes/one.rb15
-rw-r--r--spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb1
-rw-r--r--spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb1
-rw-r--r--spec/data/cookbooks/openldap/templates/default/test.erb1
-rw-r--r--spec/data/definitions/test.rb5
-rw-r--r--spec/data/environment-config.rb5
-rw-r--r--spec/data/fileedit/blank0
-rw-r--r--spec/data/fileedit/hosts4
-rw-r--r--spec/data/gems/chef-integration-test-0.1.0.gembin0 -> 7680 bytes
-rw-r--r--spec/data/kitchen/chefignore6
-rw-r--r--spec/data/kitchen/openldap/attributes/default.rb3
-rw-r--r--spec/data/kitchen/openldap/attributes/robinson.rb3
-rw-r--r--spec/data/kitchen/openldap/definitions/client.rb3
-rw-r--r--spec/data/kitchen/openldap/definitions/drewbarrymore.rb3
-rw-r--r--spec/data/kitchen/openldap/recipes/gigantor.rb3
-rw-r--r--spec/data/kitchen/openldap/recipes/ignoreme.rb3
-rw-r--r--spec/data/kitchen/openldap/recipes/woot.rb3
-rw-r--r--spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb0
-rw-r--r--spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb0
-rw-r--r--spec/data/knife_subcommand/test_explicit_category.rb7
-rw-r--r--spec/data/knife_subcommand/test_name_mapping.rb4
-rw-r--r--spec/data/knife_subcommand/test_yourself.rb13
-rw-r--r--spec/data/lwrp/providers/buck_passer.rb3
-rw-r--r--spec/data/lwrp/providers/buck_passer_2.rb10
-rw-r--r--spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb16
-rw-r--r--spec/data/lwrp/providers/monkey_name_printer.rb5
-rw-r--r--spec/data/lwrp/providers/paint_drying_watcher.rb7
-rw-r--r--spec/data/lwrp/providers/thumb_twiddler.rb7
-rw-r--r--spec/data/lwrp/resources/bar.rb1
-rw-r--r--spec/data/lwrp/resources/foo.rb3
-rw-r--r--spec/data/lwrp/resources_with_default_attributes/nodeattr.rb1
-rw-r--r--spec/data/lwrp_override/providers/buck_passer.rb10
-rw-r--r--spec/data/lwrp_override/resources/foo.rb4
-rw-r--r--spec/data/metadata/quick_start/metadata.rb19
-rw-r--r--spec/data/nodes/default.rb15
-rw-r--r--spec/data/nodes/test.example.com.rb17
-rw-r--r--spec/data/nodes/test.rb15
-rw-r--r--spec/data/object_loader/environments/test.json5
-rw-r--r--spec/data/object_loader/environments/test.rb2
-rw-r--r--spec/data/object_loader/environments/test_json_class.json6
-rw-r--r--spec/data/object_loader/nodes/test.json5
-rw-r--r--spec/data/object_loader/nodes/test.rb2
-rw-r--r--spec/data/object_loader/nodes/test_json_class.json6
-rw-r--r--spec/data/object_loader/roles/test.json5
-rw-r--r--spec/data/object_loader/roles/test.rb2
-rw-r--r--spec/data/object_loader/roles/test_json_class.json6
-rw-r--r--spec/data/old_home_dir/my-dot-emacs0
-rw-r--r--spec/data/old_home_dir/my-dot-vim0
-rw-r--r--spec/data/recipes/test.rb7
-rw-r--r--spec/data/remote_directory_data/remote_dir_file.txt1
-rw-r--r--spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt1
-rw-r--r--spec/data/remote_file/nyan_cat.pngbin0 -> 15202 bytes
-rw-r--r--spec/data/run_context/cookbooks/test/attributes/george.rb1
-rw-r--r--spec/data/run_context/cookbooks/test/definitions/new_animals.rb9
-rw-r--r--spec/data/run_context/cookbooks/test/definitions/new_cat.rb5
-rw-r--r--spec/data/run_context/cookbooks/test/recipes/default.rb5
-rw-r--r--spec/data/run_context/cookbooks/test/recipes/one.rb7
-rw-r--r--spec/data/run_context/cookbooks/test/recipes/two.rb7
-rw-r--r--spec/data/run_context/nodes/run_context.rb5
-rw-r--r--spec/data/search_queries_to_transform.txt98
-rw-r--r--spec/data/ssl/5e707473.018
-rw-r--r--spec/data/ssl/chef-rspec.cert27
-rw-r--r--spec/data/ssl/chef-rspec.key27
-rw-r--r--spec/data/ssl/key.pem15
-rw-r--r--spec/data/ssl/private_key.pem27
-rw-r--r--spec/data/ssl/private_key_with_whitespace.pem32
-rw-r--r--spec/data/templates/seattle.txt1
122 files changed, 674 insertions, 0 deletions
diff --git a/spec/data/bad-config.rb b/spec/data/bad-config.rb
new file mode 100644
index 0000000000..5477a69366
--- /dev/null
+++ b/spec/data/bad-config.rb
@@ -0,0 +1 @@
+monkey_soup("tastes nice") \ No newline at end of file
diff --git a/spec/data/big_json.json b/spec/data/big_json.json
new file mode 100644
index 0000000000..8e095bc148
--- /dev/null
+++ b/spec/data/big_json.json
@@ -0,0 +1 @@
+{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":"test"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
diff --git a/spec/data/big_json_plus_one.json b/spec/data/big_json_plus_one.json
new file mode 100644
index 0000000000..973f7fae50
--- /dev/null
+++ b/spec/data/big_json_plus_one.json
@@ -0,0 +1 @@
+{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":{"key":"test"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
diff --git a/spec/data/bootstrap/test-hints.erb b/spec/data/bootstrap/test-hints.erb
new file mode 100644
index 0000000000..29ba710b42
--- /dev/null
+++ b/spec/data/bootstrap/test-hints.erb
@@ -0,0 +1,12 @@
+<%# Generate Ohai Hints -%>
+<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
+mkdir -p /etc/chef/ohai/hints
+<% end -%>
+
+<% @chef_config[:knife][:hints].each do |name, hash| -%>
+(
+cat <<'EOP'
+<%= hash.to_json %>
+EOP
+) > /etc/chef/ohai/hints/<%= name %>.json
+<% end -%>
diff --git a/spec/data/bootstrap/test.erb b/spec/data/bootstrap/test.erb
new file mode 100644
index 0000000000..7cdc7dfdd0
--- /dev/null
+++ b/spec/data/bootstrap/test.erb
@@ -0,0 +1 @@
+<%= first_boot.to_json %> \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/README.rdoc b/spec/data/cb_version_cookbooks/tatft/README.rdoc
new file mode 100644
index 0000000000..460d96b40d
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/README.rdoc
@@ -0,0 +1,3 @@
+= THIS RECIPE
+* is for testing CookbookLoader/CookbookVersion
+* has at least one of every kind of file that cookbooks can have \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/attributes/default.rb b/spec/data/cb_version_cookbooks/tatft/attributes/default.rb
new file mode 100644
index 0000000000..47774459c2
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/attributes/default.rb
@@ -0,0 +1 @@
+#one_of_each default attributes
diff --git a/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb b/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb
new file mode 100644
index 0000000000..3912b37365
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/definitions/runit_service.rb
@@ -0,0 +1 @@
+# IRL the runit_service is a definition to set up runit services \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz b/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz
new file mode 100644
index 0000000000..3e7496601e
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/files/default/giant_blob.tgz
@@ -0,0 +1 @@
+# not really a giant blob # \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb b/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb
new file mode 100644
index 0000000000..fea05ba67b
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/libraries/ownage.rb
@@ -0,0 +1 @@
+# 0wnage \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb b/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb
new file mode 100644
index 0000000000..977ad19192
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/providers/lwp.rb
@@ -0,0 +1 @@
+# a LWP \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/recipes/default.rb b/spec/data/cb_version_cookbooks/tatft/recipes/default.rb
new file mode 100644
index 0000000000..48eacf848b
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/recipes/default.rb
@@ -0,0 +1 @@
+# the default recipe \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb b/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb
new file mode 100644
index 0000000000..987114f4ca
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/resources/lwr.rb
@@ -0,0 +1 @@
+# a LWR # \ No newline at end of file
diff --git a/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb b/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/cb_version_cookbooks/tatft/templates/default/configuration.erb
diff --git a/spec/data/checksum/random.txt b/spec/data/checksum/random.txt
new file mode 100644
index 0000000000..9570fff833
--- /dev/null
+++ b/spec/data/checksum/random.txt
@@ -0,0 +1 @@
+e4010abcac515ef3b78e92ee1f848a0d3bc3a526fcb826e7b4d39a6d516aa0487085c9b1be35e8d909617b250dca36dd4a55f01b7cdd310826bfd748cb27e0e43dd52b22968383c8086b06ee2d16e13574f98c058ce2bc3475b92ecf9c16e504022d60b132643986a8e7908d067526e20b4bafe1eb75349f27a4d3de02b077e76a2f59b73c14413f11e7208ae0bf6a408d51a97d490530e23476960ab8780ad86349947d82f1c9e57c85f86d71f80a6709b58be5f993a6a6df80c5a0857627d4a01e71484f6a6e983985089c00fe538e947230813c3a3e19baf6dae6db7082d07392a239ec1be385646356db3e3d76571488a6c72f0b96997f6191beea9846fc99f82a828f05af95cfc234cf681002f830915b1f3d35b2178b54a861c05d2694c5f6cfeb613a4a3670d849180461cdedf2c3cbb022608d8b19c86179d2d6da6b9acefccfc34b59663ef1282fec262bef79b2fbdd9b6669c90d6817b3762164dc309616469b33b83b1ded3420ae9177bc8f456d83939ff3c91b0a3683f3157401ceadf679c9f876da2aa413e081ee4c41d4b04f49e0c254d0082fd9bf2cb8eb8b966285be2cdcaab0ab70ea970737244b6683283598c30bdc206a05df72048b342eb40c2cd750c815d5fa944167b103ec40d60a99c49941a9e76d874149524f35ca294d081cf221757df77e027640556d983978be6b4b51aff26cd74a2f300d71 \ No newline at end of file
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-6m8zdk-0
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0
new file mode 100644
index 0000000000..81836588d5
--- /dev/null
+++ b/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0
@@ -0,0 +1 @@
+checksum data here
diff --git a/spec/data/config.rb b/spec/data/config.rb
new file mode 100644
index 0000000000..0b3340ce57
--- /dev/null
+++ b/spec/data/config.rb
@@ -0,0 +1,6 @@
+#
+# Sample Chef Config File
+#
+
+cookbook_path "/etc/chef/cookbook", "/etc/chef/site-cookbook"
+
diff --git a/spec/data/cookbooks/angrybash/recipes/default.rb b/spec/data/cookbooks/angrybash/recipes/default.rb
new file mode 100644
index 0000000000..458a29103e
--- /dev/null
+++ b/spec/data/cookbooks/angrybash/recipes/default.rb
@@ -0,0 +1,8 @@
+bash "go off the rails" do
+ code <<-END
+ for i in localhost 127.0.0.1 #{Socket.gethostname()}
+ do
+ echo "grant all on *.* to root@'$i' identified by 'a_password'; flush privileges;" | mysql -u root -h 127.0.0.1
+ done
+ END
+end
diff --git a/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl b/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl
new file mode 100644
index 0000000000..6cce6229c4
--- /dev/null
+++ b/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl
@@ -0,0 +1,2 @@
+# apache2_module_conf_generate.pl
+# this is just here for show.
diff --git a/spec/data/cookbooks/apache2/recipes/default.rb b/spec/data/cookbooks/apache2/recipes/default.rb
new file mode 100644
index 0000000000..c2fa53be32
--- /dev/null
+++ b/spec/data/cookbooks/apache2/recipes/default.rb
@@ -0,0 +1,3 @@
+#
+# Nothing ot see here
+# \ No newline at end of file
diff --git a/spec/data/cookbooks/borken/recipes/default.rb b/spec/data/cookbooks/borken/recipes/default.rb
new file mode 100644
index 0000000000..caf40b3974
--- /dev/null
+++ b/spec/data/cookbooks/borken/recipes/default.rb
@@ -0,0 +1,2 @@
+a cat walked on the keyboard one day...
+(*&(*&(*&(*&(*^%$%^%#^^&(*)(*{}}}}}}}}+++++===)))))) \ No newline at end of file
diff --git a/spec/data/cookbooks/borken/templates/default/borken.erb b/spec/data/cookbooks/borken/templates/default/borken.erb
new file mode 100644
index 0000000000..cbb32c1cd7
--- /dev/null
+++ b/spec/data/cookbooks/borken/templates/default/borken.erb
@@ -0,0 +1,2 @@
+a cat walked on the keyboard one day...
+<%= (*&)(*^^^^*******++_+_--- }}}}]]]end)%> \ No newline at end of file
diff --git a/spec/data/cookbooks/chefignore b/spec/data/cookbooks/chefignore
new file mode 100644
index 0000000000..cfd4e65832
--- /dev/null
+++ b/spec/data/cookbooks/chefignore
@@ -0,0 +1,6 @@
+#
+# The ignore file allows you to skip files in cookbooks with the same name that appear
+# later in the search path.
+#
+
+recipes/ignoreme.rb
diff --git a/spec/data/cookbooks/java/files/default/java.response b/spec/data/cookbooks/java/files/default/java.response
new file mode 100644
index 0000000000..eb4aa3c124
--- /dev/null
+++ b/spec/data/cookbooks/java/files/default/java.response
@@ -0,0 +1,2 @@
+# Hi, I'm pretending to be the preseed file for installing the Sun JDK on debian
+# or Ubuntu \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/attributes/default.rb b/spec/data/cookbooks/openldap/attributes/default.rb
new file mode 100644
index 0000000000..d0756f17e3
--- /dev/null
+++ b/spec/data/cookbooks/openldap/attributes/default.rb
@@ -0,0 +1,16 @@
+chef_env ||= nil
+case chef_env
+when "prod"
+ default[:ldap_server] = "ops1prod"
+ default[:ldap_basedn] = "dc=hjksolutions,dc=com"
+ default[:ldap_replication_password] = "yes"
+when "corp"
+ default[:ldap_server] = "ops1prod"
+ default[:ldap_basedn] = "dc=hjksolutions,dc=com"
+ default[:ldap_replication_password] = "yougotit"
+else
+
+ default[:ldap_server] = "ops1prod"
+ default[:ldap_basedn] = "dc=hjksolutions,dc=com"
+ default[:ldap_replication_password] = "forsure"
+end
diff --git a/spec/data/cookbooks/openldap/attributes/smokey.rb b/spec/data/cookbooks/openldap/attributes/smokey.rb
new file mode 100644
index 0000000000..4489c6a7ac
--- /dev/null
+++ b/spec/data/cookbooks/openldap/attributes/smokey.rb
@@ -0,0 +1 @@
+default[:smokey] = "robinson"
diff --git a/spec/data/cookbooks/openldap/definitions/client.rb b/spec/data/cookbooks/openldap/definitions/client.rb
new file mode 100644
index 0000000000..ac81831d11
--- /dev/null
+++ b/spec/data/cookbooks/openldap/definitions/client.rb
@@ -0,0 +1,5 @@
+define :openldap_client, :mothra => "a big monster" do
+ cat "#{params[:name]}" do
+ pretty_kitty true
+ end
+end
diff --git a/spec/data/cookbooks/openldap/definitions/server.rb b/spec/data/cookbooks/openldap/definitions/server.rb
new file mode 100644
index 0000000000..2df437aa84
--- /dev/null
+++ b/spec/data/cookbooks/openldap/definitions/server.rb
@@ -0,0 +1,5 @@
+define :openldap_server, :mothra => "a big monster" do
+ cat "#{params[:name]}" do
+ pretty_kitty true
+ end
+end
diff --git a/spec/data/cookbooks/openldap/files/default/.dotfile b/spec/data/cookbooks/openldap/files/default/.dotfile
new file mode 100644
index 0000000000..35ae928f91
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/.dotfile
@@ -0,0 +1 @@
+I am here to test .dotfiles work in file directories.
diff --git a/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa b/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa
new file mode 100644
index 0000000000..20a3ea410a
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa
@@ -0,0 +1 @@
+FAKE KEY \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir b/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir
new file mode 100644
index 0000000000..f44a956c15
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir
@@ -0,0 +1 @@
+this is a dotfile in a dotdir
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt b/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt
new file mode 100644
index 0000000000..7632730912
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt
@@ -0,0 +1,3 @@
+# remote directory
+# file specificity: default
+# relpath: remotedir/remote_dir_file1.txt \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt b/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt
new file mode 100644
index 0000000000..fab0433922
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt
@@ -0,0 +1,3 @@
+# remote directory
+# file specificity: default
+# relpath: remotedir/remote_dir_file2.txt \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile
new file mode 100644
index 0000000000..9a2b2a4b5f
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile
@@ -0,0 +1 @@
+this is a file with a name beginning with a . dot
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt
new file mode 100644
index 0000000000..611294cb81
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt
@@ -0,0 +1,3 @@
+# remote directory
+# file specificity: default
+# relpath: remotedir/remotesubdir/remote_dir_file1.txt \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt
new file mode 100644
index 0000000000..e0396542a4
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt
@@ -0,0 +1,3 @@
+# remote directory
+# file specificity: default
+# relpath: remotedir/remotesubdir/remote_dir_file2.txt \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt b/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt
new file mode 100644
index 0000000000..bc47369aad
--- /dev/null
+++ b/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt
@@ -0,0 +1,3 @@
+# remote directory
+# file specificity: default
+# relpath: remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt
diff --git a/spec/data/cookbooks/openldap/recipes/default.rb b/spec/data/cookbooks/openldap/recipes/default.rb
new file mode 100644
index 0000000000..0ac8a9bb4b
--- /dev/null
+++ b/spec/data/cookbooks/openldap/recipes/default.rb
@@ -0,0 +1,3 @@
+cat "blanket" do
+ pretty_kitty true
+end
diff --git a/spec/data/cookbooks/openldap/recipes/gigantor.rb b/spec/data/cookbooks/openldap/recipes/gigantor.rb
new file mode 100644
index 0000000000..b450eca7cd
--- /dev/null
+++ b/spec/data/cookbooks/openldap/recipes/gigantor.rb
@@ -0,0 +1,3 @@
+cat "blanket" do
+ pretty_kitty false
+end
diff --git a/spec/data/cookbooks/openldap/recipes/one.rb b/spec/data/cookbooks/openldap/recipes/one.rb
new file mode 100644
index 0000000000..d2d3cfd409
--- /dev/null
+++ b/spec/data/cookbooks/openldap/recipes/one.rb
@@ -0,0 +1,15 @@
+##
+# Nodes should have a unique name
+##
+name "test.example.com-default"
+
+##
+# Nodes can set arbitrary arguments
+##
+sunshine "in"
+something "else"
+
+##
+# Nodes should have recipes
+##
+recipes "operations-master", "operations-monitoring"
diff --git a/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb b/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb
new file mode 100644
index 0000000000..af82f1d96c
--- /dev/null
+++ b/spec/data/cookbooks/openldap/templates/default/openldap_stuff.conf.erb
@@ -0,0 +1 @@
+slappiness is <%= node[:slappiness] -%> \ No newline at end of file
diff --git a/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb b/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb
new file mode 100644
index 0000000000..e0041c9f99
--- /dev/null
+++ b/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb
@@ -0,0 +1 @@
+super secret is <%= @secret -%>
diff --git a/spec/data/cookbooks/openldap/templates/default/test.erb b/spec/data/cookbooks/openldap/templates/default/test.erb
new file mode 100644
index 0000000000..f39fa7da89
--- /dev/null
+++ b/spec/data/cookbooks/openldap/templates/default/test.erb
@@ -0,0 +1 @@
+We could be diving for pearls!
diff --git a/spec/data/definitions/test.rb b/spec/data/definitions/test.rb
new file mode 100644
index 0000000000..b0d0effc27
--- /dev/null
+++ b/spec/data/definitions/test.rb
@@ -0,0 +1,5 @@
+define :rico_suave, :rich => "smooth" do
+ zen_master "test" do
+ something "#{params[:rich]}"
+ end
+end \ No newline at end of file
diff --git a/spec/data/environment-config.rb b/spec/data/environment-config.rb
new file mode 100644
index 0000000000..a157ecf0ea
--- /dev/null
+++ b/spec/data/environment-config.rb
@@ -0,0 +1,5 @@
+#
+# Sample Chef Config File
+#
+
+environment "production" \ No newline at end of file
diff --git a/spec/data/fileedit/blank b/spec/data/fileedit/blank
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/fileedit/blank
diff --git a/spec/data/fileedit/hosts b/spec/data/fileedit/hosts
new file mode 100644
index 0000000000..6fbdc0f59d
--- /dev/null
+++ b/spec/data/fileedit/hosts
@@ -0,0 +1,4 @@
+127.0.0.1 localhost
+255.255.255.255 broadcasthost
+::1 localhost
+fe80::1%lo0 localhost
diff --git a/spec/data/gems/chef-integration-test-0.1.0.gem b/spec/data/gems/chef-integration-test-0.1.0.gem
new file mode 100644
index 0000000000..bcf1c77fe2
--- /dev/null
+++ b/spec/data/gems/chef-integration-test-0.1.0.gem
Binary files differ
diff --git a/spec/data/kitchen/chefignore b/spec/data/kitchen/chefignore
new file mode 100644
index 0000000000..a90dc15ebe
--- /dev/null
+++ b/spec/data/kitchen/chefignore
@@ -0,0 +1,6 @@
+#
+# The ignore file allows you to skip files in cookbooks with the same name that appear
+# later in the search path.
+#
+
+recipes/ignoreme\.rb
diff --git a/spec/data/kitchen/openldap/attributes/default.rb b/spec/data/kitchen/openldap/attributes/default.rb
new file mode 100644
index 0000000000..d208959475
--- /dev/null
+++ b/spec/data/kitchen/openldap/attributes/default.rb
@@ -0,0 +1,3 @@
+#
+# Nothing to see here, move along
+#
diff --git a/spec/data/kitchen/openldap/attributes/robinson.rb b/spec/data/kitchen/openldap/attributes/robinson.rb
new file mode 100644
index 0000000000..9d6b44d464
--- /dev/null
+++ b/spec/data/kitchen/openldap/attributes/robinson.rb
@@ -0,0 +1,3 @@
+#
+# Smokey lives here
+# \ No newline at end of file
diff --git a/spec/data/kitchen/openldap/definitions/client.rb b/spec/data/kitchen/openldap/definitions/client.rb
new file mode 100644
index 0000000000..d4c2263b54
--- /dev/null
+++ b/spec/data/kitchen/openldap/definitions/client.rb
@@ -0,0 +1,3 @@
+#
+# A sad client
+#
diff --git a/spec/data/kitchen/openldap/definitions/drewbarrymore.rb b/spec/data/kitchen/openldap/definitions/drewbarrymore.rb
new file mode 100644
index 0000000000..510f0c35da
--- /dev/null
+++ b/spec/data/kitchen/openldap/definitions/drewbarrymore.rb
@@ -0,0 +1,3 @@
+#
+# Was in people magazine this month...
+# \ No newline at end of file
diff --git a/spec/data/kitchen/openldap/recipes/gigantor.rb b/spec/data/kitchen/openldap/recipes/gigantor.rb
new file mode 100644
index 0000000000..70a41960eb
--- /dev/null
+++ b/spec/data/kitchen/openldap/recipes/gigantor.rb
@@ -0,0 +1,3 @@
+cat "blanket" do
+ pretty_kitty true
+end \ No newline at end of file
diff --git a/spec/data/kitchen/openldap/recipes/ignoreme.rb b/spec/data/kitchen/openldap/recipes/ignoreme.rb
new file mode 100644
index 0000000000..15095986c6
--- /dev/null
+++ b/spec/data/kitchen/openldap/recipes/ignoreme.rb
@@ -0,0 +1,3 @@
+#
+# this file will never be seen
+# \ No newline at end of file
diff --git a/spec/data/kitchen/openldap/recipes/woot.rb b/spec/data/kitchen/openldap/recipes/woot.rb
new file mode 100644
index 0000000000..44893dae36
--- /dev/null
+++ b/spec/data/kitchen/openldap/recipes/woot.rb
@@ -0,0 +1,3 @@
+#
+# Such a funny word..
+#
diff --git a/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb b/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb
diff --git a/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb b/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb
diff --git a/spec/data/knife_subcommand/test_explicit_category.rb b/spec/data/knife_subcommand/test_explicit_category.rb
new file mode 100644
index 0000000000..96d50691a1
--- /dev/null
+++ b/spec/data/knife_subcommand/test_explicit_category.rb
@@ -0,0 +1,7 @@
+module KnifeSpecs
+ class TestExplicitCategory < Chef::Knife
+ # i.e., the cookbook site commands should be in the cookbook site
+ # category instead of cookbook (which is what would be assumed)
+ category "cookbook site"
+ end
+end \ No newline at end of file
diff --git a/spec/data/knife_subcommand/test_name_mapping.rb b/spec/data/knife_subcommand/test_name_mapping.rb
new file mode 100644
index 0000000000..25c49b0df0
--- /dev/null
+++ b/spec/data/knife_subcommand/test_name_mapping.rb
@@ -0,0 +1,4 @@
+module KnifeSpecs
+ class TestNameMapping < Chef::Knife
+ end
+end
diff --git a/spec/data/knife_subcommand/test_yourself.rb b/spec/data/knife_subcommand/test_yourself.rb
new file mode 100644
index 0000000000..4b3f6b039c
--- /dev/null
+++ b/spec/data/knife_subcommand/test_yourself.rb
@@ -0,0 +1,13 @@
+module KnifeSpecs
+ class TestYourself < Chef::Knife
+
+ option :scro, :short => '-s SCRO', :long => '--scro SCRO', :description => 'a configurable setting'
+
+ attr_reader :ran
+
+ def run
+ @ran = true
+ self # return self so tests can poke at me
+ end
+ end
+end
diff --git a/spec/data/lwrp/providers/buck_passer.rb b/spec/data/lwrp/providers/buck_passer.rb
new file mode 100644
index 0000000000..1f83e5098b
--- /dev/null
+++ b/spec/data/lwrp/providers/buck_passer.rb
@@ -0,0 +1,3 @@
+action :buck_stops_here do
+ log "This should be overwritten by ../lwrp_override/buck_passer.rb"
+end
diff --git a/spec/data/lwrp/providers/buck_passer_2.rb b/spec/data/lwrp/providers/buck_passer_2.rb
new file mode 100644
index 0000000000..d34da3c378
--- /dev/null
+++ b/spec/data/lwrp/providers/buck_passer_2.rb
@@ -0,0 +1,10 @@
+action :pass_buck do
+ lwrp_bar :prepared_eyes do
+ action :prepare_eyes
+ provider :lwrp_paint_drying_watcher
+ end
+ lwrp_bar :dried_paint_watched do
+ action :watch_paint_dry
+ provider :lwrp_paint_drying_watcher
+ end
+end
diff --git a/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb b/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb
new file mode 100644
index 0000000000..f5841fb01c
--- /dev/null
+++ b/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb
@@ -0,0 +1,16 @@
+# This action tests that embedded Resources have access to the enclosing Provider's
+# lexical scope (as demonstrated by the call to new_resource) and that all parameters
+# are passed properly (as demonstrated by the call to generate_new_name).
+attr_reader :enclosed_resource
+
+action :twiddle_thumbs do
+ @enclosed_resource = lwrp_foo :foo do
+ monkey generate_new_name(new_resource.monkey){ 'the monkey' }
+ action :twiddle_thumbs
+ provider :lwrp_monkey_name_printer
+ end
+end
+
+def generate_new_name(str, &block)
+ "#{str}, #{block.call}"
+end
diff --git a/spec/data/lwrp/providers/monkey_name_printer.rb b/spec/data/lwrp/providers/monkey_name_printer.rb
new file mode 100644
index 0000000000..97ca66c65d
--- /dev/null
+++ b/spec/data/lwrp/providers/monkey_name_printer.rb
@@ -0,0 +1,5 @@
+attr_reader :monkey_name
+
+action :twiddle_thumbs do
+ @monkey_name = "my monkey's name is '#{new_resource.monkey}'"
+end
diff --git a/spec/data/lwrp/providers/paint_drying_watcher.rb b/spec/data/lwrp/providers/paint_drying_watcher.rb
new file mode 100644
index 0000000000..04b4732dcc
--- /dev/null
+++ b/spec/data/lwrp/providers/paint_drying_watcher.rb
@@ -0,0 +1,7 @@
+action :prepare_eyes do
+ "Prepared"
+end
+
+action :watch_paint_dry do
+ "This isn't very interesting"
+end
diff --git a/spec/data/lwrp/providers/thumb_twiddler.rb b/spec/data/lwrp/providers/thumb_twiddler.rb
new file mode 100644
index 0000000000..7f014615db
--- /dev/null
+++ b/spec/data/lwrp/providers/thumb_twiddler.rb
@@ -0,0 +1,7 @@
+action :prepare_thumbs do
+ "Prepared"
+end
+
+action :twiddle_thumbs do
+ "Twiddle twiddle"
+end
diff --git a/spec/data/lwrp/resources/bar.rb b/spec/data/lwrp/resources/bar.rb
new file mode 100644
index 0000000000..bded6eeac3
--- /dev/null
+++ b/spec/data/lwrp/resources/bar.rb
@@ -0,0 +1 @@
+actions :pass_buck, :prepare_eyes, :watch_paint_dry
diff --git a/spec/data/lwrp/resources/foo.rb b/spec/data/lwrp/resources/foo.rb
new file mode 100644
index 0000000000..c881c80530
--- /dev/null
+++ b/spec/data/lwrp/resources/foo.rb
@@ -0,0 +1,3 @@
+actions :never_execute
+
+attribute :ever, :kind_of => String
diff --git a/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb b/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb
new file mode 100644
index 0000000000..dece7c4eab
--- /dev/null
+++ b/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb
@@ -0,0 +1 @@
+attribute :penguin, :kind_of => String, :default => node[:penguin_name]
diff --git a/spec/data/lwrp_override/providers/buck_passer.rb b/spec/data/lwrp_override/providers/buck_passer.rb
new file mode 100644
index 0000000000..75917a58c9
--- /dev/null
+++ b/spec/data/lwrp_override/providers/buck_passer.rb
@@ -0,0 +1,10 @@
+action :pass_buck do
+ lwrp_foo :prepared_thumbs do
+ action :prepare_thumbs
+ provider :lwrp_thumb_twiddler
+ end
+ lwrp_foo :twiddled_thumbs do
+ action :twiddle_thumbs
+ provider :lwrp_thumb_twiddler
+ end
+end \ No newline at end of file
diff --git a/spec/data/lwrp_override/resources/foo.rb b/spec/data/lwrp_override/resources/foo.rb
new file mode 100644
index 0000000000..0ee83f0cd0
--- /dev/null
+++ b/spec/data/lwrp_override/resources/foo.rb
@@ -0,0 +1,4 @@
+actions :prepare_thumbs, :twiddle_thumbs
+default_action :pass_buck
+
+attribute :monkey, :kind_of => String
diff --git a/spec/data/metadata/quick_start/metadata.rb b/spec/data/metadata/quick_start/metadata.rb
new file mode 100644
index 0000000000..e74eedba0f
--- /dev/null
+++ b/spec/data/metadata/quick_start/metadata.rb
@@ -0,0 +1,19 @@
+maintainer "Opscode, Inc."
+maintainer_email "cookbooks@opscode.com"
+license "Apache 2.0"
+description "Example cookbook for quick_start wiki document"
+version "0.7"
+
+%w{
+ redhat fedora centos
+ ubuntu debian
+ macosx freebsd openbsd
+ solaris
+}.each do |os|
+ supports os
+end
+
+attribute "quick_start/deep_thought",
+ :display_name => "Quick Start Deep Thought",
+ :description => "A deep thought",
+ :default => "If a tree falls in the forest..."
diff --git a/spec/data/nodes/default.rb b/spec/data/nodes/default.rb
new file mode 100644
index 0000000000..1d6291f166
--- /dev/null
+++ b/spec/data/nodes/default.rb
@@ -0,0 +1,15 @@
+##
+# Nodes should have a unique name
+##
+name "test.example.com-default"
+
+##
+# Nodes can set arbitrary arguments
+##
+default[:sunshine] = "in"
+default[:something] = "else"
+
+##
+# Nodes should have recipes
+##
+run_list "operations-master", "operations-monitoring"
diff --git a/spec/data/nodes/test.example.com.rb b/spec/data/nodes/test.example.com.rb
new file mode 100644
index 0000000000..b30e8489e0
--- /dev/null
+++ b/spec/data/nodes/test.example.com.rb
@@ -0,0 +1,17 @@
+##
+# Nodes should have a unique name
+##
+name "test.example.com"
+
+##
+# Nodes can set arbitrary arguments
+##
+normal[:sunshine] = "in"
+normal[:something] = "else"
+
+##
+# Nodes should have recipes
+##
+run_list "operations-master", "operations-monitoring"
+
+chef_environment "dev"
diff --git a/spec/data/nodes/test.rb b/spec/data/nodes/test.rb
new file mode 100644
index 0000000000..e1301130d2
--- /dev/null
+++ b/spec/data/nodes/test.rb
@@ -0,0 +1,15 @@
+##
+# Nodes should have a unique name
+##
+name "test.example.com-short"
+
+##
+# Nodes can set arbitrary arguments
+##
+default[:sunshine] = "in"
+default[:something] = "else"
+
+##
+# Nodes should have recipes
+##
+run_list "operations-master", "operations-monitoring"
diff --git a/spec/data/object_loader/environments/test.json b/spec/data/object_loader/environments/test.json
new file mode 100644
index 0000000000..cb4c790e44
--- /dev/null
+++ b/spec/data/object_loader/environments/test.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "description": "prod",
+ "run_list": []
+}
diff --git a/spec/data/object_loader/environments/test.rb b/spec/data/object_loader/environments/test.rb
new file mode 100644
index 0000000000..8bf4ee52e0
--- /dev/null
+++ b/spec/data/object_loader/environments/test.rb
@@ -0,0 +1,2 @@
+name "test"
+description "prod"
diff --git a/spec/data/object_loader/environments/test_json_class.json b/spec/data/object_loader/environments/test_json_class.json
new file mode 100644
index 0000000000..28345198c9
--- /dev/null
+++ b/spec/data/object_loader/environments/test_json_class.json
@@ -0,0 +1,6 @@
+{
+ "name": "test",
+ "json_class": "Chef::Environment",
+ "description": "prod",
+ "run_list": []
+}
diff --git a/spec/data/object_loader/nodes/test.json b/spec/data/object_loader/nodes/test.json
new file mode 100644
index 0000000000..49f297d039
--- /dev/null
+++ b/spec/data/object_loader/nodes/test.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "environment": "prod",
+ "run_list": []
+}
diff --git a/spec/data/object_loader/nodes/test.rb b/spec/data/object_loader/nodes/test.rb
new file mode 100644
index 0000000000..9629539859
--- /dev/null
+++ b/spec/data/object_loader/nodes/test.rb
@@ -0,0 +1,2 @@
+name "test"
+environment "prod"
diff --git a/spec/data/object_loader/nodes/test_json_class.json b/spec/data/object_loader/nodes/test_json_class.json
new file mode 100644
index 0000000000..f485ae8748
--- /dev/null
+++ b/spec/data/object_loader/nodes/test_json_class.json
@@ -0,0 +1,6 @@
+{
+ "name": "test",
+ "json_class": "Chef::Node",
+ "environment": "prod",
+ "run_list": []
+}
diff --git a/spec/data/object_loader/roles/test.json b/spec/data/object_loader/roles/test.json
new file mode 100644
index 0000000000..cb4c790e44
--- /dev/null
+++ b/spec/data/object_loader/roles/test.json
@@ -0,0 +1,5 @@
+{
+ "name": "test",
+ "description": "prod",
+ "run_list": []
+}
diff --git a/spec/data/object_loader/roles/test.rb b/spec/data/object_loader/roles/test.rb
new file mode 100644
index 0000000000..8bf4ee52e0
--- /dev/null
+++ b/spec/data/object_loader/roles/test.rb
@@ -0,0 +1,2 @@
+name "test"
+description "prod"
diff --git a/spec/data/object_loader/roles/test_json_class.json b/spec/data/object_loader/roles/test_json_class.json
new file mode 100644
index 0000000000..ce922f592d
--- /dev/null
+++ b/spec/data/object_loader/roles/test_json_class.json
@@ -0,0 +1,6 @@
+{
+ "name": "test",
+ "json_class": "Chef::Role",
+ "description": "prod",
+ "run_list": []
+}
diff --git a/spec/data/old_home_dir/my-dot-emacs b/spec/data/old_home_dir/my-dot-emacs
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/old_home_dir/my-dot-emacs
diff --git a/spec/data/old_home_dir/my-dot-vim b/spec/data/old_home_dir/my-dot-vim
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/spec/data/old_home_dir/my-dot-vim
diff --git a/spec/data/recipes/test.rb b/spec/data/recipes/test.rb
new file mode 100644
index 0000000000..c33d714a2c
--- /dev/null
+++ b/spec/data/recipes/test.rb
@@ -0,0 +1,7 @@
+
+file "/etc/nsswitch.conf" do
+ action :create
+ owner "root"
+ group "root"
+ mode 0644
+end
diff --git a/spec/data/remote_directory_data/remote_dir_file.txt b/spec/data/remote_directory_data/remote_dir_file.txt
new file mode 100644
index 0000000000..17aa3a6838
--- /dev/null
+++ b/spec/data/remote_directory_data/remote_dir_file.txt
@@ -0,0 +1 @@
+I'm a file inside a the root remote_directory source dir. \ No newline at end of file
diff --git a/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt b/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt
new file mode 100644
index 0000000000..a73728a4bb
--- /dev/null
+++ b/spec/data/remote_directory_data/remote_subdirectory/remote_subdir_file.txt
@@ -0,0 +1 @@
+I'm a file in a subdirectory inside a remote_directory source \ No newline at end of file
diff --git a/spec/data/remote_file/nyan_cat.png b/spec/data/remote_file/nyan_cat.png
new file mode 100644
index 0000000000..14cd6acf2a
--- /dev/null
+++ b/spec/data/remote_file/nyan_cat.png
Binary files differ
diff --git a/spec/data/run_context/cookbooks/test/attributes/george.rb b/spec/data/run_context/cookbooks/test/attributes/george.rb
new file mode 100644
index 0000000000..8ea4454c79
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/attributes/george.rb
@@ -0,0 +1 @@
+default[:george] = "washington"
diff --git a/spec/data/run_context/cookbooks/test/definitions/new_animals.rb b/spec/data/run_context/cookbooks/test/definitions/new_animals.rb
new file mode 100644
index 0000000000..5b00553cfe
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/definitions/new_animals.rb
@@ -0,0 +1,9 @@
+define :new_dog, :is_cute => true do
+ dog "#{params[:name]}" do
+ cute params[:is_cute]
+ end
+end
+
+define :new_badger do
+ badger "#{params[:name]}"
+end
diff --git a/spec/data/run_context/cookbooks/test/definitions/new_cat.rb b/spec/data/run_context/cookbooks/test/definitions/new_cat.rb
new file mode 100644
index 0000000000..a49b53348c
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/definitions/new_cat.rb
@@ -0,0 +1,5 @@
+define :new_cat, :is_pretty => true do
+ cat "#{params[:name]}" do
+ pretty_kitty params[:is_pretty]
+ end
+end
diff --git a/spec/data/run_context/cookbooks/test/recipes/default.rb b/spec/data/run_context/cookbooks/test/recipes/default.rb
new file mode 100644
index 0000000000..d769dc826d
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/recipes/default.rb
@@ -0,0 +1,5 @@
+
+cat "einstein" do
+ pretty_kitty true
+end
+
diff --git a/spec/data/run_context/cookbooks/test/recipes/one.rb b/spec/data/run_context/cookbooks/test/recipes/one.rb
new file mode 100644
index 0000000000..7795cc1d4a
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/recipes/one.rb
@@ -0,0 +1,7 @@
+cat "loulou" do
+ pretty_kitty true
+end
+
+new_cat "birthday" do
+ pretty_kitty false
+end
diff --git a/spec/data/run_context/cookbooks/test/recipes/two.rb b/spec/data/run_context/cookbooks/test/recipes/two.rb
new file mode 100644
index 0000000000..01def1b2ac
--- /dev/null
+++ b/spec/data/run_context/cookbooks/test/recipes/two.rb
@@ -0,0 +1,7 @@
+cat "peanut" do
+ pretty_kitty true
+end
+
+new_cat "fat peanut" do
+ pretty_kitty false
+end
diff --git a/spec/data/run_context/nodes/run_context.rb b/spec/data/run_context/nodes/run_context.rb
new file mode 100644
index 0000000000..076d21ab89
--- /dev/null
+++ b/spec/data/run_context/nodes/run_context.rb
@@ -0,0 +1,5 @@
+##
+# Nodes should have a unique name
+##
+name "compile"
+run_list "test", "test::one", "test::two"
diff --git a/spec/data/search_queries_to_transform.txt b/spec/data/search_queries_to_transform.txt
new file mode 100644
index 0000000000..4a05d5405e
--- /dev/null
+++ b/spec/data/search_queries_to_transform.txt
@@ -0,0 +1,98 @@
+afield:[* TO *]
+content:afield__=__*
+
+afield:[a TO *]
+content:[afield__=__a TO afield__=__\ufff0]
+
+afield:[* TO b]
+content:[afield__=__ TO afield__=__b]
+
+*:*
+*:*
+
+role:mon
+content:role__=__mon
+
+role:mon AND role:prod
+content:role__=__mon AND content:role__=__prod
+
+run_list:role\[rubberband\] AND run_list:role\[whale\]
+content:run_list__=__role\[rubberband\] AND content:run_list__=__role\[whale\]
+
+sharable_server:[* TO *]
+content:sharable_server__=__*
+
+run_list:role\[nfs_server\] AND sharable_server:[* TO *]
+content:run_list__=__role\[nfs_server\] AND content:sharable_server__=__*
+
+run_list:role\[nfs_server\] AND sharable_server:[* TO *]
+content:run_list__=__role\[nfs_server\] AND content:sharable_server__=__*
+
+(role:prod AND x_y:true)
+(content:role__=__prod AND content:x_y__=__true)
+
+hostname:[* TO *] AND role:prod
+content:hostname__=__* AND content:role__=__prod
+
+role:t_mem AND role:prod NOT hostname:ip-1-2-3-4
+content:role__=__t_mem AND content:role__=__prod NOT content:hostname__=__ip-1-2-3-4
+
+ohai_time:[1234.567 TO *]
+content:[ohai_time__=__1234.567 TO ohai_time__=__\ufff0]
+
+ohai_time:{1234.567 TO *}
+content:{ohai_time__=__1234.567 TO ohai_time__=__\ufff0}
+
+ohai_time:[* TO baz]
+content:[ohai_time__=__ TO ohai_time__=__baz]
+
+ohai_time:{* TO baz}
+content:{ohai_time__=__ TO ohai_time__=__baz}
+
+tags:apples*.for.eating.com
+content:tags__=__apples*.for.eating.com
+
+role:safe AND ohai_time:[1234.567 TO *] AND whiz_bang:x5
+content:role__=__safe AND content:[ohai_time__=__1234.567 TO ohai_time__=__\ufff0] AND content:whiz_bang__=__x5
+
+role:safe AND ohai_time:[* TO 1234.567] AND whiz_bang:x5
+content:role__=__safe AND content:[ohai_time__=__ TO ohai_time__=__1234.567] AND content:whiz_bang__=__x5
+
+animal:[ape TO zebra]
+content:[animal__=__ape TO animal__=__zebra]
+
+animal:{ape TO zebra}
+content:{animal__=__ape TO animal__=__zebra}
+
+((value:[1 TO 3] OR nested_b1_a2_a3:B1_A2_A3-c) OR value:[5 TO *])
+((content:[value__=__1 TO value__=__3] OR content:nested_b1_a2_a3__=__B1_A2_A3-c) OR content:[value__=__5 TO value__=__\ufff0])
+
+((value:{1 TO 3} OR value:{1 TO 3}) OR run_list:recipe\[alpha\])
+((content:{value__=__1 TO value__=__3} OR content:{value__=__1 TO value__=__3}) OR content:run_list__=__recipe\[alpha\])
+
+words:"one two three"
+content:"words__=__one two three"
+
+words:"one \"two\" three"
+content:"words__=__one \"two\" three"
+
+words:"\"one two\" three"
+content:"words__=__\"one two\" three"
+
+words:"one two \"three\""
+content:"words__=__one two \"three\""
+
+words:"one two \"three\"" OR words:"\"one two\" three" AND words:"one \"two\" three"
+content:"words__=__one two \"three\"" OR content:"words__=__\"one two\" three" AND content:"words__=__one \"two\" three"
+
+words:\"*
+content:words__=__\"*
+
+-version:0.9.12
+-content:version__=__0.9.12
+
+!version:0.9.12
+NOT content:version__=__0.9.12
+
+ec2:*
+content:ec2__=__*
diff --git a/spec/data/ssl/5e707473.0 b/spec/data/ssl/5e707473.0
new file mode 100644
index 0000000000..5c5cf87e11
--- /dev/null
+++ b/spec/data/ssl/5e707473.0
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6DCCAlGgAwIBAgIJANlevg7kzqvpMA0GCSqGSIb3DQEBBQUAMFcxITAfBgNV
+BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEeMBwGA1UECxMVU25ha2VvaWwg
+Q2VydGlmaWNhdGVzMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMDkxMjE5MTkxODUy
+WhcNMTAwMTE4MTkxODUyWjBXMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0
+eSBMdGQxHjAcBgNVBAsTFVNuYWtlb2lsIENlcnRpZmljYXRlczESMBAGA1UEAxMJ
+bG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhm9En1DL3aC4H
+j5/SA6FXm6B/0AoVzoPfWX2rpkRcz/XX24JEhQhLXStjhDr4p/IrARnZ8shy0MA4
+wNpNPEn5c0RvqKypHzX+AeQkBx8J1/8vnMAoM9b/4pd0FqgRW1UbhvqQDzkWmVyK
+Tz5yCiTntxDzudAtHlTo8V6E7UEDkwIDAQABo4G7MIG4MB0GA1UdDgQWBBTmAcyA
+CqQblJ1L4sOIzmkdIAtY6jCBiAYDVR0jBIGAMH6AFOYBzIAKpBuUnUviw4jOaR0g
+C1jqoVukWTBXMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxHjAc
+BgNVBAsTFVNuYWtlb2lsIENlcnRpZmljYXRlczESMBAGA1UEAxMJbG9jYWxob3N0
+ggkA2V6+DuTOq+kwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBe4f9R
+s0g5GCFekabzl9AHvIn4ITxenvuyaNX9f2BJbdgoD03wlGycBxjbC57RjFVfetu7
+mtUYuJSx7iojBSC+LzotGptrG9d2BxrWOKBfF2K+dyoIG8kZL5aLfS0be6Cc5O3c
+L/IPadJhBu/EfyGI2vL1l8GspXdOxaFzHprpgA==
+-----END CERTIFICATE-----
diff --git a/spec/data/ssl/chef-rspec.cert b/spec/data/ssl/chef-rspec.cert
new file mode 100644
index 0000000000..08ec684520
--- /dev/null
+++ b/spec/data/ssl/chef-rspec.cert
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEkjCCA3qgAwIBAgIJAKBJr4wSRUVvMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHU2VhdHRsZTEN
+MAsGA1UEChMEQ2hlZjETMBEGA1UECxMKZGV2ZWxvcGVyczESMBAGA1UEAxMJa2Fs
+bGlzdGVjMR4wHAYJKoZIhvcNAQkBFg9kYW5Ab3BzY29kZS5jb20wHhcNMTAwNDEw
+MTkxMTMxWhcNMjAwNDA3MTkxMTMxWjCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+Cldhc2hpbmd0b24xEDAOBgNVBAcTB1NlYXR0bGUxDTALBgNVBAoTBENoZWYxEzAR
+BgNVBAsTCmRldmVsb3BlcnMxEjAQBgNVBAMTCWthbGxpc3RlYzEeMBwGCSqGSIb3
+DQEJARYPZGFuQG9wc2NvZGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAw5l9EtBHsJrb5AIxARP695an3v+509gOXRKnjWIRnU+knbdTnEdjlGGG
+SxuFR7Fnp2OM8ed7iPIKSrcM0vQ+g7vYKCv5Z8UR3sbLY8UHm9AgZ/bLAHEHS2if
+1WHPD5DOe1B7HwW0IfEiW4/WakkVn4uoWw5rCZ87f4YCrETomXIo1n/rMFHf+yoY
+guuEfGQxRcQdlEZM9YMlMByQvXlVR5IVhpiMHBCyV6KzxjZVCgTlvS8nPMiiHpoO
+pgB6BGEQ/nn4Kapk40baPqpT4EP/DnBnbhhR3kBQ6MQRlh7bl5vjH5xFSFwGUUA9
+IcaDTwfliD27bo36aMvcBhrsmbSwqwIDAQABo4H0MIHxMB0GA1UdDgQWBBS88Zxt
+vG+FTu1U+VFA47ffzwStbjCBwQYDVR0jBIG5MIG2gBS88ZxtvG+FTu1U+VFA47ff
+zwStbqGBkqSBjzCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
+EDAOBgNVBAcTB1NlYXR0bGUxDTALBgNVBAoTBENoZWYxEzARBgNVBAsTCmRldmVs
+b3BlcnMxEjAQBgNVBAMTCWthbGxpc3RlYzEeMBwGCSqGSIb3DQEJARYPZGFuQG9w
+c2NvZGUuY29tggkAoEmvjBJFRW8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUF
+AAOCAQEAwwMrbuJAhP5uawJi5OYEaJKSbJGyahCcOAl4+ONgsdDoCy/9AZKzuFNc
+C8vM/Ee6jyugrKMdckvZ883kJ4770HU6nbomCUVKMHMzJBE1Guvsn8wZP3nKyeSZ
+eXXbH1b/NfstNyo6XLucaBRQvyvQYDUnk6osrBh+Gekvqsahr0wkVa8VUY2UySyY
+60lYt4O92XJ1jWtYoFjRxeeUgo5E0TfIWj74kXhdMqwMf4Iv9VatfYR87ps5VMdf
+Hp+nrCRaquDAs87LdO9e7M8l+W1ryPfP2inuGjIozsN5lLmwBdT+O6NkpmuxGPEG
+ArIbYatR7+4MsDn+CjfkYblnmGLuug==
+-----END CERTIFICATE-----
diff --git a/spec/data/ssl/chef-rspec.key b/spec/data/ssl/chef-rspec.key
new file mode 100644
index 0000000000..29aaecf2a6
--- /dev/null
+++ b/spec/data/ssl/chef-rspec.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAw5l9EtBHsJrb5AIxARP695an3v+509gOXRKnjWIRnU+knbdT
+nEdjlGGGSxuFR7Fnp2OM8ed7iPIKSrcM0vQ+g7vYKCv5Z8UR3sbLY8UHm9AgZ/bL
+AHEHS2if1WHPD5DOe1B7HwW0IfEiW4/WakkVn4uoWw5rCZ87f4YCrETomXIo1n/r
+MFHf+yoYguuEfGQxRcQdlEZM9YMlMByQvXlVR5IVhpiMHBCyV6KzxjZVCgTlvS8n
+PMiiHpoOpgB6BGEQ/nn4Kapk40baPqpT4EP/DnBnbhhR3kBQ6MQRlh7bl5vjH5xF
+SFwGUUA9IcaDTwfliD27bo36aMvcBhrsmbSwqwIDAQABAoIBAQC+hddKaA4se+sL
+4QaSoj+mwtypXjZHnv/+sJj8IjY+IMGbzmJmqzLX6VbB+gCMoMTySwmS54NxFTHp
+LPwUz0vFTUdzecHpzg9mDAU5HUYYA1ZNbhq2R2JvlW16j1b9NnOpse77fLbFCPgK
+b8TOqnmheot2hkjEipGN2Z7o5gYaz1/3PtolkP1ypCTG6Bh7V3ohBLBIEdjA552o
+HNGe3t6PpvoNtBqaeb/j/SAOvg+8DGF1WQtE+5Y1koSlhABYWkHzHC1fHAzRMSHH
+ZMfKOQNusRgBRNJabdVqkuTbvyRCQEb2YGQxPPYV2C+AxAlh3APeYTg90vUqAq/3
+ivNdilcBAoGBAOLELc0mcTftDbIMWVnrzAGAJOCMz3FkwGcV8nqNeA3R77e3pWL2
+5+bKadWQGjjpR3ZEYt/RxHsoGCW3NtM44icxqVCTPW/unp2xqadjuvcsKrxk+1wD
+OdvVrwcd/N+KzgXO+Hm7xbV/loFms3ueGfCRbOueQyP4dj9MyOBGlO2hAoGBANzQ
+u8IrZBG0DL8YFdmjw4YWUENIOtABPU1qHo/sugTQjI9K3/E3LA7aaGnl2P//1tao
+SR/aP/To90H6D989/JomhkEKKA+DyL1sRL1NMdtWwrKdEq32W8fUN0JEA+Q1FMsd
+Hk6Ix+KrZVg9cTb9HoGikDxeHW3pPKDWaEkWIQLLAoGAD13N4L3/JBQLPop5r487
+9soRNao1EHEMXK/vC4D0prMYNHHcYjVrB4el3lPygvLD5e7CaHpVfyb7Y+rjazLK
+mG9UEuK3YhNgaj00yuQGMmOqzbNmGRka3ZvATZIppZhJV7lruwwPXLo1n7Uu6myP
+Q28HW3wQ/qoCkU2JuzDtPKECgYBUrYcTEuixEUbCEU5vw6k7RltJMe27zn3frg5C
+Sxmatw7v9Fqkee/fUkowMgBhS47rimVgXaWhGaWYG3jytyajRpq9XlO2f2b/nQFP
+RscTwdWwASQkqhDQNMVsGAEWBnUO3v+8Rh/BANFAYW+FEtQcCmcdf0nx2DtzwkUD
+ogTOuQKBgCbEg+/ND/p8xKwY9LtjLKnrQSL5tSH/7prhLJvVVdW7FMRfKSp1t2xc
+kfJFqO1Lcf2j7hiclval3xDoWUretNQ5379T0Ob30WuIomSfeqcxJjCUtyN3fUqr
+z/QG9dk/23OOYJhRgAmttBDqpk5uB5mOQgSftdELNyw0EOyNIBfZ
+-----END RSA PRIVATE KEY-----
diff --git a/spec/data/ssl/key.pem b/spec/data/ssl/key.pem
new file mode 100644
index 0000000000..50b8fd83c8
--- /dev/null
+++ b/spec/data/ssl/key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDhm9En1DL3aC4Hj5/SA6FXm6B/0AoVzoPfWX2rpkRcz/XX24JE
+hQhLXStjhDr4p/IrARnZ8shy0MA4wNpNPEn5c0RvqKypHzX+AeQkBx8J1/8vnMAo
+M9b/4pd0FqgRW1UbhvqQDzkWmVyKTz5yCiTntxDzudAtHlTo8V6E7UEDkwIDAQAB
+AoGAGicC1tgdVFqqQ0wd3a14DXzH3SkTkjWPSdvI2pX6hLvCptQWRLUbIglZ1z5j
+y6FETEHjakVfgRe7wJhyddOQS3eeVt/aK0xBHz/JiJuIF+NzbJT9t01nPV21abYU
+lWIhWV8Ja39a5LKV6hee0TTYdAub7BVQ95kwrqMqRcDoXHECQQDxpAgq925Cmlz1
+0Q1WZq2A/o8oqPvPS1FulPK2OgyOyQSK+DdcK2xUKGWMn0m9fDLLzj/pe/H3dN1I
+b8Z/iiWrAkEA7wPlesZX3GzfqQLd6GYGBa4IdrV5dHdeoCCVRnkFr06KjcqpAhg1
+7i0T9frSC5EfRCfbGNgo4eutT9+D7HJhuQJAZeDBrNPbQetxDBbSp73sovkwhHUS
+jah0scnMtvWse7rW1nymYo7QQn8xqWMzJNerVvAjVB50ut8juLmfmAA3twJAQy9/
+NBHI5Mcd365Unlz/WF1hN60vZNOhH7XJADRIqsyTGeRbuaEAl+DH+Z71qBa1CT2C
+0usAIvFSmF8mADLu0QJAHSSh6zLNInvkhDjYAmEu3oeFQgQ4Rp7oiMaBZ6VVuOMo
+4GU9CA18iI75NaO7FOfquJPkIJ0li0xadVofUpaJcg==
+-----END RSA PRIVATE KEY-----
diff --git a/spec/data/ssl/private_key.pem b/spec/data/ssl/private_key.pem
new file mode 100644
index 0000000000..b6636604a8
--- /dev/null
+++ b/spec/data/ssl/private_key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA49TA0y81ps0zxkOpmf5V4/c4IeR5yVyQFpX3JpxO4TquwnRh
+8VSUhrw8kkTLmB3cS39Db+3HadvhoqCEbqPE6915kXSuk/cWIcNozujLK7tkuPEy
+YVsyTioQAddSdfe+8EhQVf3oHxaKmUd6waXrWqYCnhxgOjxocenREYNhZ/OETIei
+PbOku47vB4nJK/0GhKBytL2XnsRgfKgDxf42BqAi1jglIdeq8lAWZNF9TbNBU21A
+O1iuT7Pm6LyQujhggPznR5FJhXKRUARXBJZawxpGV4dGtdcahwXNE4601aXPra+x
+PcRd2puCNoEDBzgVuTSsLYeKBDMSfs173W1QYwIDAQABAoIBAGF05q7vqOGbMaSD
+2Q7YbuE/JTHKTBZIlBI1QC2x+0P5GDxyEFttNMOVzcs7xmNhkpRw8eX1LrInrpMk
+WsIBKAFFEfWYlf0RWtRChJjNl+szE9jQxB5FJnWtJH/FHa78tR6PsF24aQyzVcJP
+g0FGujBihwgfV0JSCNOBkz8MliQihjQA2i8PGGmo4R4RVzGfxYKTIq9vvRq/+QEa
+Q4lpVLoBqnENpnY/9PTl6JMMjW2b0spbLjOPVwDaIzXJ0dChjNXo15K5SHI5mALJ
+I5gN7ODGb8PKUf4619ez194FXq+eob5YJdilTFKensIUvt3YhP1ilGMM+Chi5Vi/
+/RCTw3ECgYEA9jTw4wv9pCswZ9wbzTaBj9yZS3YXspGg26y6Ohq3ZmvHz4jlT6uR
+xK+DDcUiK4072gci8S4Np0fIVS7q6ivqcOdzXPrTF5/j+MufS32UrBbUTPiM1yoO
+ECcy+1szl/KoLEV09bghPbvC58PFSXV71evkaTETYnA/F6RK12lEepcCgYEA7OSy
+bsMrGDVU/MKJtwqyGP9ubA53BorM4Pp9VVVSCrGGVhb9G/XNsjO5wJC8J30QAo4A
+s59ZzCpyNRy046AB8jwRQuSwEQbejSdeNgQGXhZ7aIVUtuDeFFdaIz/zjVgxsfj4
+DPOuzieMmJ2MLR4F71ocboxNoDI7xruPSE8dDhUCgYA3vx732cQxgtHwAkeNPJUz
+dLiE/JU7CnxIoSB9fYUfPLI+THnXgzp7NV5QJN2qzMzLfigsQcg3oyo6F2h7Yzwv
+GkjlualIRRzCPaCw4Btkp7qkPvbs1QngIHALt8fD1N69P3DPHkTwjG4COjKWgnJq
+qoHKS6Fe/ZlbigikI6KsuwKBgQCTlSLoyGRHr6oj0hqz01EDK9ciMJzMkZp0Kvn8
+OKxlBxYW+jlzut4MQBdgNYtS2qInxUoAnaz2+hauqhSzntK3k955GznpUatCqx0R
+b857vWviwPX2/P6+E3GPdl8IVsKXCvGWOBZWTuNTjQtwbDzsUepWoMgXnlQJSn5I
+YSlLxQKBgQD16Gw9kajpKlzsPa6XoQeGmZALT6aKWJQlrKtUQIrsIWM0Z6eFtX12
+2jjHZ0awuCQ4ldqwl8IfRogWMBkHOXjTPVK0YKWWlxMpD/5+bGPARa5fir8O1Zpo
+Y6S6MeZ69Rp89ma4ttMZ+kwi1+XyHqC/dlcVRW42Zl5Dc7BALRlJjQ==
+-----END RSA PRIVATE KEY-----
diff --git a/spec/data/ssl/private_key_with_whitespace.pem b/spec/data/ssl/private_key_with_whitespace.pem
new file mode 100644
index 0000000000..b393a3f13d
--- /dev/null
+++ b/spec/data/ssl/private_key_with_whitespace.pem
@@ -0,0 +1,32 @@
+
+
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA49TA0y81ps0zxkOpmf5V4/c4IeR5yVyQFpX3JpxO4TquwnRh
+8VSUhrw8kkTLmB3cS39Db+3HadvhoqCEbqPE6915kXSuk/cWIcNozujLK7tkuPEy
+YVsyTioQAddSdfe+8EhQVf3oHxaKmUd6waXrWqYCnhxgOjxocenREYNhZ/OETIei
+PbOku47vB4nJK/0GhKBytL2XnsRgfKgDxf42BqAi1jglIdeq8lAWZNF9TbNBU21A
+O1iuT7Pm6LyQujhggPznR5FJhXKRUARXBJZawxpGV4dGtdcahwXNE4601aXPra+x
+PcRd2puCNoEDBzgVuTSsLYeKBDMSfs173W1QYwIDAQABAoIBAGF05q7vqOGbMaSD
+2Q7YbuE/JTHKTBZIlBI1QC2x+0P5GDxyEFttNMOVzcs7xmNhkpRw8eX1LrInrpMk
+WsIBKAFFEfWYlf0RWtRChJjNl+szE9jQxB5FJnWtJH/FHa78tR6PsF24aQyzVcJP
+g0FGujBihwgfV0JSCNOBkz8MliQihjQA2i8PGGmo4R4RVzGfxYKTIq9vvRq/+QEa
+Q4lpVLoBqnENpnY/9PTl6JMMjW2b0spbLjOPVwDaIzXJ0dChjNXo15K5SHI5mALJ
+I5gN7ODGb8PKUf4619ez194FXq+eob5YJdilTFKensIUvt3YhP1ilGMM+Chi5Vi/
+/RCTw3ECgYEA9jTw4wv9pCswZ9wbzTaBj9yZS3YXspGg26y6Ohq3ZmvHz4jlT6uR
+xK+DDcUiK4072gci8S4Np0fIVS7q6ivqcOdzXPrTF5/j+MufS32UrBbUTPiM1yoO
+ECcy+1szl/KoLEV09bghPbvC58PFSXV71evkaTETYnA/F6RK12lEepcCgYEA7OSy
+bsMrGDVU/MKJtwqyGP9ubA53BorM4Pp9VVVSCrGGVhb9G/XNsjO5wJC8J30QAo4A
+s59ZzCpyNRy046AB8jwRQuSwEQbejSdeNgQGXhZ7aIVUtuDeFFdaIz/zjVgxsfj4
+DPOuzieMmJ2MLR4F71ocboxNoDI7xruPSE8dDhUCgYA3vx732cQxgtHwAkeNPJUz
+dLiE/JU7CnxIoSB9fYUfPLI+THnXgzp7NV5QJN2qzMzLfigsQcg3oyo6F2h7Yzwv
+GkjlualIRRzCPaCw4Btkp7qkPvbs1QngIHALt8fD1N69P3DPHkTwjG4COjKWgnJq
+qoHKS6Fe/ZlbigikI6KsuwKBgQCTlSLoyGRHr6oj0hqz01EDK9ciMJzMkZp0Kvn8
+OKxlBxYW+jlzut4MQBdgNYtS2qInxUoAnaz2+hauqhSzntK3k955GznpUatCqx0R
+b857vWviwPX2/P6+E3GPdl8IVsKXCvGWOBZWTuNTjQtwbDzsUepWoMgXnlQJSn5I
+YSlLxQKBgQD16Gw9kajpKlzsPa6XoQeGmZALT6aKWJQlrKtUQIrsIWM0Z6eFtX12
+2jjHZ0awuCQ4ldqwl8IfRogWMBkHOXjTPVK0YKWWlxMpD/5+bGPARa5fir8O1Zpo
+Y6S6MeZ69Rp89ma4ttMZ+kwi1+XyHqC/dlcVRW42Zl5Dc7BALRlJjQ==
+-----END RSA PRIVATE KEY-----
+
+
+
diff --git a/spec/data/templates/seattle.txt b/spec/data/templates/seattle.txt
new file mode 100644
index 0000000000..19f6290939
--- /dev/null
+++ b/spec/data/templates/seattle.txt
@@ -0,0 +1 @@
+Seattle is a great town. Next time you visit, you should buy me a beer. \ No newline at end of file