client_side_validations 3.1.5 → 3.2.0.beta.1

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 (105) hide show
  1. data/client_side_validations.gemspec +1 -9
  2. data/lib/client_side_validations.rb +6 -2
  3. data/lib/client_side_validations/action_view/form_builder.rb +4 -2
  4. data/lib/client_side_validations/action_view/form_helper.rb +15 -7
  5. data/lib/client_side_validations/active_model.rb +5 -2
  6. data/lib/client_side_validations/active_record.rb +2 -1
  7. data/lib/client_side_validations/active_record/middleware.rb +15 -2
  8. data/lib/client_side_validations/active_record/uniqueness.rb +0 -1
  9. data/lib/client_side_validations/core_ext/regexp.rb +1 -1
  10. data/lib/client_side_validations/middleware.rb +40 -16
  11. data/lib/client_side_validations/version.rb +1 -1
  12. data/lib/generators/templates/client_side_validations/initializer.rb +0 -3
  13. data/vendor/assets/javascripts/rails.validations.js +135 -170
  14. metadata +22 -329
  15. data/lib/client_side_validations/formtastic.rb +0 -21
  16. data/lib/client_side_validations/mongo_mapper.rb +0 -9
  17. data/lib/client_side_validations/mongo_mapper/middleware.rb +0 -20
  18. data/lib/client_side_validations/mongo_mapper/uniqueness.rb +0 -29
  19. data/lib/client_side_validations/mongoid.rb +0 -9
  20. data/lib/client_side_validations/mongoid/format.rb +0 -10
  21. data/lib/client_side_validations/mongoid/length.rb +0 -24
  22. data/lib/client_side_validations/mongoid/middleware.rb +0 -20
  23. data/lib/client_side_validations/mongoid/presence.rb +0 -10
  24. data/lib/client_side_validations/mongoid/uniqueness.rb +0 -29
  25. data/lib/client_side_validations/simple_form.rb +0 -24
  26. data/lib/generators/templates/client_side_validations/README.rails.3.0 +0 -6
  27. data/test/action_view/cases/helper.rb +0 -176
  28. data/test/action_view/cases/test_helpers.rb +0 -635
  29. data/test/action_view/cases/test_legacy_helpers.rb +0 -217
  30. data/test/action_view/models.rb +0 -3
  31. data/test/action_view/models/comment.rb +0 -35
  32. data/test/action_view/models/post.rb +0 -35
  33. data/test/active_model/cases/helper.rb +0 -4
  34. data/test/active_model/cases/test_acceptance_validator.rb +0 -16
  35. data/test/active_model/cases/test_base.rb +0 -11
  36. data/test/active_model/cases/test_confirmation_validator.rb +0 -16
  37. data/test/active_model/cases/test_exclusion_validator.rb +0 -20
  38. data/test/active_model/cases/test_format_validator.rb +0 -21
  39. data/test/active_model/cases/test_inclusion_validator.rb +0 -21
  40. data/test/active_model/cases/test_length_validator.rb +0 -61
  41. data/test/active_model/cases/test_numericality_validator.rb +0 -46
  42. data/test/active_model/cases/test_presence_validator.rb +0 -16
  43. data/test/active_model/cases/test_validations.rb +0 -175
  44. data/test/active_model/models/person.rb +0 -17
  45. data/test/active_record/cases/helper.rb +0 -12
  46. data/test/active_record/cases/test_base.rb +0 -11
  47. data/test/active_record/cases/test_middleware.rb +0 -175
  48. data/test/active_record/cases/test_uniqueness_validator.rb +0 -56
  49. data/test/active_record/models/guid.rb +0 -7
  50. data/test/active_record/models/user.rb +0 -14
  51. data/test/base_helper.rb +0 -21
  52. data/test/core_ext/cases/test_core_ext.rb +0 -46
  53. data/test/formtastic/cases/helper.rb +0 -7
  54. data/test/formtastic/cases/test_form_builder.rb +0 -11
  55. data/test/formtastic/cases/test_form_helper.rb +0 -21
  56. data/test/generators/cases/test_generators.rb +0 -70
  57. data/test/javascript/config.ru +0 -3
  58. data/test/javascript/public/test/callbacks/elementAfter.js +0 -54
  59. data/test/javascript/public/test/callbacks/elementBefore.js +0 -54
  60. data/test/javascript/public/test/callbacks/elementFail.js +0 -70
  61. data/test/javascript/public/test/callbacks/elementPass.js +0 -70
  62. data/test/javascript/public/test/callbacks/formAfter.js +0 -45
  63. data/test/javascript/public/test/callbacks/formBefore.js +0 -45
  64. data/test/javascript/public/test/callbacks/formFail.js +0 -51
  65. data/test/javascript/public/test/callbacks/formPass.js +0 -50
  66. data/test/javascript/public/test/form_builders/validateForm.js +0 -66
  67. data/test/javascript/public/test/form_builders/validateFormtastic.js +0 -54
  68. data/test/javascript/public/test/form_builders/validateNestedForm.js +0 -66
  69. data/test/javascript/public/test/form_builders/validateSimpleForm.js +0 -57
  70. data/test/javascript/public/test/settings.js +0 -15
  71. data/test/javascript/public/test/validateElement.js +0 -179
  72. data/test/javascript/public/test/validators/acceptance.js +0 -42
  73. data/test/javascript/public/test/validators/confirmation.js +0 -25
  74. data/test/javascript/public/test/validators/exclusion.js +0 -41
  75. data/test/javascript/public/test/validators/format.js +0 -27
  76. data/test/javascript/public/test/validators/inclusion.js +0 -42
  77. data/test/javascript/public/test/validators/length.js +0 -76
  78. data/test/javascript/public/test/validators/numericality.js +0 -158
  79. data/test/javascript/public/test/validators/presence.js +0 -21
  80. data/test/javascript/public/test/validators/uniqueness.js +0 -107
  81. data/test/javascript/public/vendor/jquery.metadata.js +0 -122
  82. data/test/javascript/public/vendor/qunit.css +0 -196
  83. data/test/javascript/public/vendor/qunit.js +0 -1374
  84. data/test/javascript/server.rb +0 -84
  85. data/test/javascript/views/index.erb +0 -20
  86. data/test/javascript/views/layout.erb +0 -21
  87. data/test/middleware/cases/helper.rb +0 -7
  88. data/test/middleware/cases/test_middleware.rb +0 -8
  89. data/test/mongo_mapper/cases/helper.rb +0 -9
  90. data/test/mongo_mapper/cases/test_base.rb +0 -15
  91. data/test/mongo_mapper/cases/test_middleware.rb +0 -77
  92. data/test/mongo_mapper/cases/test_uniqueness_validator.rb +0 -55
  93. data/test/mongo_mapper/models/magazine.rb +0 -11
  94. data/test/mongoid/cases/helper.rb +0 -12
  95. data/test/mongoid/cases/test_base.rb +0 -15
  96. data/test/mongoid/cases/test_format_validator.rb +0 -21
  97. data/test/mongoid/cases/test_length_validator.rb +0 -60
  98. data/test/mongoid/cases/test_middleware.rb +0 -77
  99. data/test/mongoid/cases/test_presence_validator.rb +0 -16
  100. data/test/mongoid/cases/test_uniqueness_validator.rb +0 -54
  101. data/test/mongoid/models/book.rb +0 -12
  102. data/test/simple_form/cases/helper.rb +0 -5
  103. data/test/simple_form/cases/test_form_builder.rb +0 -14
  104. data/test/simple_form/cases/test_form_helper.rb +0 -24
  105. data/test/test_loader.rb +0 -6
@@ -1,70 +0,0 @@
1
- module('Element Validate Pass Callback', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {"user[name]":{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<span id="result" />'))
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append($('<input />', {
20
- name: 'user[name]',
21
- id: 'user_name',
22
- 'data-validate': 'true',
23
- type: 'text'
24
- }))
25
- .append($('<label for="user_name">Name</label>'));
26
-
27
- clientSideValidations.callbacks.element.pass = function(element) {
28
- $('#result').text('Element Validate Pass ' + element.attr('id'));
29
- }
30
- $('form#new_user').validate();
31
- },
32
- teardown: function() {
33
- clientSideValidations.callbacks.element.pass = function(element, callback) { callback() }
34
- }
35
- });
36
-
37
- test('runs callback when form element validate', function() {
38
- var input = $('input');
39
-
40
- equal($('#result').text(), '');
41
-
42
- input.val('')
43
- input.trigger('change');
44
- input.trigger('focusout');
45
- equal($('#result').text(), '');
46
-
47
- input.val('test')
48
- input.trigger('change');
49
- input.trigger('focusout');
50
- equal($('#result').text(), 'Element Validate Pass user_name');
51
- });
52
-
53
- test('runs callback when form validates', function() {
54
- var form = $('form'), input = form.find('input');
55
-
56
- equal($('#result').text(), '');
57
-
58
- input.val('')
59
- input.trigger('change');
60
- form.trigger('submit');
61
-
62
- equal($('#result').text(), '');
63
-
64
- input.val('test')
65
- input.trigger('change');
66
- form.trigger('submit');
67
-
68
- equal($('#result').text(), 'Element Validate Pass user_name');
69
- });
70
-
@@ -1,45 +0,0 @@
1
- module('Form Validate After Callback', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {"user[name]":{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<span id="result" />'))
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append($('<input />', {
20
- name: 'user[name]',
21
- id: 'user_name',
22
- 'data-validate': 'true',
23
- type: 'text'
24
- }))
25
- .append($('<label for="user_name">Name</label>'));
26
-
27
- clientSideValidations.callbacks.form.after = function(form, message) {
28
- $('#result').text('Form Validate After ' + form.attr('id'));
29
- }
30
- $('form#new_user').validate();
31
- },
32
- teardown: function() {
33
- clientSideValidations.callbacks.form.after = function(form, eventData) {}
34
- }
35
- });
36
-
37
- test('runs callback', function() {
38
- var form = $('form'), input = form.find('input');
39
-
40
- equal($('#result').text(), '');
41
-
42
- form.submit();
43
- equal($('#result').text(), 'Form Validate After new_user');
44
- });
45
-
@@ -1,45 +0,0 @@
1
- module('Form Validate Before Callback', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {"user[name]":{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<span id="result" />'))
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append($('<input />', {
20
- name: 'user[name]',
21
- id: 'user_name',
22
- 'data-validate': 'true',
23
- type: 'text'
24
- }))
25
- .append($('<label for="user_name">Name</label>'));
26
-
27
- clientSideValidations.callbacks.form.before = function(form, message) {
28
- $('#result').text('Form Validate Before ' + form.attr('id'));
29
- }
30
- $('form#new_user').validate();
31
- },
32
- teardown: function() {
33
- clientSideValidations.callbacks.form.before = function(form, eventData) {}
34
- }
35
- });
36
-
37
- test('runs callback', function() {
38
- var form = $('form'), input = form.find('input');
39
-
40
- equal($('#result').text(), '');
41
-
42
- form.submit();
43
- equal($('#result').text(), 'Form Validate Before new_user');
44
- });
45
-
@@ -1,51 +0,0 @@
1
- module('Form Validate Fail Callback', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {"user[name]":{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<span id="result" />'))
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append($('<input />', {
20
- name: 'user[name]',
21
- id: 'user_name',
22
- 'data-validate': 'true',
23
- type: 'text'
24
- }))
25
- .append($('<label for="user_name">Name</label>'));
26
-
27
- clientSideValidations.callbacks.form.fail = function(form, message) {
28
- $('#result').text('Form Validate Fail ' + form.attr('id'));
29
- }
30
- $('form#new_user').validate();
31
- },
32
- teardown: function() {
33
- clientSideValidations.callbacks.form.fail = function(form, eventData) {}
34
- }
35
- });
36
-
37
- test('runs callback', function() {
38
- var form = $('form'), input = form.find('input');
39
-
40
- equal($('#result').text(), '');
41
-
42
- form.submit();
43
- equal($('#result').text(), 'Form Validate Fail new_user');
44
-
45
- $('#result').text('');
46
- input.val('test');
47
- input.trigger('change');
48
- form.submit();
49
- equal($('#result').text(), '');
50
- });
51
-
@@ -1,50 +0,0 @@
1
- module('Form Validate Pass Callback', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {"user[name]":{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<span id="result" />'))
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append($('<input />', {
20
- name: 'user[name]',
21
- id: 'user_name',
22
- 'data-validate': 'true',
23
- type: 'text'
24
- }))
25
- .append($('<label for="user_name">Name</label>'));
26
-
27
- clientSideValidations.callbacks.form.pass = function(form, message) {
28
- $('#result').text('Form Validate Pass ' + form.attr('id'));
29
- }
30
- $('form#new_user').validate();
31
- },
32
- teardown: function() {
33
- clientSideValidations.callbacks.form.pass = function(form, eventData) {}
34
- }
35
- });
36
-
37
- test('runs callback', function() {
38
- var form = $('form'), input = form.find('input');
39
-
40
- equal($('#result').text(), '');
41
-
42
- form.submit();
43
- equal($('#result').text(), '');
44
-
45
- input.val('test');
46
- input.trigger('change');
47
- form.submit();
48
- equal($('#result').text(), 'Form Validate Pass new_user');
49
- });
50
-
@@ -1,66 +0,0 @@
1
- module('Validate Form', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'ActionView::Helpers::FormBuilder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {'user[name]':{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<form />', {
12
- action: '/users',
13
- 'data-validate': true,
14
- method: 'post',
15
- id: 'new_user'
16
- }))
17
- .find('form')
18
- .append($('<input />', {
19
- name: 'user[name]',
20
- id: 'user_name',
21
- 'data-validate': 'true',
22
- type: 'text'
23
- }))
24
- .append($('<label for="user_name">Name</label>'));
25
- $('form#new_user').validate();
26
- }
27
- });
28
-
29
- asyncTest('Validate form with invalid form', 4, function() {
30
- var form = $('form#new_user'), input = form.find('input#user_name');
31
- var label = $('label[for="user_name"]');
32
-
33
- form.trigger('submit');
34
- setTimeout(function() {
35
- start();
36
- ok(input.parent().hasClass('field_with_errors'));
37
- ok(label.parent().hasClass('field_with_errors'));
38
- ok(input.parent().find('label:contains("must be present")')[0]);
39
- ok(!$('iframe').contents().find('p:contains("Form submitted")')[0]);
40
- }, 30);
41
- });
42
-
43
- asyncTest('Validate form with valid form', 1, function() {
44
- var form = $('form#new_user'), input = form.find('input#user_name');
45
- input.val('Test');
46
-
47
- form.trigger('submit');
48
- setTimeout(function() {
49
- start();
50
- ok($('iframe').contents().find('p:contains("Form submitted")')[0]);
51
- }, 30);
52
- });
53
-
54
- asyncTest('Validate form with an input changed to false', 1, function() {
55
- var form = $('form#new_user'), input = form.find('input#user_name');
56
- input.val('Test');
57
- input.attr('changed', false);
58
- input.attr('data-valid', true);
59
-
60
- form.trigger('submit');
61
- setTimeout(function() {
62
- start();
63
- ok($('iframe').contents().find('p:contains("Form submitted")')[0]);
64
- }, 30);
65
- });
66
-
@@ -1,54 +0,0 @@
1
- module('Validate Formtastic', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'Formtastic::FormBuilder',
5
- inline_error_class: 'inline-errors',
6
- validators: {
7
- "user[name]":{"presence":{"message": "must be present"}, "format":{"message":"is invalid","with":/\d+/}}
8
- }
9
- }
10
-
11
- $('#qunit-fixture')
12
- .append($('<form />', {
13
- action: '/users',
14
- 'data-validate': true,
15
- method: 'post',
16
- id: 'new_user'
17
- }))
18
- .find('form')
19
- .append('<li />').find('li')
20
- .append($('<input />', {
21
- name: 'user[name]',
22
- id: 'user_name',
23
- 'data-validate': 'true',
24
- type: 'text'
25
- }))
26
- .append($('<label for="user_name">Name</label>'));
27
- $('form#new_user').validate();
28
- }
29
- });
30
-
31
- test('Validate error attaching and detaching', function() {
32
- var form = $('form#new_user'), input = form.find('input#user_name');
33
- var label = $('label[for="user_name"]');
34
-
35
- input.trigger('focusout')
36
- ok(input.parent().hasClass('error'));
37
- ok(label.parent().hasClass('error'));
38
- ok(input.parent().find('p.inline-errors:contains("must be present")')[0]);
39
-
40
- input.val('abc')
41
- input.trigger('change')
42
- input.trigger('focusout')
43
- ok(input.parent().hasClass('error'));
44
- ok(label.parent().hasClass('error'));
45
- ok(input.parent().find('p.inline-errors:contains("is invalid")')[0]);
46
-
47
- input.val('123')
48
- input.trigger('change')
49
- input.trigger('focusout')
50
- ok(!input.parent().hasClass('error'));
51
- ok(!label.parent().hasClass('error'));
52
- ok(!input.parent().find('p.inline-errors')[0]);
53
- });
54
-
@@ -1,66 +0,0 @@
1
- module('Validate Form', {
2
- setup: function() {
3
- window['new_user'] = {
4
- type: 'NestedForm::Builder',
5
- input_tag: '<div class="field_with_errors"><span id="input_tag" /><label for="user_name" class="message"></label></div>',
6
- label_tag: '<div class="field_with_errors"><label id="label_tag" /></div>',
7
- validators: {'user[name]':{"presence":{"message": "must be present"}}}
8
- }
9
-
10
- $('#qunit-fixture')
11
- .append($('<form />', {
12
- action: '/users',
13
- 'data-validate': true,
14
- method: 'post',
15
- id: 'new_user'
16
- }))
17
- .find('form')
18
- .append($('<input />', {
19
- name: 'user[name]',
20
- id: 'user_name',
21
- 'data-validate': 'true',
22
- type: 'text'
23
- }))
24
- .append($('<label for="user_name">Name</label>'));
25
- $('form#new_user').validate();
26
- }
27
- });
28
-
29
- asyncTest('Validate form with invalid form', 4, function() {
30
- var form = $('form#new_user'), input = form.find('input#user_name');
31
- var label = $('label[for="user_name"]');
32
-
33
- form.trigger('submit');
34
- setTimeout(function() {
35
- start();
36
- ok(input.parent().hasClass('field_with_errors'));
37
- ok(label.parent().hasClass('field_with_errors'));
38
- ok(input.parent().find('label:contains("must be present")')[0]);
39
- ok(!$('iframe').contents().find('p:contains("Form submitted")')[0]);
40
- }, 30);
41
- });
42
-
43
- asyncTest('Validate form with valid form', 1, function() {
44
- var form = $('form#new_user'), input = form.find('input#user_name');
45
- input.val('Test');
46
-
47
- form.trigger('submit');
48
- setTimeout(function() {
49
- start();
50
- ok($('iframe').contents().find('p:contains("Form submitted")')[0]);
51
- }, 30);
52
- });
53
-
54
- asyncTest('Validate form with an input changed to false', 1, function() {
55
- var form = $('form#new_user'), input = form.find('input#user_name');
56
- input.val('Test');
57
- input.attr('changed', false);
58
- input.attr('data-valid', true);
59
-
60
- form.trigger('submit');
61
- setTimeout(function() {
62
- start();
63
- ok($('iframe').contents().find('p:contains("Form submitted")')[0]);
64
- }, 30);
65
- });
66
-