edifice-forms 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. data/README.md +22 -3
  2. data/Rakefile +6 -0
  3. data/app/assets/javascripts/edifice-forms/jquery-escape.js +15 -0
  4. data/app/assets/javascripts/edifice-forms/rails_form.js +1 -1
  5. data/app/assets/javascripts/edifice-forms/show-errors.js +9 -1
  6. data/edifice-forms.gemspec +7 -1
  7. data/lib/edifice-forms/responder.rb +4 -3
  8. data/lib/edifice-forms/version.rb +1 -1
  9. data/spec/error_handling_spec.rb +54 -0
  10. data/spec/form_model_spec.rb +25 -0
  11. data/spec/rails3.1/app/assets/images/rails.png +0 -0
  12. data/spec/rails3.1/app/assets/javascripts/application.js +10 -0
  13. data/spec/rails3.1/app/assets/javascripts/test/base.js +11 -0
  14. data/spec/rails3.1/app/assets/javascripts/vendor/jquery-pjax.js +264 -0
  15. data/spec/rails3.1/app/assets/stylesheets/application.css +7 -0
  16. data/spec/rails3.1/app/controllers/application_controller.rb +3 -0
  17. data/spec/rails3.1/app/controllers/users_controller.rb +18 -0
  18. data/spec/rails3.1/app/models/user.rb +15 -0
  19. data/spec/rails3.1/app/views/layouts/application.html.erb +14 -0
  20. data/spec/rails3.1/app/views/users/new.html.erb +15 -0
  21. data/spec/rails3.1/config/application.rb +55 -0
  22. data/spec/rails3.1/config/boot.rb +6 -0
  23. data/spec/rails3.1/config/environment.rb +5 -0
  24. data/spec/rails3.1/config/environments/test.rb +34 -0
  25. data/spec/rails3.1/config/initializers/backtrace_silencers.rb +7 -0
  26. data/spec/rails3.1/config/initializers/inflections.rb +10 -0
  27. data/spec/rails3.1/config/initializers/mime_types.rb +5 -0
  28. data/spec/rails3.1/config/initializers/secret_token.rb +7 -0
  29. data/spec/rails3.1/config/initializers/session_store.rb +8 -0
  30. data/spec/rails3.1/config/initializers/wrap_parameters.rb +14 -0
  31. data/spec/rails3.1/config/routes.rb +7 -0
  32. data/spec/rails3.1/log/.gitkeep +0 -0
  33. data/spec/rails_form_spec.rb +63 -0
  34. data/spec/spec_helper.rb +27 -0
  35. data/tmp/cache/assets/C93/520/sprockets%2Fc677444919ef374b958536e6f24b15b1 +0 -0
  36. data/tmp/cache/assets/CA5/380/sprockets%2F1ff55d945a664b750021ba61a96c0274 +0 -0
  37. data/tmp/cache/assets/CB2/300/sprockets%2Fc3870b357b9ca1b89950483165c0d8e0 +0 -0
  38. data/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  39. data/tmp/cache/assets/CDE/4B0/sprockets%2Fc589c30dd77520ba7fd4e16466a32192 +0 -0
  40. data/tmp/cache/assets/CEE/5F0/sprockets%2F54d38a9c813681d2838b96ebe140e84f +0 -0
  41. data/tmp/cache/assets/D19/8A0/sprockets%2F8870aaaed853f1b2d489b199327f802e +0 -0
  42. data/tmp/cache/assets/D24/3C0/sprockets%2F4b5f582b8f52d50f96d396837b44ace8 +0 -0
  43. data/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  44. data/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  45. data/tmp/cache/assets/D4F/C40/sprockets%2F6eef3882347ce72578caca5865b80cb6 +0 -0
  46. data/tmp/cache/assets/D50/850/sprockets%2F4acc8287556eb57079e6978b4a11bedf +0 -0
  47. data/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  48. data/tmp/cache/assets/D6F/BC0/sprockets%2Fcf7528da181e32b8e758e3d603cbba29 +0 -0
  49. data/tmp/cache/assets/D91/080/sprockets%2F3cc81f1bd8d23d9c1aab48c520e450f6 +0 -0
  50. data/tmp/cache/assets/DA6/150/sprockets%2F1eeb0387fb8841ef86accfe15932c72c +0 -0
  51. data/tmp/cache/assets/DAA/7E0/sprockets%2F423e3888dde6a807610fcaeb6de68c5e +0 -0
  52. data/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  53. data/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  54. data/tmp/cache/assets/E26/AB0/sprockets%2Fc9abd9afeb3c158ad7aba136830f5cc6 +0 -0
  55. data/tmp/cache/assets/E2F/490/sprockets%2Fbee5b646eaa5f1f0ce53f413cf9bc59d +0 -0
  56. data/tmp/cache/assets/E66/560/sprockets%2Fd5e10c4f3e90a44eb2dffccfefe8594e +0 -0
  57. data/webrat.log +201 -0
  58. metadata +139 -8
@@ -0,0 +1,34 @@
1
+ Rails31::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Configure static asset server for tests with Cache-Control for performance
11
+ config.serve_static_assets = true
12
+ config.static_cache_control = "public, max-age=3600"
13
+
14
+ # Log error messages when you accidentally call methods on nil
15
+ config.whiny_nils = true
16
+
17
+ # Show full error reports and disable caching
18
+ config.consider_all_requests_local = true
19
+ config.action_controller.perform_caching = false
20
+
21
+ # Raise exceptions instead of rendering exception templates
22
+ config.action_dispatch.show_exceptions = false
23
+
24
+ # Disable request forgery protection in test environment
25
+ config.action_controller.allow_forgery_protection = false
26
+
27
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
28
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
29
+ # like if you have constraints or database-specific column types
30
+ # config.active_record.schema_format = :sql
31
+
32
+ # Print deprecation notices to the stderr
33
+ config.active_support.deprecation = :stderr
34
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ Rails31::Application.config.secret_token = '9c49a20f1a1927d39445006fa86e869792e085b10f0a4f0c8301cd50207d8beca37dd1f3c641522d4411528c87cbf50827cccf7f89e51529be1b4c71a7d7d7bc'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Rails31::Application.config.session_store :cookie_store, :key => '_rails3.1_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # Rails31::Application.config.session_store :active_record_store
@@ -0,0 +1,14 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActiveSupport.on_load(:action_controller) do
8
+ wrap_parameters :format => [:json]
9
+ end
10
+
11
+ # Disable root element in JSON by default.
12
+ ActiveSupport.on_load(:active_record) do
13
+ self.include_root_in_json = false
14
+ end
@@ -0,0 +1,7 @@
1
+ Rails31::Application.routes.draw do
2
+ resources :users do
3
+ collection do
4
+ get :new_html, :new_json
5
+ end
6
+ end
7
+ end
File without changes
@@ -0,0 +1,63 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe 'rails_form library', :type => :request, :js => true do
4
+ before(:each) do
5
+ page.visit('/users/new')
6
+ end
7
+
8
+ it 'should set an error' do
9
+ page.execute_script "jQuery('form').rails_form('add_error', 'user[name]', 'is wrong');"
10
+
11
+ page.should have_error_on('user_name')
12
+ page.should have_content('is wrong')
13
+ end
14
+
15
+ it 'should clear an error' do
16
+ page.execute_script "jQuery('form').rails_form('add_error', 'user[name]', 'is wrong');"
17
+ page.execute_script "jQuery('form').rails_form('clear_error', 'user[name]');"
18
+
19
+ page.should have_no_error_on('user_name')
20
+ page.should have_no_content('is wrong')
21
+ end
22
+
23
+ it 'should set multiple errors' do
24
+ page.execute_script "jQuery('form').rails_form('set_errors', {'user[name]': ['is wrong'], 'user[description]': ['is funny']});"
25
+
26
+ page.should have_error_on('user_name')
27
+ page.should have_content('is wrong')
28
+ page.should have_error_on('user_description')
29
+ page.should have_content('is funny')
30
+ end
31
+
32
+ it 'should clear all errors' do
33
+ page.execute_script "jQuery('form').rails_form('set_errors', {'user[name]': ['is wrong'], 'user[description]': ['is funny']});"
34
+ page.execute_script "jQuery('form').rails_form('clear_errors');"
35
+
36
+ page.should have_no_error_on('user_name')
37
+ page.should have_no_content('is wrong')
38
+ page.should have_no_error_on('user_description')
39
+ page.should have_no_content('is funny')
40
+ end
41
+
42
+ it 'should find all submits' do
43
+ page.evaluate_script("jQuery('form').rails_form('submits').length;").should ==(1)
44
+ end
45
+
46
+ it 'should find all fields' do
47
+ page.evaluate_script("jQuery('form').rails_form('fields').length;").should ==(3)
48
+ end
49
+
50
+ it 'should find all fields with errors' do
51
+ page.execute_script "jQuery('form').rails_form('add_error', 'user[name]', 'is wrong');"
52
+ page.evaluate_script("jQuery('form').rails_form('error_fields').length;").should ==(1)
53
+ end
54
+
55
+ it 'should find the form error message' do
56
+ page.execute_script "jQuery('form').rails_form('add_error', 'user[name]', 'is wrong');"
57
+ page.evaluate_script("jQuery('form').rails_form('error_on', 'user[name]').text();").should ==('is wrong')
58
+ end
59
+
60
+ it 'should find the label for an input' do
61
+ page.evaluate_script("jQuery('form').rails_form('label_for', 'user[name]').text();").should ==('Name')
62
+ end
63
+ end
@@ -0,0 +1,27 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+ ENV['RAILS_ROOT'] = File.join(File.dirname(__FILE__), 'rails3.1')
3
+
4
+ require File.expand_path('config/environment', ENV['RAILS_ROOT'])
5
+
6
+ require 'rspec/rails'
7
+ require 'capybara/rails'
8
+
9
+ # some useful matchers for rails form stuff
10
+ RSpec::Matchers.define :have_error_on do |selector|
11
+ match do |page|
12
+ page.has_selector? ".field_with_errors \##{selector}"
13
+ end
14
+ end
15
+
16
+ RSpec::Matchers.define :have_no_error_on do |selector|
17
+ match do |page|
18
+ page.has_no_selector? ".field_with_errors \##{selector}"
19
+ end
20
+ end
21
+
22
+
23
+ RSpec::Matchers.define :have_rendered_error_on do |selector|
24
+ match do |page|
25
+ page.has_selector? ".errors li[data-for=#{selector}]"
26
+ end
27
+ end
data/webrat.log ADDED
@@ -0,0 +1,201 @@
1
+ # Logfile created on Thu Jan 19 18:37:19 +1100 2012 by logger.rb/22285
2
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
3
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
4
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
5
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
6
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
7
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
8
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
9
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
10
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
11
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
12
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
13
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
14
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
15
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
16
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
17
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
18
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
19
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
20
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
21
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
22
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
23
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
24
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
25
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
26
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
27
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
28
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
29
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
30
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
31
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
32
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
33
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
34
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
35
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
36
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
37
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
38
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
39
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
40
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
41
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
42
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
43
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
44
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
45
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
46
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
47
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
48
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
49
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
50
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
51
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
52
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
53
+ REQUESTING PAGE: GET users/new_html with {} and HTTP headers {}
54
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new_html"}
55
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
56
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
57
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
58
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
59
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
60
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
61
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
62
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
63
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
64
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
65
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
66
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
67
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
68
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
69
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
70
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
71
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
72
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
73
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
74
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
75
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
76
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
77
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
78
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
79
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
80
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
81
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
82
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
83
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
84
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
85
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
86
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
87
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
88
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
89
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
90
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
91
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
92
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
93
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
94
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
95
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
96
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
97
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
98
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
99
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
100
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
101
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
102
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
103
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
104
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
105
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
106
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
107
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
108
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
109
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
110
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
111
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
112
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
113
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
114
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
115
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
116
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
117
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
118
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
119
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
120
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
121
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
122
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
123
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
124
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
125
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
126
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
127
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
128
+ REQUESTING PAGE: GET users/new?type=html with {} and HTTP headers {}
129
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html"}
130
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
131
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
132
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
133
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
134
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
135
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
136
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
137
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
138
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
139
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
140
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
141
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
142
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
143
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
144
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
145
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
146
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
147
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
148
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
149
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
150
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
151
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
152
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
153
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
154
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
155
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
156
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
157
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
158
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
159
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
160
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
161
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
162
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
163
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
164
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
165
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
166
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
167
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
168
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
169
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
170
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
171
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
172
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
173
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
174
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
175
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
176
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>"whatever"}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
177
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
178
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
179
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
180
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
181
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
182
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
183
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
184
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
185
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
186
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
187
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
188
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
189
+ REQUESTING PAGE: GET http://www.example.com/users with {} and HTTP headers {"HTTP_REFERER"=>"/users"}
190
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
191
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
192
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
193
+ REQUESTING PAGE: POST /users with {"commit"=>"Submit", "utf8"=>"\342\234\223", "user"=>{"name"=>""}} and HTTP headers {"HTTP_REFERER"=>"users/new?type=html&ajax=false"}
194
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
195
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
196
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
197
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
198
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
199
+ REQUESTING PAGE: GET users/new?type=html&ajax=false with {} and HTTP headers {}
200
+ REQUESTING PAGE: GET /users/new?type=html&ajax=false with {} and HTTP headers {}
201
+ REQUESTING PAGE: GET /users/new?type=html&ajax=false with {} and HTTP headers {}