Sha256: c5bf8db539c96a2a9f4060347356206691f8f0c5373dcceb13b1cdaefb117274

Contents?: true

Size: 1.63 KB

Versions: 21

Compression:

Stored size: 1.63 KB

Contents

require 'test_helper'

class SerializableTest < ActiveSupport::TestCase
  setup do
    @user = create_user
  end

  test 'should not include unsafe keys on XML' do
    assert_match /email/, @user.to_xml
    assert_no_match /confirmation-token/, @user.to_xml
  end

  test 'should not include unsafe keys on XML even if a new except is provided' do
    assert_no_match /email/, @user.to_xml(:except => :email)
    assert_no_match /confirmation-token/, @user.to_xml(:except => :email)
  end

  test 'should include unsafe keys on XML if a force_except is provided' do
    assert_no_match /<email/, @user.to_xml(:force_except => :email)
    assert_match /confirmation-token/, @user.to_xml(:force_except => :email)
  end

  test 'should not include unsafe keys on JSON' do
    assert_equal %w(created_at email facebook_token id updated_at username), from_json().keys.sort
  end

  test 'should not include unsafe keys on JSON even if a new except is provided' do
    assert_no_key "email", from_json(:except => :email)
    assert_no_key "confirmation_token", from_json(:except => :email)
  end

  test 'should include unsafe keys on JSON if a force_except is provided' do
    assert_no_key "email", from_json(:force_except => :email)
    assert_key "confirmation_token", from_json(:force_except => :email)
  end

  def assert_key(key, subject)
    assert subject.key?(key), "Expected #{subject.inspect} to have key #{key.inspect}"
  end

  def assert_no_key(key, subject)
    assert !subject.key?(key), "Expected #{subject.inspect} to not have key #{key.inspect}"
  end

  def from_json(options=nil)
    ActiveSupport::JSON.decode(@user.to_json(options))["user"]
  end
end

Version data entries

21 entries across 16 versions & 4 rubygems

Version Path
devise-2.0.6 test/models/serializable_test.rb
devise-2.1.4 test/models/serializable_test.rb
devise-2.1.3 test/models/serializable_test.rb
devise-2.0.5 test/models/serializable_test.rb
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/devise-2.0.4/test/models/serializable_test.rb
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/test/models/serializable_test.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/devise-2.0.4/test/models/serializable_test.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/test/models/serializable_test.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/test/models/serializable_test.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/devise-2.0.4/test/models/serializable_test.rb
devise-2.1.2 test/models/serializable_test.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/devise-2.0.4/test/models/serializable_test.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/test/models/serializable_test.rb
rmello-devise-2.1.0.2 test/models/serializable_test.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/test/models/serializable_test.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/devise-2.0.4/test/models/serializable_test.rb
devise-2.1.0 test/models/serializable_test.rb
devise-2.1.0.rc2 test/models/serializable_test.rb
upstream-devise-2.1.0.rc test/models/serializable_test.rb
devise-2.1.0.rc test/models/serializable_test.rb