Sha256: 99ecdf4624924548b1fe2aa8820ab367ccb447433bc4944da6aa95b9b8e94343

Contents?: true

Size: 1.61 KB

Versions: 19

Compression:

Stored size: 1.61 KB

Contents

require File.dirname(__FILE__) + '/test_helper'

module FriendlyId
  module Test
    module ActiveRecord2

      class CachedSlugTest < ::Test::Unit::TestCase

        include FriendlyId::Test::Generic
        include FriendlyId::Test::Slugged
        include FriendlyId::Test::ActiveRecord2::Slugged
        include FriendlyId::Test::ActiveRecord2::Core

        def klass
          District
        end

        def other_class
          Post
        end

        def cached_slug
          instance.send(cache_column)
        end

        def cache_column
          klass.friendly_id_config.cache_column
        end

        test "should have a cached_slug" do
          assert_equal cached_slug, instance.slug.to_friendly_id
        end

        test "should protect the cached slug value" do
          old_value = cached_slug
          instance.update_attributes(cache_column => "Madrid")
          instance.reload
          assert_equal old_value, cached_slug
        end

        test "should update the cached slug when updating the slug" do
          instance.update_attributes(:name => "new name")
          assert_equal instance.slug.to_friendly_id, cached_slug
        end

        test "should not update the cached slug column if it has not changed" do
          instance.note = "a note"
          instance.expects("#{cache_column}=".to_sym).never
          instance.save!
        end

        test "should cache the incremented sequence for duplicate slug names" do
          instance_2 = klass.create!(:name => instance.name)
          assert_match(/2\z/, instance_2.send(cache_column))
        end

      end
    end
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
refinerycms-0.9.6.34 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.33 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.32 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.31 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.30 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.29 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.28 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.27 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.26 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.25 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.24 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.23 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.22 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
refinerycms-0.9.6.21 vendor/plugins/friendly_id/test/active_record2/cached_slug_test.rb
friendly_id-2.3.4 test/active_record2/cached_slug_test.rb
friendly_id-2.3.3 test/active_record2/cached_slug_test.rb
friendly_id-2.3.2 test/active_record2/cached_slug_test.rb
friendly_id-2.3.1 test/active_record2/cached_slug_test.rb
friendly_id-2.3.0 test/active_record2/cached_slug_test.rb