edifice-forms 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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 {}