123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- (function (Misago) {
- 'use strict';
- var service = getMisagoService('validate');
- QUnit.module("Validate");
- QUnit.test("service factory", function(assert) {
- var validate = service.factory();
- assert.ok(validate, "service factory has returned service instance.");
- });
- QUnit.test("validate form", function(assert) {
- var validate = service.factory();
- var form = {
- username: m.prop(''),
- password: m.prop('ok!'),
- optional: m.prop(''),
- validation: {
- username: [],
- password: []
- }
- };
- assert.ok(!validate(form), "validate() returned false for invalid form.");
- assert.deepEqual(
- form.errors,
- {
- username: [
- "This field is required."
- ],
- password: true
- },
- "validate() set form.errors correctly.");
- form.username('fullname');
- assert.ok(validate(form), "validate() returned true for valid form.");
- assert.deepEqual(
- form.errors,
- {
- username: true,
- password: true
- },
- "valid form validation didn't return errors");
- });
- QUnit.test("validate field", function(assert) {
- var validate = service.factory();
- var form = {
- username: m.prop(''),
- validation: {
- username: []
- }
- };
- var validator = validate(form, 'username');
- validator('');
- assert.deepEqual(
- form.errors,
- {
- username: [
- "This field is required."
- ]
- },
- "field validator has set an error on form.");
- validator('fullname');
- assert.deepEqual(
- form.errors,
- {
- username: true
- },
- "field validator marked input as passing.");
- });
- QUnit.test("required validator", function(assert) {
- assert.equal(Misago.validators.required()('yup'), undefined,
- "non-empty string passed validation.");
- assert.equal(
- Misago.validators.required()(' '), gettext("This field is required."),
- "empty string failed validation.");
- });
- QUnit.test("email validator", function(assert) {
- assert.equal(Misago.validators.email()('simple@email.com'), undefined,
- "simple e-mail passed validation.");
- assert.equal(Misago.validators.email()('si.mp.le@ema.il.com'), undefined,
- "dotted e-mail passed validation.");
- assert.equal(Misago.validators.email()('si-mp-le@ema-il.com'), undefined,
- "hyphenated e-mail passed validation.");
- assert.equal(Misago.validators.email()('si_mp_le@ema_il.com'), undefined,
- "underscored e-mail passed validation.");
- assert.equal(Misago.validators.email()('si+mp+le@email.com'), undefined,
- "plused e-mail passed validation.");
- assert.equal(
- Misago.validators.email('Nope!')('hh'), 'Nope!',
- "non-email errored with message providen.");
- });
- QUnit.test("minLength validator", function(assert) {
- assert.equal(Misago.validators.minLength(5)('yusss'), undefined,
- "string of required length passed validation.");
- assert.equal(
- Misago.validators.minLength(5)('nope'),
- "Ensure this value has at least 5 characters (it has 4).",
- "too short string failed validation.");
- });
- QUnit.test("maxLength validator", function(assert) {
- assert.equal(Misago.validators.maxLength(5)('yusss'), undefined,
- "string of required length passed validation.");
- assert.equal(
- Misago.validators.maxLength(5)('too long!'),
- "Ensure this value has at most 5 characters (it has 9).",
- "too long string failed validation.");
- });
- QUnit.test("usernameMinLength validator", function(assert) {
- var settings = {
- username_length_min: 4
- };
- assert.equal(
- Misago.validators.usernameMinLength(settings)('yusss'), undefined,
- "username of required length passed validation.");
- assert.equal(
- Misago.validators.usernameMinLength(settings)('no'),
- "Username must be at least 4 characters long.",
- "too short username failed validation.");
- });
- QUnit.test("usernameMaxLength validator", function(assert) {
- var settings = {
- username_length_max: 4
- };
- assert.equal(
- Misago.validators.usernameMaxLength(settings)('yuss'), undefined,
- "username of required length passed validation.");
- assert.equal(
- Misago.validators.usernameMaxLength(settings)('too long!'),
- "Username cannot be longer than 4 characters.",
- "too long username failed validation.");
- });
- QUnit.test("username validator", function(assert) {
- assert.equal(Misago.validators.usernameContent()('v4lid'), undefined,
- "valid username passed validation.");
- assert.equal(
- Misago.validators.usernameContent()('++++'),
- "Username can only contain latin alphabet letters and digits.",
- "invalid username failed validation.");
- });
- QUnit.test("passwordMinLength validator", function(assert) {
- var settings = {
- password_length_min: 4
- };
- assert.equal(
- Misago.validators.passwordMinLength(settings)('yusss'), undefined,
- "password of required length passed validation.");
- assert.equal(
- Misago.validators.passwordMinLength(settings)('no'),
- "Valid password must be at least 4 characters long.",
- "too short password failed validation.");
- });
- }(Misago.prototype));
|