File: test_middleware.rb

package info (click to toggle)
ruby-client-side-validations 3.2.6%2Bgh-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 676 kB
  • sloc: javascript: 3,019; ruby: 2,959; makefile: 2
file content (43 lines) | stat: -rw-r--r-- 1,920 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
require 'middleware/cases/helper'

class ClientSideValidationsMiddleWareTest < Test::Unit::TestCase
  def test_if_middleware_is_auto_included
    assert Rails.configuration.middleware.include?(ClientSideValidations::Middleware::Validators)
  end

  def test_scope_value_forced_to_nil_if_null
    env = {'rack.input' => String.new, 'QUERY_STRING' => 'user[email]=test@test.com&scope[parent_id]=null'}
    middleware = ClientSideValidations::Middleware::Uniqueness.new(env)
    middleware.response
    assert_nil middleware.request.params['scope']['parent_id']
  end

  def test_filter_out_jquery_cachebuster
    env = {'rack.input' => String.new, 'QUERY_STRING' => 'user[email]=test@test.com&scope[parent_id]=null&_=123456'}
    base = ClientSideValidations::Middleware::Base.new(env)
    assert_nil base.request.params[:_]
  end

  def test_calling_on_attribute_without_uniquness_validator
    env = {'rack.input' => String.new, 'QUERY_STRING' => 'user[age]=7', 'PATH_INFO' => '/validators/uniqueness'}
    app = Proc.new { [200, { }, []] }
    response = ClientSideValidations::Middleware::Validators.new(app).call(env)
    assert_equal 500, response.first
  end

  def test_uniqueness_with_disabled
    ClientSideValidations::Config.stubs(:disabled_validators).returns([:uniqueness])
    env = {'rack.input' => String.new, 'QUERY_STRING' => 'user[email]=test@test.com', 'PATH_INFO' => '/validators/uniqueness'}
    app = Proc.new { [200, { }, []] }
    response = ClientSideValidations::Middleware::Validators.new(app).call(env)
    assert_equal 500, response.first
  end

  def test_uniqueness_with_nested_attributes
    env = {'rack.input' => String.new, 'QUERY_STRING' => 'admin[user][email]=test@test.com', 'PATH_INFO' => '/validators/uniqueness'}
    app = Proc.new { [200, { }, []] }
    response = ClientSideValidations::Middleware::Validators.new(app).call(env)
    assert_equal 404, response.first
  end
end